誤ってdd
外付けディスクの最初の208MBを使って書きました。私はそれを独自のパーティション(Debian Nestinstaller)に書き込んだので、以前(今は破損している)ext4パーティションの代わりに別の小さなパーティションを見ています。これは私が従うことができるツールとアドバイスを制限します。
私の計画はパーティションテーブルを再作成し、testdisk
以下に説明するようにバックアップスーパーブロックを使用してすべてを変更することです。ここ。最初の208MBは失われますが、その中に含まれている他の300GBのデータと比較すると悪くはありません。このように:
mke2fs -n /dev/sdb1 # doesn't work because sdb1 is the 208MB new partition
testdisk ... # used this to create new correct partition table
mke2fs -n /dev/sdb1 # now works fine, get backup superblock positions
e2fsck -b backup_position -y /dev/sdb1 # returns many errors hence the -y
しかし、何も救うためにできることは何もありませんでした。testdisk
以前に分割されたテーブルと一致する新しいパーティションテーブルを作成したことがあります。 e2fsckを実行すると、さまざまなエラーが発生します。後でファイルシステムを入手しましたが、ファイルなしで完全に空でした。
Lost + Foundディレクトリはファイル(復元されたファイルであると仮定)でいっぱいですが、ファイルだけでなくディレクトリツリーも復元する必要があります。ファイルが何であるか(顕微鏡画像、質量分析データなど)を知るには、ファイル名と古いディレクトリが必要です。名前とファイルを含むディレクトリがない場合は意味がありません。
私は別の同じハードドライブを入手してドライブ全体のコピーを作成し、dd
何も失うことなく回復を試みることができました。どんな提案がありますか?
ベストアンサー1
ついにこの問題を解決できました。ちなみに私がする方法はこんな感じです。私が見つけた解決策の一部こここれには、ファイルシステムの作成に使用された設定を理解することが含まれます(デフォルトは変更されていないと確信しています)。
デフォルトでは、最初に実際に持っているパーティションテーブルを反映するためにパーティションテーブルを変更する必要がありました(testdisk
これには使用しましたがparted
正しく機能するcfdisk
必要がありますfdisk
)。間違ったパーティションを削除し、正しいCHS値でディスク全体を含む単一のext4タイプパーティションに置き換えました。
残りはほとんど最初のリンクから取られましたが(詳細は読んでください)、基本的にmke2fs -n /dev/xxx
スーパーブロックのバックアップがどこにあるかを見つけるために走りました。次に、ディスクの最後に最も近い最後のバックアップを使用してfsckを実行します(ディスクの先頭のバックアップのみがddで上書きされます)。これにより多くのエラーが発生しますが、fsckには-y
オプションがあります(fsckとは異なります-a
)。
$ sudo e2fsck -a -b backup_block_number /dev/xxx
ファイルが見えないので、これはうまくいかないようですが、実際にはすべてそのlost+found
ディレクトリに保存されています。
そのため、最終的にファイル名とディレクトリ構造を維持しながら、ほとんどのファイルを保存しました。これが今後他の人に役立つことを願っています。