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는 여유 공간이 아닌 세그먼트를 이동합니다. 17061 세그먼트인 세그먼트 59392에서 시작하려면 이 범위 /dev/sda2:97280-114339를 이동해야 합니다.
~에 따르면이것당신은:
# pvmove --alloc anywhere /dev/sda2:97280-114339 /dev/sda2:59392-76453
그런 다음 PV의 크기를 조정하고 파티션을 나누고 여유 공간을 즐기십시오. LVM이 자신의 발에 총을 쏘는 것을 피하려고 노력하는 동안 이는 위험한 작업입니다. 데이터가 손실되면 문제가 발생할 수 있습니다.파손될 가능성이 높으므로 먼저 백업하십시오.. 또는 Linux VM을 생성하고 확신이 들 때까지 이 명령을 테스트할 수 있습니다.