如何将包含 LVM LV 和 /root 的 SSD 克隆到更大的 SSD?

如何将包含 LVM LV 和 /root 的 SSD 克隆到更大的 SSD?

这是我的根卷,大小为 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 上。以下是正确的程序吗?我将使用另一台计算机,因此我原来的计算机不会同时包含新旧磁盘

  1. dd,其中 if=old_ssd 且 of=new_ssd
  2. 使用 gparted 增加分区 sdb3 (LVM PV) 的大小以填充新空间
  3. 启动进入新系统,使用lvresize将AntergosRoot扩展到新调整大小的PV的整个空间
  4. 将 / 的 (ext4) 文件系统的大小调整为之前调整大小的 LV 的整个空间

我的主要问题是我不知道要使用哪些命令,其次,当调整 LV AntergosRoot 的大小时,交换卷会导致它变得不连续吗?

答案1

你少了一个步骤。调整sdb3分区大小并启动​​到新系统后,您需要使用该pvresize命令告诉 LVM 允许使用扩展sdb3.

所以:

2.5.启动进入新系统,然后pvresize /dev/sdb3

在步骤 3 中,我通常更喜欢使用lvextend而不是lvresize- 只是作为故障保护:如果我不小心输错了新大小,lvresize可能会缩小 LV 而不是扩展它,而lvextend只会告诉我指定的新大小小于当前大小一。这样更安全。

但如果你想立即使用所有新空间,你可以这样做:

  1. lvextend -l +100%FREE /dev/mapper/AntergosVG-AntergosRoot

第 4 步非常简单:

  1. resize2fs /dev/mapper/AntergosVG-AntergosRoot

所有这些步骤(2.5 ... 4)都可以在根文件系统已挂载且可写时完成。

是的,根文件系统在磁盘上将变得物理上不连续 -但这不是问题:当将LVM视为LV时,它可以作为一组连续的块号进行访问,并且LVM隐藏了交换分区上的跳转。就性能而言,单一的不连续性根本不是什么大问题。

如果实际需要保持 LV 在磁盘上物理连续,您可以设置lvchange -C y <name of LV>将此信息告知 LVM。但是,您无法轻松地扩展 LV:在扩展之前,您必须确保 LV 的当前尾端之后有可用空间(使用pvdisplay --maps并在必要时pvmove重新排列内容)。在大多数情况下,这是没有必要的。

相关内容