Answers:
作为事实上,你CAN 放大,而Ubuntu是运行根文件系统(我得知这个最近我在这里) -这听起来不可思议,但它是真实的:)
这是一个简单场景的步骤列表,在该场景中,您有两个分区,/dev/sda1
是操作系统从中引导并/dev/sdb2
交换的ext4分区。在本练习中,我们要删除交换分区,并将其扩展/dev/sda1
到整个磁盘。
与往常一样,请确保您已经备份了数据-例如,由于我们将要修改分区表,因此如果您输入错误,就有可能丢失所有数据。
跑 sudo fdisk /dev/sda
p
列出分区。记下的启动缸/dev/sda1
d
先删除交换分区(2
),然后再删除/dev/sda1
分区。这非常可怕,但是实际上是无害的,因为只有在将更改写入磁盘后才将数据写入磁盘。n
来创建一个新的主分区。确保其启动缸与以前的缸完全相同/dev/sda1
。对于最后一个柱面,请同意默认选择,即使分区覆盖整个磁盘。a
切换新的可启动标志/dev/sda1
w
它将新的分区表写入磁盘。您将收到一条消息,告知内核由于设备繁忙而无法重新读取分区表,但这没关系。使用重新启动sudo reboot
。系统启动时,您将有一个较小的文件系统,位于较大的分区中。
下一个魔术命令是resize2fs
。运行sudo resize2fs /dev/sda1
-这种形式将默认使文件系统占用分区上的所有可用空间。
就这样,我们只是调整了安装了Ubuntu的分区的大小,而无需从外部驱动器启动。
fdisk
扩大分区,而OS继续使用较小的文件系统。然后。重启后,内核重新读取更新的分区表后,我们可以调整文件系统的大小,因为它现在位于较大的分区中。
df
在此之后用来显示“结果”空间(确认它有效),并且2.记得重新创建一些交换空间!
在vmWare ESXi中扩展卷后(关闭vm,备份/导出vm,删除所有快照,然后增加磁盘大小数,在执行下一步之前再次拍摄vm的快照,以便可以恢复错误/错误)。
以下示例是在已经使用LVM的系统上的根分区上扩展卷。
SSH到系统,切换到root并运行cfdisk
#cfdisk
退出cfdisk后
# fdisk -l /dev/sda
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc8b647ff
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 999423 997376 487M 83 Linux
/dev/sda2 1001470 16775167 15773698 7.5G 5 Extended
/dev/sda3 16775168 41943039 25167872 12G 8e Linux LVM (***** See new partition /dev/sda3*****)
/dev/sda5 1001472 16775167 15773696 7.5G 8e Linux LVM
在下一步之前重新启动系统(否则您可能会得到Device
/dev/sda3 not found (or ignored by filtering)
)
# shutdown now -r
初始化新卷
# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
获取要扩展的卷的名称
# vgdisplay
--- Volume group ---
VG Name linuxetc1-vg (***** this is vg i'm extending*****)
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 7.52 GiB
PE Size 4.00 MiB
Total PE 1925
Alloc PE / Size 1925 / 7.52 GiB
Free PE / Size 0 / 0
...
扩展音量组
# vgextend linuxetc1-vg /dev/sda3
Volume group "linuxetc1-vg" successfully extended
扩展根
# lvextend -l+100%FREE /dev/linuxetc1-vg/root
Size of logical volume linuxetc1-vg/root changed from 6.52 GiB (1669 extents) to 18.52 GiB (4741 extents).
Logical volume root successfully resized.
Or if you only wanted to give 5 more GB to root
# lvextend -L +5g /dev/linuxetc1-vg/root
获取下一步的文件系统名称
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 477M 0 477M 0% /dev
tmpfs 100M 4.6M 95M 5% /run
/dev/mapper/linuxetc1--vg-root 6.3G 2.5G 3.5G 42% / (***** this line*****)
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 472M 105M 343M 24% /boot
tmpfs 100M 0 100M 0% /run/user/1000
扩展文件系统
# resize2fs /dev/mapper/linuxetc1--vg-root
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/linuxetc1--vg-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/linuxetc1--vg-root is now 4854784 (4k) blocks long.
查看增加的尺寸
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 477M 0 477M 0% /dev
tmpfs 100M 4.6M 95M 5% /run
/dev/mapper/linuxetc1--vg-root 19G 2.5G 15G 15% / (***** this line*****)
tmpfs 497M 0 497M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 497M 0 497M 0% /sys/fs/cgroup
/dev/sda1 472M 105M 343M 24% /boot
tmpfs 100M 0 100M 0% /run/user/1000
文章:
https : //wiki.ubuntu.com/Lvm
http://www.geoffstratton.com/expand-hard-disk-ubuntu-lvm
谢尔盖的回答非常好。但是,如果您的空闲空间不是直接在下一个设备中,则需要删除其他设备。例如:
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 33556477 33554430 16G 83 Linux
/dev/sda2 33556478 41940991 8384514 4G 5 Extended
/dev/sda3 41940992 125829119 83888128 40G 83 Linux
/dev/sda5 33556480 41940991 8384512 4G 82 Linux swap / Solaris
在上述情况下,如果要合并/dev/sda3
使用/dev/sda1
,你需要删除/dev/sda1
,/dev/sda2
以及/dev/sda3
(与d
指令),并重新添加/dev/sda2
和更新其类型(带n
和t
命令)。
我使用此处描述的方法成功地扩展了我的主要ext4分区。
根据我的个人经验,请注意以下几点:
raspi-config
在Raspberry Pi中实现的,扩展根文件系统几乎是您每次设置新的Raspberry Pi时都要做的事情。github.com/RPi-Distro/raspi-config/blob/…–