ファイルシステムと物理サイズの不一致を修復する方法

ファイルシステムと物理サイズの不一致を修復する方法

家のパーティションのサイズを小さくしようとしています。フォローするアーチウィキこれに関する記事です。これに基づいて、まずファイルシステムのサイズ変更を使用し、次にresize2fs物理デバイスのサイズ変更を使用しましたparted。パラメーターで、resize2fs予想されるサイズを次のように指定します。XGサイズ変更後、新しいサイズが次のように報告されます。Y(4kブロック)。この情報に基づいて、私のパーティションサイズは次のように計算されました。(Y * 4)キーBpartedを使用して物理パーティションのサイズを変更するときにこのサイズを使用しました。しかし現実はこんな感じ(Y*4)KB。したがって、ファイルシステムの総ブロック数が物理デバイスの総ブロック数よりも高くなります。

マンページには、resize2fsサイズを指定しないとデバイスの全スペースを占めると明示されています。そのため、この問題を解決するためにresize2fs再実行して、ファイルシステムのサイズを実際のサイズと一致させました。ただし、次のエラーが発生します。

resize2fs 1.45.6 (20-Mar-2020)
Resizing the filesystem on /dev/sda3 to 159907584 (4k) blocks.
resize2fs: Can't read a block bitmap while trying to resize /dev/sda3
Please run 'e2fsck -fy /dev/sda3' to fix the filesystem
after the aborted resize operation.

ただし、実行するとe2fsck不一致が報告され、中断が推奨されます。だから今私はループに閉じ込められました。

e2fsck 1.45.6 (20-Mar-2020)
The filesystem size (according to the superblock) is 186122240 blocks
The physical size of the device is 159907584 blocks
Either the superblock or the partition table is likely to be corrupt!
Abort<y>? 

回復する方法はありますか?バックアップを作成できるようにパーティションをマウントしてアクセスするのは安全ですか?

ありがとうございます!

ベストアンサー1

作成した内容によると、誤って含まれているファイルシステムよりもパーティションを小さく縮小しました。それ自体はデータを失うことはありませんが、それ以降に実行できるほとんどすべての作業が失われる可能性があります。これには確かにresize2fse2fsckとが含まれますmount。実行したコマンドはどちらも問題を検出して中断したため、とても幸運だったようです。

最大の質問は、パーティションを縮小して作成された追加スペースにどのような措置を講じましたか?これにより、追加のパーティションを作成するとそしてフォーマットしなさい、あなたのデータは回復できないほど破損する可能性があります。そうでなければ、おそらく大丈夫でしょう。

parted現在の問題を解決するには、パーティションを元のサイズに復元するなどのツールを使用する必要があります。空き領域で何もしなかった場合、データは残した場所にそのまま存在する必要があります。これにより、当面の問題が解決され、それを使用してe2fsck再確認できます。 やめる最初のような警告が表示される場合。


問題の根本原因は、ファイルシステムを正しく縮小していないためです。resize2fs 今後縮小分割を使用しますparted。これは、パーティションから削除したい領域からファイルデータを移動するために必要です。

私は気づいたウィキペディアresize2fsあなたの見積もりは、寸法を指定する必要があることを正しく示しています。

...単位に非常に注意し、入力した数字を理解するのに時間を費やしてください。 ext2/3/4の4kブロックは4096バイトを意味します。他の場所では、「ブロック」という用語がまったく異なる意味を持つこともあります。多くのパーティショニングプログラムpartedでは、KB、MB...とKiB、MiBも区別します。希望するユニットが何であるかを確認してください。

  • KB = 1,000MB = 1,000,000
  • KiB = 1,024MiB = 1,048,576

おすすめ記事