我正在摆弄一个运行 Ubuntu 10.04 Server(64 位)的虚拟机,该虚拟机在单个 4GB 磁盘上使用 LVM。我只是使用了安装程序的自动 LVM 设置,结果如下(忽略磁盘大小 - 这是在我将磁盘大小调整为 8GB 之后):
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004b903
Device Boot Start End Blocks Id System
/dev/sda1 * 1 32 248832 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 32 523 3942401 5 Extended
Partition 2 does not end on cylinder boundary.
/dev/sda5 32 523 3942400 8e Linux LVM
Ubuntu 还将 LVM 空间设为仅有一个根 FS 和一个 512M 交换空间。
此时,我使用 VM 管理软件将底层磁盘扩展到 8GB,然后启动 VM 并尝试弄清楚如何扩大交换和根 FS。阅读man pvresize
:
...
EXAMPLES
Expand the PV on /dev/sda1 after enlarging the partition with fdisk
pvresize /dev/sda1
...
这让我意识到我必须先用 fdisk 扩大分区。因此我尝试删除扩展分区 2(这也删除了包含 LVM 的逻辑分区 5),然后重新创建两个分区,但这次使用所有柱面(具有相同的分区号,并将逻辑分区的类型设置为 Linux LVM 的 8e)。唉,失败了 - 我当时重新启动了,但虚拟机无法再启动。
那么我想做的事情可行吗?正确的做法是什么?提前致谢。
答案1
你做了什么应该可以工作,尽管我以前没有这样做过。由于您使用的是虚拟化解决方案,因此您可以按照我的做法来扩展基于 LVM 的虚拟机:添加新的虚拟磁盘并将其添加到您的 LVM 配置中 - 这样您就完全不必处理分区问题了。
添加驱动器并重新启动虚拟机后,您将看到下面列出了一个新硬盘/dev
(例如/dev/sdb
)。将其标记为物理卷(pvcreate /dev/sdb
)并将其添加到卷组(vgextend VolGroupName /dev/sdb
)。
现在您拥有一个更大的卷组,您可以将逻辑卷扩展到新的空间,lvresize
并将文件系统扩展到卷中创建的额外 romm(对于resize2fs
ext2/3/4 使用,对于其他格式使用其他工具)。