![LVM PVおよびLUKSコンテナ/パーティションの最小化[閉じる]](https://linux33.com/image/138080/LVM%20PV%E3%81%8A%E3%82%88%E3%81%B3LUKS%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%2F%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E6%9C%80%E5%B0%8F%E5%8C%96%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
swap
現在LUKSコンテナからLVM LVを削除し、暗号化されないようにしたいと思います。
gparted
私はプロセスのすべてのステップを制御するのと同じことを避けたいと思います。
lvremove
LVで作業を完了しswap
、pvmove
隣接するPV範囲を取得した後に渡す最小サイズをどのように把握しますかpvresize
?減らされたPVを考慮して、LUKSパーティションをそれに合わせて縮小するためにLUKSコンテナに含める必要があるセクタまたはMiBの数をどのように知ることができますか?
LUKSコンテナは長さがなく、パーティションだけ縮小すると縮小されると思うのが正しいですか?
PVの最終範囲にまだアクセスできるか、つまり実際に縮小されたパーティションのアドレス指定可能セクタ内にあるかどうかをLVMレベルで確認する方法はありますか?
答え1
1.)
マニュアルページから:
pvresize
物理ボリュームの新しい終了位置の後にエクステントが割り当てられると、物理ボリュームの縮小は拒否されます。
だから試行錯誤で作業を行います。実際、pvresize
その一部をお話しします。
/dev/dm-7: cannot resize to 17564 extents as 18620 are allocated.
正確なサイズを確認するには、PEサイズ(4MiBなど)と最初のPEオフセット(1MiBなど)を知る必要があります。もちろん、最後に割り当てられた範囲の番号も同様です。
pvs -o pv_name,pe_start,vg_extent_size,seg_pe_ranges
したがって、合計サイズは1MiB(最初のPE)+ 18620 * 4MiB(PEサイズ)にすることができます。
2.)
LUKSヘッダーサイズ/データオフセットを知る必要があります。通常、これは4096セクタ、つまり2MiBです。確認してくださいcryptsetup luksDump
、Payload offset
。
したがって、新しいパーティションサイズは、LUKSペイロードオフセットにPV自体のサイズを変更したサイズを加えた値です。
3.)
はい、いいえ。 LUKSはメタデータのサイズを保持しないため、LUKSコンテナをシャットダウンまたは再起動するときは、ブロックデバイス自体のサイズのみを使用します。
cryptsetup resize
ただし、オンラインサイズ変更の場合は、使用してから使用するサイズに設定する必要がありますpvresize
。
4.)
時には、読み取り専用モードで問題のあるデバイスをqemu / KVMインスタンスに渡し、いくつかのLinux回復システムを実行してこれを実行します。 LVMは冗長PV UUIDまたはVG / LV名を見るのが好きではないため、ホストを確認することは困難です(読み取り専用ループデバイスを使用するなど)。 PV が予想より小さい場合、LVM はアクティブ化を拒否します。
答え2
考えるpvshrink
ほとんどの計算を行います。フロストスーツの答え、--test
変更しないモードがあります。