如何在不使用 LiveCD 或重启的情况下在 Fedora 中调整根 LVM 分区的大小

Cer*_*rin 27 fedora lvm

我有一个虚拟机,最近它的磁盘映像从 20GB 增加到 50GB,并fdisk -l验证 VM 可以看到这个新大小。现在我需要调整我的根 LVM 分区的大小以填充额外的 30GB。

我找到 几篇 关于调整 LVM 大小的文章,但涉及调整根分区大小的少数文章都声称您需要从 LiveCD 启动。有没有办法在不关闭服务器的情况下做到这一点?服务器很关键,所以我想尽量减少停机时间。

编辑:输出fdisk -l

[root@fedora-host ~]# sudo fdisk -l

Disk /dev/sda: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 cylinders, total 104857600 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
Disk identifier: 0x00097c90

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    83886079    41430016   8e  Linux LVM

Disk /dev/mapper/VolGroup-lv_root: 36.1 GB, 36104568832 bytes
255 heads, 63 sectors/track, 4389 cylinders, total 70516736 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
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition table

Disk /dev/mapper/VolGroup-lv_swap: 6308 MB, 6308233216 bytes
255 heads, 63 sectors/track, 766 cylinders, total 12320768 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
Disk identifier: 0x00000000

Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table
Run Code Online (Sandbox Code Playgroud)

编辑:如何调整物理分区的大小?fdisk 可以看到可用空间,但我不知道如何调整主 LVM 分区的大小以使用它。我尝试启动到 LiveCD 并使用 parted'dresize命令,但它给我的只是错误“无法检测文件系统”。我找到了这个指南,它说我需要删除分区并创建一个大小正确的新分区,但这听起来很危险。

最终编辑:Parted 的resize命令奇怪地无法调整 LVM 分区的大小。去搞清楚。相反,我只是删除了旧分区并创建了一个具有新范围的新分区,如上面的链接中所述,并且正确调整了 LVM 分区的大小。然后我按照下面的建议调整LVM 分区内的卷和文件系统的大小。

Aar*_*ley 34

您可以在线增加逻辑卷。您必须卸载它才能缩小它(这需要 LiveCD / Rescue 模式。)

  1. pvresize /dev/sda2(假设您的 LVM 分区是sda2。根据需要替换。)
  2. lvextend /dev/mapper/root -l+100%FREE (或者,无论您的根逻辑卷被称为什么。)
  3. resize2fs /dev/mapper/root (假设 ext2/3/4)

  • 我认为这个技巧很巧妙:如果你将 `-r` 选项添加到 `lvextend`,它会钩住 `fsadm` 来调整 FS 的大小。这将使第 3 步变得多余。 (9认同)
  • 请注意,此答案假定分区已经扩展以填充可用空间,并且只需要更新逻辑卷。`pvresize /dev/sda2` 命令不执行任何操作,直到 /dev/sda2 分区被 parted 或 fdisk 调整大小。我不得不使用 fdisk 调整我的大小,因为我的系统上的分区不会显示或没有调整大小命令。Fdisk 调整大小涉及删除和重新创建分区。 (3认同)