web-dev-qa-db-ja.com

resize2fsによって報告された最小サイズを下回ってパーティションを縮小する方法は?

250GB ext4パーティションをresize2fs.で200GBに縮小したい

dfツールによると、パーティションは約40%使用されています。したがって、少なくともパーティションをそのレベルまで縮小できると思います。

しかし、resize2fsでパーティションを縮小しようとすると失敗します。縮小されたパーティションサイズは「最小値よりも小さい」と述べています。

パーティションには以前に削除されたファイルの痕跡が残っているためだと思います。resize2fsは、それらがまだパーティション上にあると考えており、縮小すると、それらのデータが失われ、パーティションの縮小が拒否される可能性があります。

だから私の質問は:

  • パーティションを実際に60%空にして、縮小できるようにresize2fsを実現するにはどうすればよいですか?
  • 使用済みのブロックを再割り当てする方法はありますか?

注:私は中程度の経験を持つXubuntuユーザーです。

5
heyo5388383

resize2fsは、削除されたデータを気にしません。ファイルシステムを200 GiBに縮小することを拒否している場合は、サイズ変更後にファイルシステム構造を保存するため、またはサイズ変更操作自体を実行するために、より多くのスペースが必要であると考えられるためです。あなたは見ることができます 詳細はこちら (あなたがCを読むことができると仮定して);要約すれば:

  • ファイルシステムには、inodeの数を考慮して、必要な数のグループ記述子を格納するのに十分なスペースが必要です。
  • ファイルにデータを保存するのに十分なスペースが必要です。
  • サイズ変更操作を正常に完了するには、サイズ変更操作のバックグラウンド操作用に追加のiノードテーブルが必要です。
  • 各iノードグループにはオーバーヘッドがあり、これを考慮する必要があります(データがグループ間で分割される方法に影響を与える可能性があり、より多くのグループが必要になるため、オーバーヘッドが増加します)。
  • 必要に応じてエクステントツリーを拡大できるように領域を予約する必要があります。これにより、特にサイズを変更するときに、ファイルシステムの一部に消去する必要のあるデータが大量にある場合に、大きなオーバーヘッドが発生する可能性があります。

いくつかの追加の覆い隠しオーバーヘッドも追加されます(ファイルシステムツールは非常に安全に再生する傾向があります)。

resize2fs -Pを実行すると、ファイルシステムをどれだけ小さくできるかを確認できます。 resize2fs -Mは自動的に可能な限り小さくします。

7
Stephen Kitt

力を使う:

resize2fs -f /dev/sdXY 200G
0
Ipor Sircer