我想缩小 LVM 物理卷并使用此可用空间为另一个操作系统创建另一个分区。
我使用调整了根和主逻辑卷的大小lvresize
,现在我尝试使用pvresize
,但出现以下错误:
/dev/sda2: cannot resize to xxxxx extents as later ones are allocated.
该PV的可用空间分配在两个逻辑卷之间,我认为这就是无法缩小分区的原因。
的输出pvs -v --segments /dev/sda2
是:
PV VG Fmt Attr PSize PFree Start SSize LV Start Type PE Ranges
/dev/sda2 volgroup0 lvm2 a-- 446.64g 148.00g 0 7680 lv_root 0 linear /dev/sda2:0-7679
/dev/sda2 volgroup0 lvm2 a-- 446.64g 148.00g 7680 51712 lv_home 0 linear /dev/sda2:7680-59391
/dev/sda2 volgroup0 lvm2 a-- 446.64g 148.00g 59392 37888 0 free
/dev/sda2 volgroup0 lvm2 a-- 446.64g 148.00g 97280 17060 lv_root 7680 linear /dev/sda2:97280-114339
可用空间分配在段 59392 和 97279 之间。我知道pmove
可以将可用空间移动到另一个段,但老实说我不知道如何使用它,而且我担心会损坏我的数据。
有人可以帮我解决这个问题吗?谢谢!
答案1
pvmove 移动段,而不是空闲空间。您需要将此范围 /dev/sda2:97280-114339 移动到从段 59392 开始,这些是 17061 个段。
根据这你应该:
# pvmove --alloc anywhere /dev/sda2:97280-114339 /dev/sda2:59392-76453
然后调整PV大小,然后分区,然后享受您的空闲空间。虽然 LVM 试图避免搬起石头砸自己的脚,但这是一个危险的操作。如果您有任何数据丢失会给您带来麻烦,首先备份它,因为你很可能会毁掉它。此外,您还可以创建一个 Linux VM 并测试此命令,直到您对此充满信心。