resize2fsが指定された範囲の終わりに最初にブロックを移動してパーティションを縮小するのはなぜですか?これは変わりますか?

resize2fsが指定された範囲の終わりに最初にブロックを移動してパーティションを縮小するのはなぜですか?これは変わりますか?

resize2fs現在、LVMボリュームグループの空き領域を回復するためにかなり大きなパーティションを縮小しています。

私が理解しているように、ファイルシステムの縮小操作は(ファイルシステムの最後のブロック)と(作業が完了した後に最後のブロックになるはずです)の間の各ブロックに対して次のことを行います。

  1. どのファイルで使用されているかを確認する
  2. その場合は、そのブロックとそのファイルで使用されるすべてのブロックを適切なパーティションの最速の場所にコピーします。
  3. そのファイルブロックのレコードがブロックの新しい場所を指すようにメタデータを更新します。

このステップは依存していないようです注文するそこにあるブロックタスクを実行してください。両端でブロックを移動し始め、どちらの方向でも動作します。しかし、この場合:

+---------------------------+--------------------------------------------+
|    resize target          |      space to move blocks away from        |
|                           |                                            |
+-----------+---------------+---------+------+---------------+-----+-----+
|   used    |                         |  to  |               | to  |     |
|  space at |                         | move |               | move|     |
|   start   |                         | (1)  |               | (2) |     |
+-----------+-------------------------+------+---------------+-----+-----+

...resize2fs最初に(1)移動してから(2)移動します。

なぜそんなことですか?私にとって(2)を最初に実行することの利点は、ユーザーがサイズ変更操作を完了するのに時間がかかりすぎると考えて、途中で停止するといくつかの進行が行われ、より大きなターゲットサイズにサイズ変更を選択するだけです。です。 (より小さい縮小)もう一度やり直すと、次回はやることが少なくなります。

私の場合は、LVMボリュームを縮小して代替LVMスコープを使用できる限り部分的にサイズを変更できますが、それを行うにはファイルシステムの末尾にスペースを確保する必要があるため、コマンドを繰り返しresize2fs実行してきました。小さな増分でボリュームを手動で縮小します。もっと良い方法がありますか?

この問題同様に、異なる方向からファイルシステムスペースを回復する方法についてです。スタート最終的ではなく部分的です。

ベストアンサー1

おすすめ記事