LVM物理ボリュームを縮小し、この空き容量を使用して他のオペレーティングシステム用の別のパーティションを作成したいと思います。
以下を使用して、ルートボリュームとプライマリ論理ボリュームのサイズを変更し、lvresize
今すぐ使用しようとしましたpvresize
が、次のエラーが発生します。
/dev/sda2: cannot resize to xxxxx extents as later ones are allocated.
このPVの空き容量は2つの論理ボリュームに分かれているため、パーティションを縮小できないようです。
出力は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 を作成し、確信が持てるまでこのコマンドをテストすることもできます。