将基于 LVM 的安装克隆到更大的驱动器并扩展根分区以使用新空间

将基于 LVM 的安装克隆到更大的驱动器并扩展根分区以使用新空间

网上有几个类似的问题,但我没有看到任何涵盖确切场景的问题。这是一个问题和答案合二为一的问题,我花了几个小时才解决。

我想克隆一个驱动器并维护 /boot,而不必摆弄 grub。

答案1

在实时 CD/USB 上启动,然后使用 dd 从旧磁盘克隆到新磁盘:

dd if=/dev/sda of=/dev/sdb 

关闭并移除旧驱动器以避免 vg 冲突实际上我所做的是将 /dev/sda 克隆到第三个驱动器上的文件,这样我就可以 a) 进行备份,并且 b) 相当轻松地从头开始。如果您再次运行 dd 步骤,请重新启动,因为 pvdisplay 仍将显示旧统计信息。

shutdown -h now

再次通过 live cd/usb 启动后,sdb 变为 sda

使用 parted 在所有现有分区后创建新分区。我发现在这种情况下 parted 比 fdisk 更容易,因为你可以告诉它使用所有可用空间

gparted /dev/sda

现在创建一个新的物理卷。有些人建议更改现有的 pv 大小(pvresize --setphysicalvolumesize),但这对我来说不起作用,并导致 lvextend 步骤出现错误

pvcreate /dev/sda3 (The new partition)
vgextend /dev/vgname /dev/sda3

您现在应该可以看到额外的可用空间

vgdisplay

抱歉,输出不多,我不会再运行这些了:D

现在我们需要扩展 lvm 分区。请注意,如果您最后有一个交换分区,请不要担心,lvm 会为您处理。

lvextend /dev/vgname/root -L+150G

(vgdisplay 显示您可以添加多少空间)

lvscan

这将向您显示空间已分配,但我们还未完全分配,df 不会显示额外的可用空间。

e2fsck -f /dev/vgname/root
resize2fs /dev/vgname/root

现在我们应该在那里,如果你挂载 /dev/vgname/root,df 将报告新的分区大小和可用空间。

移除您的实时 CD/USB 并重新启动,您的安装应该就可以正常工作了。

这些步骤适用于 Ubuntu Server 16.04.2 安装和 Ubuntu 16.04.2 live USB。

相关内容