注意:我知道这种类型的问题已经被问过(很多次),但我对提供的答案有一些评论。
我在 Hyper-V 上运行 RHEL (7.1) VM。虚拟机连接了 2 个 IDE 磁盘。我需要将第二个磁盘从 80 GB 扩展到 160 GB,所以我在 Virtual Machine Manager 中扩展了磁盘。现在有一些事情需要在 Linux 端完成。
我读过的大多数解决方案都归结为:
- 创建一个新的主分区
fdisk /dev/sdb
- 将分区类型设置为 LVM (0x8e)
- 创建一个新的物理卷 (
pvcreate
) - 使用新 PV (
vgextend
)扩展卷组 - 扩展逻辑卷 (
lvextend
) - 扩展文件系统 (
xfs_growfs
)
另一种解决方案是添加第二个磁盘并将该磁盘添加到卷组。我们不想走那条路,只保留那 2 个磁盘。
这一切都很好,我以前做过。现在我想知道是否可以扩展已经存在的分区(例如sdb1
)而不是添加一个sdb2
,因为据我所知,主分区的数量是有限制的?想象一下:如果我需要将这个磁盘扩展 5 次怎么办?然后我有 6 个主分区。
parted
不再是一个选项,因为他们删除了resize
andmove
命令。GParted
可能是一个解决方案,但是我必须使用 GParted live CD 启动 VM,我想避免这种情况。
你觉得呢?你有没有什么想法?
是的!
使用
parted
或之类的分区工具fdisk
。删除您创建 PV 的分区的原始分区,但请记住那里的开始和结束柱面/块,并确保您使新分区在同一位置开始并使用比原始大小更多的空间,否则您会搞砸在那里启动文件系统。完成后,可能会使用类似的工具检测到新的分区大小
partprobe
,但如果它位于挂载的 fs 上/
,则可能需要重新启动以检测新的分区大小。我不记得了。因此,完成此操作后,您现在应该可以按照列表中的剩余步骤进行操作了。
不过我有一个提示:如果整个磁盘是一个 PV(即那里没有分区表),那么下次增长文件系统时,您可以直接跳到第 4 步。