ext4スーパーブロックのinode数が0にリセットされたときに回復する方法

ext4スーパーブロックのinode数が0にリセットされたときに回復する方法

15TB ext4パーティションのサイズを16TBに調整しようとしたが、予期せずext4_resize_fs()で古い(最新バージョンでは修正済み)off-by-oneバグが発生し、オーバーフローエラーのためにinodeの数が0にリセットされました。

修正内容はこちらからご覧いただけます。https://github.com/torvalds/linux/commit/4f2f76f751433908364ccff82f437a57d0e6e9b7

したがって、16TB パーティションは現在使用できません。

このような状況で回復する方法はありますか?この場合、すべてのファイルへの読み取り専用アクセスで十分です。

答え1

これを処理する最善の方法は、ssvdebugfsコマンドを使用してスーパーブロックを編集して、アイテムの値だけブロック数とinode数を減らしてからe2fsckを実行することです。これにより、サイズ変更の最後の部分がキャンセルされ、ファイルシステムを再利用できます。

関連情報