Windows VMWare 客户端可以轻松实时调整大小。对于 Linux 客户端,我使用了 LVM(添加磁盘、partprobe、将磁盘添加到 vg、lvextend、resize2fs)。这有效。
我刚刚偶然发现了一些更好的方法。第一种方法似乎非常可行,使用没有分区的 LVM 物理卷。这允许使用一个额外的卷进行扩展(并且更简单,工作量更少)。如果我能将其缩减为单个 VMDK,那就更好了
不过,互联网上散布的几篇帖子(包括这个网站的 unix 版本)暗示了更诱人的选项,这些帖子运行在无分区的 VMDK 上。这似乎很干净,但我在测试(和实施)安装到无分区系统时遇到了重大障碍。
我们是一家 SLES/OES 商店,使用其他发行版可能很容易,但我无法让安装程序跳过分区。我尝试使用预格式化的整个磁盘和 SLES 安装磁盘格式化过程的各种排列方式来呈现它。
仅供参考,这里有一些帖子...
https://unix.stackexchange.com/questions/14010/the-merits-of-a-partitionless-filesystem(最后一条帖子)
http://v-reality.info/2010/06/working-with-linux-volumes-n-vsphere/
我可以手动复制/移动内容。有人有什么建议吗?
答案1
如果可以将整个磁盘用作 PV,我会这么做。这样即使没有分区,也可以将不同的 LV 用于不同的挂载点。
至于安装程序 - 将系统安装到分区的 VM 中,然后将其克隆到另一个 VM 的原始磁盘中。确保将/boot/grub/device.map
、/etc/fstab
、/boot/grub/menu.lst
从 /dev/sdaN 更改为 /dev/sda。
您可能还需要使用救援 CD 重新安装 grub。
答案2
在过去的几个月里,我已经找到了一套答案。
首先,我研究出了一种无分区安装的方法。我最终找到了一种(在我看来)更好的方法,因此解释并不完整:
- 安装在一个分区(无交换)虚拟磁盘上
- 创建另一个原始磁盘
- 直接格式化磁盘(mkfs -text2 /dev/WHATEVER)
- 乱七八糟地使用 grub 来让它启动。现在细节有些模糊(我已经花了一段时间才搞明白),但基本上是 a) 从救援映像启动(我使用了 gparted CD 来获得适当的架构)b) 使用强制安装参数从该映像运行 grub。
这种方法存在几个问题。实时调整大小可以正常工作,但“重新读取分区表”命令(kpartx 等)都不起作用。这有一定道理,因为没有分区可读取。必须重新启动才能识别调整大小。但正如我指出的那样:
更好的方法
这对我来说是非直观的。它确实需要两次重启,但这就是停机时间的范围。
- 创建单分区安装(它可以与交换一起工作,但没有交换会更干净)。
- 使用虚拟机管理工具调整大小
- 使用 fdisk 重写分区表。是的,很可怕,但实际上比听起来安全得多:详细信息
- 创建快照作为安全预防措施
- 重新启动或者进行实时重新扫描。
- 打印出分区表以防万一
- 删除分区表(只有一个分区可以更容易地做到这一点)
- 重新创建分区。默认值几乎肯定是正确的,但这就是您保存副本的原因。
- 确保将分区标记为可启动!
- 把它写出来。
- 重新启动(祈祷吧,但它会起作用)。
- 调整2fs大小
这种方法停机时间最短,适用于常规安装。这种方法比 LVM 方法简单得多。它可以追溯应用于几乎任何安装(多个分区只会使重新安装更加复杂)。这种方法比 gparted 方法快得多(而且我认为它更安全)。