破損したスーパーブロックを使用してLVMからext4ファイルシステムを回復する

破損したスーパーブロックを使用してLVMからext4ファイルシステムを回復する

停電後、LVにあるEXT4 fsのスーパーブロックが破損して設置できません。 LVはすべて同じ物理ディスクとVG内にあります。ディスクに損傷がなく、ファイルシステムのみが破損しているようです。

数日前、それほど重要ではない他のfs(またEXT4)でも同じことが起こる別の中断が発生しました。私は他の多くのLVを持っており、ほとんどはEXT4であり、強制的に閉じる前にすべてのLVがまだマウントされています。しかし、これら2つだけが破損しています。

これまで、2つの破損したファイルシステムと2つのハングの間で見た唯一のパターンは次のとおりです。

  • 両方ほぼシャットダウン前にLV(およびファイルシステム)のサイズがオンラインで調整された唯一のノード。これにより、Lvresizeとresize2fsが完了しました。
  • どちらもext4で、最後の中断の直前にサイズ変更された3番目のファイルシステムがあります。このファイルシステムは壊れていませんが、唯一のbtrfsファイルシステムです。

私の合理的な推測は、強制終了、削除ではなく、リアルタイムのサイジング更新に関する情報を提供しないことに関連している可能性があることです。どちらのファイルシステムも、サイズ変更の前後で正常に実行され、割り込みは起爆装置であった。

私が行ったいくつかのテストは次のとおりです。

sudo マウント /dev/vg00/dshark /mnt

mount: /mnt: cannot mount; probably corrupted filesystem on /dev/mapper/vg00-dshark.
       dmesg(1) may have more information after failed mount system call.

マウントを試みた後、dmesgは次を返します。

[18041.892096] EXT4-fs (dm-22): VFS: Found ext4 filesystem with invalid superblock checksum. Run e2fsck?

sudo e2fsck /dev/vg00/dshark

e2fsck 1.46.5 (30-Dec-2021)
e2fsck: Bad magic number in super-block while trying to open /dev/vg00/dshark

The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem.  If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>
 or
    e2fsck -b 32768 <device>

/dev/vg00/dshark contains a ext4 file system

また、スーパーブロックがどこに保存されるべきかを確認してみました。

sudo mke2fs -n /dev/vg00/dshark

mke2fs 1.46.5 (30-Dec-2021)
/dev/vg00/dshark_snap contains a ext4 file system
Proceed anyway? (y,N) y
Creating filesystem with 14155776 4k blocks and 3538944 inodes
Filesystem UUID: 0c642ec1-e5e1-41ab-95ff-8f9054058fa6
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424

e2fsck -bを試してください。スーパーブロックこの値のいずれかを使用すると、上記と同じ結果が表示されます。さて、1つのケースを除いて:

sudo e2fsck -b 884736 /dev/vg00/dshark_snap

e2fsck 1.46.5 (30-Dec-2021)
e2fsck: Attempt to read block from filesystem resulted in short read while trying to open /dev/vg00/dshark_snap
Could this be a zero-length partition?

ファイルシステムの回復の助けまたは最悪の状況救ってくれて本当にありがとう!これの理由を調べることも、追加の腐敗を防ぐのに非常に役立ちます。さらに情報が必要な場合は、質問を更新します。ありがとうございます!

関連情報