Linux

如何將包含 LVM LV 和 /root 的 SSD 複製到更大的 SSD?

  • June 28, 2018

這是我的根卷,它是 32GB 並且包含 /boot,並且在 LVM LV 上是 / 和交換。

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 的大小時,交換卷是否會導致它變得不連續?

你少了一步。調整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重新排列事物)。在大多數情況下,這不是必需的。

引用自:https://unix.stackexchange.com/questions/452349