Debian
使用 LVM 調整硬碟中間的擴展分區大小
我想添加一個分區以將可用空間 (50GB) 用於 LVM。磁碟被放大了好幾倍,造成了這個分區的混亂。我怎樣才能恢復訂單並使用可用空間?
# cfdisk /dev/sda Disk: /dev/sda Size: 200 GiB, 214748364800 bytes, 419430400 sectors Label: dos, identifier: 0x000cc491 Device Boot Start End Sectors Size Id Type >> /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 167770111 167268354 79.8G 5 Extended └─/dev/sda5 501760 167770111 167268352 79.8G 8e Linux LVM /dev/sda3 167770112 209715199 41945088 20G 83 Linux /dev/sda4 209715200 314572799 104857600 50G 83 Linux Free space 314572800 419430399 104857600 50G
我嘗試先調整擴展分區的大小,以便之後添加邏輯分區。但這不起作用:
(parted) print Model: VMware Virtual disk (scsi) Disk /dev/sda: 215GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 256MB 255MB primary ext2 boot 2 257MB 85.9GB 85.6GB extended 5 257MB 85.9GB 85.6GB logical lvm 3 85.9GB 107GB 21.5GB primary 4 107GB 161GB 53.7GB primary (parted) resizepart Partition number? 2 End? [85.9GB]? 135.6 Error: Can't have the end before the start! (start sector=501758 length=-236914)
更多資訊:
# pvs PV VG Fmt Attr PSize PFree /dev/sda3 root lvm2 a-- 20.00g 0 /dev/sda4 root lvm2 a-- 50.00g 0 /dev/sda5 root lvm2 a-- 79.76g 0 # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root root -wi-ao---- 146.48g swap_1 root -wi-ao---- 3.28g # vgs VG #PV #LV #SN Attr VSize VFree root 3 2 0 wz--n- 149.75g 0 # df -h Filesystem Size Used Avail Use% Mounted on /dev/dm-0 145G 129G 8.6G 94% / udev 10M 0 10M 0% /dev tmpfs 1.6G 9.2M 1.6G 1% /run tmpfs 4.0G 0 4.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 4.0G 0 4.0G 0% /sys/fs/cgroup /dev/sda1 228M 53M 164M 25% /boot tmpfs 801M 0 801M 0% /run/user/1000
為什麼不增加現有分區而不是添加新分區?
您的所有分區都已經是您的單個 LVM 卷組的一部分,無需添加更多,只需增加您所擁有的即可。
parted /dev/sda -- resizepart 4 100% pvresize /dev/sda4
到目前為止,這應該是最簡單的解決方法。
解決現有的分區排序有點複雜。解決它的最簡單和最安全的方法是附加一個新磁碟並遷移過來。
可以將數據改組到位,我之前在Move LVM of PV1 to PV2中描述過。由於分區問題,您不能直接應用此解決方案,並且映射未分區空間
losetup --offset
是有風險的,因為您可能會弄錯偏移量,並且它無法在重新啟動後繼續存在。另一種選擇是轉換為 GPT 分區,主分區與邏輯分區之間沒有區別,因此您可以創建任意數量的分區。但是,這樣做會導致系統無法啟動,直到您重新安裝引導載入程序。對於 Grub,您還必須創建一個 bios_grub 分區,該分區可以放置在 64s-2047s 中(在第一個分區之前,忽略對齊)。
如果
pvdisplay
顯示not usable x.y MiB
為x >= 1
,您還可以將每個分區縮小 1 MiB,然後在主/邏輯分區之間進行轉換。縮小是必要的,因為 msdos 邏輯分區資訊儲存在這些分區之間的間隙中。您目前在 sda5-sda3-sda4 之間沒有這樣的差距,因此它們不能直接映射到邏輯分區。