
我最近將磁碟從 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
似乎有很多關於如何執行此操作的信息,但解釋很少。我很感謝對此的任何幫助。
答案1
好的!終於有了確定的答案。我擴展 LUKS 加密卷的步驟...
cryptsetup luksOpen /dev/sda2 crypt-volume
開啟加密卷。parted /dev/sda
來擴充分區。resizepart NUMBER END
。vgchange -a n fedora_chocbar
。停止使用 VG,以便您可以執行下一步。cryptsetup luksClose crypt-volume
。關閉加密磁碟區以進行後續步驟。cryptsetup luksOpen /dev/sda2 crypt-volume
。再次打開它。cryptsetup resize crypt-volume
。將自動將 LUKS 磁碟區的大小調整為可用空間。vgchange -a y fedora_chocbar
。激活 VG。pvresize /dev/mapper/crypt-volume
。調整 PV 的大小。lvresize -l+100%FREE /dev/fedora_chocbar/home
。將 /home 的 LV 大小調整為可用空間的 100%。e2fsck -f /dev/mapper/fedora_chocbar-home
。對調整大小的 fs 施加一些 fsck 魔法。resize2fs /dev/mapper/fedora_chocbar-home
。調整 /home 中檔案系統的大小(自動使用 100% 可用空間)
我希望其他人發現這很有用。我的筆記型電腦上現在有 300+GB 的空間可以測試虛擬機器!
答案2
對於那些想知道如何簡單地將 LUKS 分割區大小調整為調整後的容器大小的人,命令如下:
帶有 LUKS 加密卷打開並將開啟的磁碟區映射為
opened-volume
,執行sudo cryptsetup resize /dev/mapper/opened-volume
在線調整 LUKS 加密卷的大小...
然後調整內容的大小。
例如,如果它是一個Ext4 檔案系統,即使它安裝了,您也可以調整它的大小
sudo resize2fs /dev/mapper/opened-volume
或者如果你有一個左心室容量物理體積 裡面LUKS 加密卷,只需使用
pvresize
:sudo pvresize /dev/mapper/opened-volume
我已經使用已安裝的檔案系統/已啟動的 PV 完成了此操作,沒有中斷;無需先卸載即可調整容器大小,因為加密磁碟區位於 LVM 邏輯磁碟區上(使用lvresize
)/使用parted
調整 GPT 分割區大小以包含緊接其後的可用空間!
答案3
我找到了一個更簡單的解決方案。即時運行 Xubuntu,安裝並啟動分區管理器。它可以很好地處理加密分割區。
完整的詳細資訊在這裡:http://e1z.ca/devlog/encrypted_partition_resize.html
答案4
使用parted從命令列調整大小無LVM(在 ms-dos 分區表上以增加樂趣)。
我將我的 VPS 從 50G 擴展到 150G。
Crypttab 內容如下:
# cat /etc/crypttab
vda5_crypt UUID=c5e67d21-6af4-4d55-a4bc-2978e50c00c3 none luks
vda6_crypt /dev/vda6 /dev/urandom cipher=aes-xts-plain64,size=256,swap
尺寸:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vda5_crypt 47G 12G 35G 26% /
/dev/vda1 641M 63M 532M 11% /boot
分區佈局為:
# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 53.7GB 53.0GB extended
5 701MB 51.7GB 51.0GB logical
6 51.7GB 53.7GB 1985MB logical
正如你所看到的,我的交換分區(分區 6)擋住了;我需要將其刪除以擴展分割區。首先關閉交換:
swapoff -a && free -lm
「交換:」行應讀取全零。
現在,棘手的一點是在重新啟動和擴展之前調整分區大小並恢復它們(parted 會抱怨它無法通知內核,我(我)多次忽略了這一點)。
首先刪除交換分割區:
parted /dev/vda
(parted) rm 6
Error: Partition(s) 6 on /dev/vda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a
result, the old partition(s) will remain in use. You should reboot now before making further changes.
Ignore/Cancel? i
將邏輯分割區 (2) 擴展以容納擴充分割區,直到磁碟末端 (-1):
(parted) resizepart 2 -1
調整邏輯分割區 5 的大小,為交換分割區保留空間(parted 會再次抱怨,繼續並(i)忽略:
(parted) resizepart 5 -4G
重新建立交換分區- 正如您從crypttab 中看到的那樣,它在每次啟動時都是隨機的,因此我們不必擔心UUID - 不適合掛起- 但對於伺服器和無掛起來說,這是首選方式。從上一個分割區末尾(157G)到磁碟末尾(-1)建立:
(parted) mkpart
Partition type? primary/logical? l
File system type? [ext2]? linux-swap
Start? 157GB
End? -1
檢查結果:
(parted) print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 161GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 700MB 699MB primary ext4 boot
2 701MB 161GB 160GB extended
5 701MB 157GB 156GB logical
6 157GB 161GB 3998MB logical linux-swap(v1) lba
(parted) quit
現在重啟您應該正常啟動系統,解鎖分割區。
重新啟動後,檢查您的交換空間:
# swapon
NAME TYPE SIZE USED PRIO
/dev/dm-1 partition 3.7G 0B -1
是時候擴展了!使用 'cryptsetup resize /dev/mapper/opened-volume' 和 'resize2fs /dev/mapper/opened-volume'
cryptsetup resize /dev/mapper/vda5_crypt
resize2fs /dev/mapper/vda5_crypt
結果我的加密磁碟區大小調整為 132G:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vda5_crypt 144G 12G 132G 9% /
/dev/vda1 641M 63M 532M 11% /boot