我们在 Hyper-V 下运行 Ubuntu 16.04.6 LTS 作为 VM - 没有 UI,所以 gparted 不是一个真正的选择。
/dev/sda3 上的空间不足,因此我扩展了 Hyper-V 内部的驱动器,然后运行:
sudo parted -l
它警告说:
/dev/sda 的可用空间似乎并未全部使用,您可以修复 GPT 以使用所有空间(额外的 20971520 个块)或继续使用当前设置?修复/忽略?修复
修复后,运行 fdisk -l 后我发现 /dev/sda 现在是 100 GiB。
我不太清楚如何将这个额外的空间分配给 /dev/sda3 - 我尝试扩展使用率为 99% 的逻辑卷(这个逻辑卷首先促使我尝试扩展可用空间):
sudo lvextend /dev/srv-vg/root /dev/sda3
但我认为,由于该空间未分配给 sda3,因此无法扩展它(因为它实际上并没有扩展它)。
于是我尝试分开:
$sudo parted /dev/sda
resize part 3
End? [85.9GB]? -0
(parted): quit
Information: You may need to update /etc/fstab
fdisk -l 现在显示 sda3 有更多空间,但它仍然显示 99% 的空间已被使用。
Device Start End Sectors Size Type
/dev/sda1 2048 1050623 1048576 512M EFI System
/dev/sda2 1050624 2050047 999424 488M Linux filesystem
/dev/sda3 2050048 209715166 207665119 99G Linux LVM
Disk /dev/mapper/srv--vg-root: 77 GiB, 82703286272 bytes, 161529856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
我再次尝试了 lvextend:
sudo lvextend /dev/srv-vg/root /dev/sda3
但它是这样说的:
No free extents on physical volume "/dev/sda3".
No specified PVs have space available.
我重新检查了 vgdisplay:
--- Volume group ---
VG Name srv-vg
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 79.02 GiB
PE Size 4.00 MiB
Total PE 20229
Alloc PE / Size 20217 / 78.97 GiB
Free PE / Size 12 / 48.00 MiB
VG UUID HvKrjH-VGRA-svAB-NOmW-f23C-7uwq-hdh5Ja
感觉我已经快完成了,但我不知道还需要做什么来扩展它。
我在这里遗漏了什么?
答案1
每次玩磁盘时,您都必须经历这些阶段:
- 扩展/修改存储设备(在您的情况下为 VM 磁盘)
- 有时需要刷新操作系统/内核分区表(重新启动是确定且简单的步骤)
- 扩展/修改该分区的分区表
- 再次刷新分区表(通过 blockev 或 partprobe 命令或重启)
- 现在您可以扩展您的文件系统并且完成或继续......
- 如果是 LVM,现在是时候使用 PV、VG 和最后的 LV 调整大小命令了
因此,您可能正在寻找以下遗漏的步骤:
pvresize/vgextend如果你已经成功调整了正确的分区大小
如果分区仍未调整大小怎么办?
使用磁盘管理(cfdisk、sfdisk、parted、-gparted- 等)调整此分区的大小。如果它是磁盘上的最后一个分区(无论类型是 GPT/MBR),调整大小会很容易。我通常会删除该分区,然后将其重新创建为更大的分区。
尝试pvdisplay,vgdisplay命令,看看显示什么 $猫/ proc /分区 如果您在这里看不到可用空间,则可能仍未分配到正确的分区。
PS:如果你不确定,请务必进行备份