如何用可用空间缩小LVM物理卷

如何用可用空间缩小LVM物理卷

我想缩小 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 并测试此命令,直到您对此充满信心。

相关内容