我在驱动器上安装了 Ubuntu。问题是磁盘空间不足。它安装在 vmware 上。我扩展了虚拟驱动器并启动到 ubuntu。但是当我打开 gparted(sudo gparted)时,移动/调整大小选项不可用。这是安装 Ubuntu 的分区,但我需要调整它的大小。有什么想法吗?我习惯使用命令行
答案1
事实上,你能 放大在 Ubuntu 运行时修改根文件系统(这是我最近学到的这里)——这听起来令人难以置信,但这是真的:)
以下是简单场景的步骤列表,其中有两个分区,/dev/sda1
一个是用于启动操作系统的 ext4 分区,另一个/dev/sdb2
是交换分区。在本练习中,我们想要删除交换分区并扩展/dev/sda1
到整个磁盘。
与往常一样,请确保您已备份数据 - 因为我们将修改分区表,所以如果您输入错误,可能会丢失所有数据。
跑步
sudo fdisk /dev/sda
- 用来
p
列出分区。记下/dev/sda1
- 使用
d
删除首先是交换分区(2
),然后是/dev/sda1
分区。这很可怕,但实际上无害,因为在将更改写入磁盘之前,数据不会写入磁盘。 - 使用
n
创造一个新的主分区。确保它的起始磁柱与旧磁柱完全相同/dev/sda1
。对于结束磁柱,请同意默认选择,即使分区跨越整个磁盘。 - 用于
a
切换新的可启动标志/dev/sda1
- 检查您的更改,深吸一口气,然后使用
w
将新的分区表写入磁盘。您将收到一条消息,告知内核无法重新读取分区表,因为设备正忙,但没关系。
- 用来
使用 重启
sudo reboot
。系统启动后,你将看到一个较小的文件系统生活在更大的分割。下一个神奇的命令是
resize2fs
.Run——sudo resize2fs /dev/sda1
此形式将默认使文件系统占用分区上的所有可用空间。
就是这样,我们刚刚调整了安装 Ubuntu 的分区的大小,而无需从外部驱动器启动。
答案2
两种方法
1.在 Ubuntu Server 16.04 至 18.10 中测试
在 VMware ESXi 中扩展卷后(关闭虚拟机、备份/导出虚拟机、删除所有快照,然后增加磁盘大小,在执行后续步骤之前再次对虚拟机进行快照,以便您可以恢复错误/失误)。
以下示例是在已经使用 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
2. 在 Ubuntu Server 18.04.3 LTS 中测试的更快方法
这种方法比第一种方法要快一点。这是因为cfdisk
菜单中有一个名为“调整大小”这节省了一些步骤。
在 VMware ESXi 中扩展卷后(关闭虚拟机、备份/导出虚拟机、删除所有快照,然后增加磁盘大小,在执行后续步骤之前再次对虚拟机进行快照,以便您可以恢复错误/失误)。
以下示例是在已经使用 LVM 的系统上扩展根分区上的卷。
ssh
进入系统,切换到root并运行cfdisk
。此时我重启了系统,但这可能没有必要。现在您可以从第一种方法的第 19 步继续操作(下面重复)。
(19)获取文件系统名称以供下一步使用
# 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
(20)扩展文件系统
# 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.
(21)查看增大的尺寸
# 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
答案3
编辑:正如@kent在下面提到的那样,这是一个旧答案,不再正确。
您快到了。
您不能在 Ubuntu 运行时使用 GParted 调整分区大小。
您需要将 GParted ISO 作为 CD 附加到虚拟机,然后重新启动机器,这样将加载 GParted 而不是 Ubuntu(我认为您可以在机器启动后立即按 F12 从虚拟 CD 启动)。
一旦您启动到 GParted,移动/调整大小选项将被启用,因为 Ubuntu 当前未运行。
答案4
我注意到我的 ubuntu VM 有一个 LVM,它根本没有使用所有分配的空间。因此,要向我的 LVM 添加空间,只需执行以下操作:https://wiki.ubuntu.com/Lvm章节:“调整分区大小”。
例如:要快速了解您是否具有 LVM,请执行df -h
并查找以下行:
/dev/mapper/ubuntu--vg-ubuntu--lv 689G 20G 639G 3% /
并且...看到这实际上并不是经典的“/dev/sda1”类型的挂载点。
然后在该分区上运行扩展命令。
sudo lvextend -L +500g /dev/mapper/ubuntu--vg-ubuntu--lv
sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
另一个提醒我检查 LVM 的快速线索是,当我查看 fdisk 分区时,我注意到我有一个很大的 /dev/sda3 分区,但实际上并没有安装在任何地方。(即:当我使用 mount 命令检查时)。