Centos6
沒有分區表的磁碟上的 LVM。如何使用 fdisk 重新分配可用空間?
我使用以下命令將 LVM 縮小了一半:
e2fsck -f /dev/VG/LV resize2fs /dev/VG/LV 5G lvreduce -L 5G /dev/VG/LV
檢查物理卷會產生以下結果:
--- Physical volume --- PV Name /dev/sdb VG Name VG PV Size 10.00 GiB / not usable 4.00 MiB Allocatable yes PE Size 4.00 MiB Total PE 2559 Free PE 1279 Allocated PE 1280
如何通過 fdisk 將空閒 PE(從哪個柱面開始)分配為標準分區?
如果您已將 PV 創建為分區,則必須先使用 縮小 PV ,然後使用或
pvresize --setphysicalvolumesize 5124M /dev/sdb
等工具調整分區表中的分區大小。fdisk``parted
但是在您的情況下,您無法在那裡創建新分區,因為 PV 包含整個驅動器,因此您無法在不破壞 PV 的情況下安全地創建新的分區表。好吧,實際上你可以通過直接操作分區表,但這很危險,並且會回來並進一步咬你。
相反,最安全的方法是在不同的驅動器上創建另一個 PV,將其添加到卷組,將 LV 移動到另一個 PV,從 VG 中刪除第一個 PV,從 /dev/sdb 中刪除第一個 PV,創建分區在 /dev/sdb 上,在其中一個分區上創建一個 PV,將 PV 添加到 VG,將 LV 移動到這個現在正確的 PV,最後從 VG 中刪除臨時 PV。
像這樣:(請注意,您必須確保使用適用於您的特定配置的設備名稱,而不僅僅是複制和粘貼。
/dev/sdc
這只是一個範例,對您來說可能會有所不同):# plug in external USB drive dmesg | tail # Check which device name the plugged in drive got. lsblk # another way to verify, assuming `lsblk` is installed cat /proc/partitions # one more way to verify, sizes are in KiB fdisk /dev/sdc # Make at least one partition on the drive, minimum of 5124 MiB. pvcreate /dev/sdc1 # create the Physical Volume (PV) vgextend VG /dev/sdc1 # add the PV to the Volume Group (VG) pvmove -i 5 /dev/sdb /dev/sdc1 # Try to move every Logical Volume (LV) on PV /dev/sdb over to PV /dev/sdc1. # There's no need to unmount anything, the process is completely transparent # to the LV and anything using it. You may want to make a tea or two ;) # Watch out for errors regarding insufficient space on the target PV, tho. vgreduce VG /dev/sdb # Remove the old PV from the VG. pvremove /dev/sdb # Wipe the PV metadata from the drive. Don't continue in case of errors here! fdisk /dev/sdb # Properly partition the drive. Partition for PV should be 5124 MiB minimum. pvcreate /dev/sdb1 # Create a PV on the just created partition. vgextend VG /dev/sdb1 # Add PV to the VG. pvmove -i 5 /dev/sdc1 /dev/sdb1 # Move LVs back from the temporary PV to the freshly partitioned one. vgreduce VG /dev/sdc1 # Remove temporary PV from the VG. pvremove /dev/sdc1 # Wipe PV metadata from the drive.
在嘗試此操作之前進行備份。
如果按照此處所示使用,給定的
pv*
和命令是安全的。vg*
如果不滿足先決條件,他們將拒絕工作,或者會詢問您是否仍要這樣做(n
在這種情況下回答)。特別是,當您將 LV 縮小到恰好 5 GiB 時,您將需要一個略大於 5120 MiB 的分區(我建議添加 4 MiB,因此 5124 MiB),以便 PV 能夠容納元數據,它會抱怨如果不是這樣的話。但是,
fdisk
這並不安全,即使它會覆蓋您的寶貴數據,它也會很樂意繼續執行您的指令,因此請格外小心。