Filesystems

擴展 LUKS 加密分區以填充磁碟

  • February 7, 2022

我最近將我的磁碟從 128GB SSD 升級到了 512GB SSD。/ 分區使用 LUKS 加密。我正在尋求幫助擴展分區以使用新磁碟上的所有可用空間。我已經將舊驅動器添加到新驅動器上:

[root@localhost ~]# fdisk -l /dev/sda
Disk /dev/sda: 477 GiB, 512110190592 bytes, 1000215216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00009f33

Device     Boot   Start       End   Sectors   Size Id Type
/dev/sda1  *       2048   1026047   1024000   500M 83 Linux
/dev/sda2       1026048 250064895 249038848 118.8G 83 Linux

sda2 之後大約有 380GB 的未使用空間。

更多相關資訊:

[root@localhost ~]# vgs
 VG             #PV #LV #SN Attr   VSize   VFree
 fedora_chocbar   1   3   0 wz--n- 118.75g 4.00m

[root@localhost ~]# lvs
 LV   VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 home fedora_chocbar -wi-a----- 85.55g                                                    
 root fedora_chocbar -wi-a----- 29.30g                                                    
 swap fedora_chocbar -wi-a-----  3.89g

[root@localhost ~]# pvs
 PV                    VG             Fmt  Attr PSize   PFree
 /dev/mapper/encrypted fedora_chocbar lvm2 a--  118.75g 4.00m

似乎有很多關於如何做到這一點的資訊,但很少有解釋。我很感激這方面的任何幫助。

好的!終於有確定的答案了。我擴展 LUKS 加密卷的步驟…

  1. cryptsetup luksOpen /dev/sda2 crypt-volume打開加密卷。
  2. parted /dev/sda擴展分區。 resizepart NUMBER END.
  3. vgchange -a n fedora_chocbar. 停止使用 VG,以便您可以進行下一步。
  4. cryptsetup luksClose crypt-volume. 關閉加密卷以進行後續步驟。
  5. cryptsetup luksOpen /dev/sda2 crypt-volume. 再次打開它。
  6. cryptsetup resize crypt-volume. 將自動將 LUKS 卷調整為可用空間。
  7. vgchange -a y fedora_chocbar. 啟動 VG。
  8. pvresize /dev/mapper/crypt-volume. 調整 PV 的大小。
  9. lvresize -l+100%FREE /dev/fedora_chocbar/home. 將 /home 的 LV 調整為可用空間的 100%。
  10. e2fsck -f /dev/mapper/fedora_chocbar-home. 在調整大小的 fs 上扔一些 fsck 魔法。
  11. resize2fs /dev/mapper/fedora_chocbar-home. 調整 /home 中的文件系統大小(自動使用 100% 可用空間)

我希望其他人覺得這很有用。我現在有 300+GB 用於我的筆記型電腦上的測試虛擬機!

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