ext4ファイルシステムを復元する方法

ext4ファイルシステムを復元する方法

ルート以外のファイルシステムをホストする /dev/sdc1 という HDD デバイスがあります。停電後に起動すると、マウントできません。ファイルシステムが修復できないほど破損している可能性はあるのでしょうか。障害が発生した時点では使用されていないと思います。再度マウントするにはどうすればよいでしょうか。

user@pc ~ $ sudo fdisk -l /dev/sdc 
... 
Device     Start        End    Sectors  Size Type 
/dev/sdc1   2048 5860532223 5860530176  2.7T Linux filesystem

/etc/fstab: 
/dev/sdc1   /mnt/data_c ext4    defaults    0 0 

user@pc ~ $ sudo mount /dev/sdc1 
mount: wrong fs type, bad option, bad superblock on /dev/sdc1, 
   missing codepage or helper program, or other error 

   In some cases useful info is found in syslog - try 
   dmesg | tail or so.

user@pc ~ $ dmesg|tail
...
[154150.717274]  sdc: sdc1 
[154564.927084] EXT4-fs (sdc1): VFS: Can't find ext4 filesystem

次に、別のスーパーブロックの場所を使用してマウントを試みました。

mount -t ext4 -o sb=131072,ro /dev/sdc1 /mnt/data_c

私は、sb オプションを次のすべての数字の 4 の倍数にして上記を実行しました: 32768、98304、163840、229376、294912、819200、884736、1605632、2654208、4096000 (スーパーブロックのバックアップがこれらのブロックに保存され、マウントでは sb= を 1k ブロック単位で必要とするため、4 倍にする必要があると誰かが私に言ったため)。常に同じエラー (間違った fs タイプ、不正なオプション、不正なスーパーブロック... および VFS: ext4 ファイルシステムが見つかりません) が発生しました。

次に、パーティションを見つけて、その中のファイル (すべてのファイルだと思います) を一覧表示できる testdisk を使用しました。また、ファイルを 1 つずつコピーすることもできますが、問題は、約 200 ~ 300 個のファイルが必要で、時間がかかることです。そのため、ファイルシステムを修復する別の可能性を検討したいと思います。

Disk /dev/sdc - 3000 GB / 2794 GiB - CHS 364801 255 63 

     Partition                  Start        End    Size in sectors 

  MS Data                     2048 5860532223 5860530176 [data3] 
superblock 0, blocksize=4096 [data3] 
superblock 32768, blocksize=4096 [data3] 
superblock 98304, blocksize=4096 [data3] 
superblock 163840, blocksize=4096 [data3] 
superblock 229376, blocksize=4096 [data3] 
superblock 294912, blocksize=4096 [data3] 
superblock 819200, blocksize=4096 [data3] 
superblock 884736, blocksize=4096 [data3] 
superblock 1605632, blocksize=4096 [data3] 
superblock 2654208, blocksize=4096 [data3] 

To repair the filesystem using alternate superblock, run 
fsck.ext4 -p -b superblock -B blocksize device

非常に興味があります。ハードディスクは 1 年未満しか経っておらず、停止時に何も書き込まれていなかったことはほぼ確実です (読み取りは行われていた可能性があります)。すべてのスーパーブロックが無効になっている可能性はありますか? おそらくどこか別の場所にあるのでしょうか?

答え1

まず、パッケージを介してハードドライブをテストすることができますスマートモンツール

ドライブの「スマート」を有効にします:

 smartctl -s on /dev/sdc

長いテストを開始します(最初に「短い" テスト ) :

 smartctl -t long /dev/sdc

テストの終了を待って結果を取得します:

 smartctl -l selftest /dev/sdc

ハードドライブに問題がない場合は、以下のコマンドを試してファイルシステムを確認してください。

 e2fsck -n /dev/sdc1

うまくいかなかったら、テストディスク解決策です。

関連情報