Linux
如何將包含 LVM LV 和 /root 的 SSD 複製到更大的 SSD?
這是我的根卷,它是 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 上。以下是正確的程序嗎?我將使用另一台電腦,因此我原來的電腦內不會同時有新舊磁碟
- dd,其中 if=old_ssd 和 of=new_ssd
- 使用 gparted 增加分區 sdb3 (LVM PV) 的大小以填滿新空間
- 啟動進入新系統,使用lvresize將AntergosRoot擴展到新調整大小的PV的整個空間
- 將 / 的 (ext4) 文件系統大小調整為之前調整大小的 LV 的整個空間
我的主要問題是我不知道要使用哪些命令,其次,在調整 LV AntergosRoot 的大小時,交換卷是否會導致它變得不連續?
你少了一步。調整
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
重新排列事物)。在大多數情況下,這不是必需的。