誤って間違ったUSBディスクに512バイトのバイナリファイルが書き込まれたため、デバイスdd
にパーティションが表示されなくなりましたfdisk
。
データがなくなったと思いましたが、幸いデータが最初の512バイトに制限されていてdd if=/dev/sdx | strings
表示データはまだ残っているようです。dd
復元する方法はありますか??
ディスクには2つのパーティションがあります。 1つはext4(〜4 GB)で、残りの16 GBはNTFSでフォーマットされています。
答え1
以前に正確に何が起こったかによって異なりますが、回復が容易になる可能性があります。
dd
安全な場所にUSBドライブのフルイメージを作成するために使用されます。dd
安全な場所にUSBドライブのフルイメージを作成するために使用されます。はい、画像全体を保管してください。データ復旧操作によって予想以上のダメージが発生することがよくあります。
そのUSBドライブのパーティションレイアウトがどのように見えるかを思い出してください。書いて降りる。 Linuxカーネルがディスクを検出した時点(ディスクが破損する前)のシステムログがあると便利です。通常、検出されたパーティションの一部のデータを印刷します。
fdisk を使用して、同じパーティション表で MBR を再作成します。パーティションをフォーマットしたりfsckしたりしないでください。。
読み取り専用(
-o ro
)オプションを使用してmount
パーティションをマウントしてみてください。成功したら、すべてのファイルを安全な場所にコピーし、端末を監視してI / Oエラーを記録します。パーティション境界エラーを表現する一般的な方法は、基本デバイスへの範囲外のアクセスを介することです。
コピーに失敗した場合は、イメージを復元して手順4に戻ります。
他の作業を行う前に、USBドライブの完全なイメージが必要だと言いましたか?
PS:同様のツールを見たいと思うかもしれません。テストディスク、回復プロセスを自動化してみてください。ただし、最初に完全な画像を取得する必要があります。
PS2:快適であれば試してみることもできます。最初の分割の始点について合理的な仮定を行うことができる場合は、を使用して最初の分割のtune2fs -l
正確なサイズを取得し、それを使用して2番目の分割の開始点を見つけることができます。
答え2
パーティションとそのデータを回復するために、ext4
ディスク全体のext4パーティションを作成することを検討しました。これは私を捕まえるデータにアクセスするそして、@thkalaが提案したようにpartitionsに関する情報を取得するために使用しますtune2fs -l
。情報は非常に実行可能であるため、変更はありません。
興味深いことに、gpartedはある程度見つけることができました。物理パーティションサイズこの警告からわかるように:
パーティション内に10.96GiBの未割り当て領域があります。パーティションを埋めるためにファイルシステムを拡張するには、パーティションを選択してメニュー項目を選択します。
11GiBはNTFSパーティションのサイズに似ているからです。
未使用のスペースであるIIRCに注意してください。これはext4でまだ利用可能なスペースです。これ未割り当て領域今gpartedが認識したのはNTFSパーティションのようです。どのように復元できますか?、おそらく最初のパーティションが終わる場所(たとえば、バイト数の合計)を見つけるのが良いでしょうか?
ついにテストディスクこれを簡単に処理しました。