Debian

在 Debian Buster 上使用 LUKS2 時如何增加 LVM

  • March 6, 2021

我在配備 250 GB SSD 的 ThinkPad T420 上執行 Debian Buster。由於我需要更多磁碟空間,我使用 Clonezilla 將我目前的 Debian 安裝從內部 250 GB SSD 複製到通過 USB 到 SATA 適配器連接的新 500 GB SSD。之後我用 500 GB SSD 替換了 250 GB SSD,並使用 GParted live 來增加擴展分區 (/dev/sda2) 和 LVM2 PV 分區 (/dev/sda5) 的大小。一切正常,系統重新啟動並執行。不幸的是,我還不能使用新空間,因為根 LVM 也必須調整大小:

user@debianbook:~$ lsblk
NAME                         MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                            8:0    0 465,8G  0 disk  
├─sda1                         8:1    0   243M  0 part  /boot
├─sda2                         8:2    0     1K  0 part  
└─sda5                         8:5    0 465,5G  0 part  
 └─sda5_crypt               254:0    0 465,5G  0 crypt 
   ├─user--deb--vg-root     254:1    0 204,3G  0 lvm   /
   └─user--deb--vg-swap_1   254:2    0   7,9G  0 lvm   [SWAP]

增加 /dev/sda5 上的根 LVM 需要哪些步驟?

就像俄羅斯娃娃:磁碟 -> MBR 分區方案 -> 擴展分區容器 -> 邏輯分區 -> LUKS -> PV -> VG -> LV-> 文件系統。所以根文件系統不只是/dev/sda5.

你已經做了什麼:

  • 擴大磁碟
  • 擴大擴展分區容器 ( /dev/sda2)
  • 擴大分區 ( /dev/sda5)

還剩下什麼:

  • LUKS:沒有特殊處理。元數據在開始,因此 LUKS 不受影響。LUKS(實際上是設備映射器後端)已經應對了大小的變化。只是如果額外的空間沒有在 LUKS 內部歸零(這對於 SSD 的耐用性來說不是一個好主意),額外的未使用數據將在那裡顯示為隨機數據。
  • PV:(用 總結pvs)當 PV 可用的潛在空間增加時,必須告知 PV 以實際使用它。要佔用整個可用空間,不需要特殊選項pvresize,如手冊中所述:

擴大分區後展開PV。

pvresize /dev/sda1

對於您的情況:

pvresize /dev/mapper/sda5_crypt
  • VG:(與 總結vgs)無關,VG 從它使用的 PV 繼承其可用大小,因此在 PV 變大後立即顯得更大。VG 是一個 LVM2 抽象,沒有可見的直接設備映射器對應物。
  • LV:(用 總結lvs)通用命令lvresize只是更好地使用lvextend,它只會為了安全而使其更大。您可以告訴它使用整個可用空間作為額外空間(但在執行此操作之前請參閱文件系統部分):
lvextend -l +100%FREE user-deb-vg/root
  • 文件系統:現在它有更多可用空間,也可以擴大。

因為它是 Debian 的預設設置,所以我假設這裡使用了 EXT4。由於/已經掛載,這必須在 EXT4 文件系統(和其他一些文件系統)支持的線上模式下完成(意味著必須涉及核心的文件系統驅動程序)。要放大到 LV 提供的可用空間,再次不需要特定的大小選項:

resize2fs /dev/mapper/user--deb--vg-root

但實際上最後兩個步驟(LV+FS)可以在一個命令中組合使用:

lvextend --resizefs -l +100%FREE user-deb-vg/root

它的優點是自動檢測文件系統並為正確的文件系統執行正確的命令。

您不必使用整個可用大小。您可以選擇 +50%FREE 以保留約 130GB 作為預留空間,特別是如果您想稍後創建單獨的文件系統(在額外的 LV 中)。

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