这是我的根卷,大小为 32GB,包含 /boot,LVM 上的 LV 是 / 和 swap。
sdb 8:16 0 29.8G 0 disk
├─sdb1 8:17 0 200M 0 part /boot/efi
├─sdb2 8:18 0 256M 0 part /boot
└─sdb3 8:19 0 29.4G 0 part
├─AntergosVG-AntergosRoot 254:0 0 26.4G 0 lvm /
└─AntergosVG-AntergosSwap 254:1 0 3G 0 lvm [SWAP]
我想将其克隆到更大的 SSD 上。以下是正确的程序吗?我将使用另一台计算机,因此我原来的计算机不会同时包含新旧磁盘
- dd,其中 if=old_ssd 且 of=new_ssd
- 使用 gparted 增加分区 sdb3 (LVM PV) 的大小以填充新空间
- 启动进入新系统,使用lvresize将AntergosRoot扩展到新调整大小的PV的整个空间
- 将 / 的 (ext4) 文件系统的大小调整为之前调整大小的 LV 的整个空间
我的主要问题是我不知道要使用哪些命令,其次,当调整 LV AntergosRoot 的大小时,交换卷会导致它变得不连续吗?
答案1
你少了一个步骤。调整sdb3
分区大小并启动到新系统后,您需要使用该pvresize
命令告诉 LVM 允许使用扩展sdb3
.
所以:
2.5.启动进入新系统,然后pvresize /dev/sdb3
在步骤 3 中,我通常更喜欢使用lvextend
而不是lvresize
- 只是作为故障保护:如果我不小心输错了新大小,lvresize
可能会缩小 LV 而不是扩展它,而lvextend
只会告诉我指定的新大小小于当前大小一。这样更安全。
但如果你想立即使用所有新空间,你可以这样做:
lvextend -l +100%FREE /dev/mapper/AntergosVG-AntergosRoot
第 4 步非常简单:
resize2fs /dev/mapper/AntergosVG-AntergosRoot
所有这些步骤(2.5 ... 4)都可以在根文件系统已挂载且可写时完成。
是的,根文件系统在磁盘上将变得物理上不连续 -但这不是问题:当将LVM视为LV时,它可以作为一组连续的块号进行访问,并且LVM隐藏了交换分区上的跳转。就性能而言,单一的不连续性根本不是什么大问题。
如果实际需要保持 LV 在磁盘上物理连续,您可以设置lvchange -C y <name of LV>
将此信息告知 LVM。但是,您无法轻松地扩展 LV:在扩展之前,您必须确保 LV 的当前尾端之后有可用空间(使用pvdisplay --maps
并在必要时pvmove
重新排列内容)。在大多数情况下,这是没有必要的。