偶然dd / dev / sdaした


35

を使用してISOイメージをハードディスクに書き込みましたsudo dd if=image.iso of=/dev/sda。を意味し/dev/sdc、現在実行しているのsudo fdisk -lは、/ dev / sda上の1つのパーティションのみを返しますが、6があるはずです。データを回復することは可能ですか?

まだコンピューターをシャットダウン(リブート)していません。


24
dd再びその醜い「データデストロイヤーの顔を示している:-(これは、(isoファイルのサイズに対応)ドライブのヘッドエンドを上書きしました。あったデータは失われています。あなたはかなりの最新のバックアップを持っていますファイルには、あなたは?失うわけにはいかないことをそれ以外の場合は、あなたが、パーティションテーブルとファイルシステムを修復するためにハードワークのために準備しなければならないクローンコピーで最高のは、使用してTestDiskはを「後ろの」発見されると、それが失敗した場合は、さらに困難な作業は、ファイルのデータを回復します上書きされるドライブの部分PhotoRecをその目的に使用できます。このリンクを参照してくださいcgsecurity.org
sudodus

6
ドライブgptがパーティション化されているため、ドライブの最後にバックアップパーティションテーブルがあるという利点があります。ISOのサイズへのドライブの開始のみが完全に上書きされ、失われます。パーティションのサイズに応じて、他のパーティションの一部またはほとんどを回復できる場合があります。
オールドフレッド

10
@sudodusは、dd見苦しい 'Data Destroyer'の顔を再び示しました」 -とは関係ありませんがdd、rootとしてディスクデバイスに直接アクセスすることに関係しています。他のツールでも同じ効果があります。cat image.iso > /dev/sdaまったく同じ効果があったでしょう。またはpv ...。または、ある程度までvi /dev/sda。実際、これは、Linus Torvaldsがモデムデバイスではなく、ハードドライブデバイスを使用してネットワークにダイヤルインし、ドライブの開始をダイヤルインハンドシェイク上書きしようとしたという話を思い出させます。関係ありませんdd
marcelm

4
.isoファイルの正確な大きさは?中断しましたかdd、それとも最後まで実行しましたか?
marcelm

4
@marcelm、あなたは正しい。しかし、本当の生活の中で、人々が使用しているdd「のようなコマンドラインを使用しないでください:私は「データデストロイヤー」警告は関連性があると思いますので、完全に正しい警告が長くなるべきであるが、(この目的のために)このようにsudo dd if=image.iso of=/dev/sdx大量にクローンにストレージデバイス:正しいターゲットデバイスを識別して選択し、最終チェックポイントを持つツールを使用して、isoファイルから正しいターゲットデバイスにクローンを作成することを再確認できます(StartupDiskCreator、Disks、mkusbなど)。 、Win32DiskImager。」
sudodus

回答:


65

お使いのコンピューターはまだ電源が入っているので、物を保存するチャンスがあります。

まず、sysfsパーティションテーブルのメモリビューでカーネルを公開します。現在、カーネルはディスクのテーブルを再読み込みしておらず、パーティションを記憶しています。内部には/sys/block/sda/、パーティションごとに1つのディレクトリが必要です。そのような各サブディレクトリには、パーティションとパーティションの場所とサイズをセクター単位で表すfile startとfileが含まれていますsize。ディレクトリfdisk内の情報を使用して、各パーティションを実行し、順番に再作成しますsysfs。新しいパーティションテーブルも作成する必要があることに注意してください。新しいパーティションテーブルが以前のものと同じであることを確認します。これはで確認でき/sys/block/sdaます。あなたは、表示された場合sda1までsda7パーティションは6つしかありませんが、おそらくMBRがあり、それ以外の場合はおそらくGPTでした。また、これらのパーティションにフラグとタイプを設定する必要があります。使用している/etc/fstabパーティションのタイプに関する情報を調べて収集し、ウィキペディアをチェックしてパーティションスキームのコードに変換します。

ファイルシステムを使用できるように見えるため、ファイルシステムddの重要な部分のほとんどが先頭にあるため、ファイルシステムを上書きできなかった可能性があります。/etc/fstabどのパーティションがシステムのどの部分に対応するかを確認し、ddコピーされたデータの量を使用して、どれだけのヌークが発生したかを推定します。ファイルシステムの一部のみを上書きした場合、それを少し修正できるfsck 可能性があります(ただし、大量のデータが失われています)。

おそらく、あなたは上書きしました/boot。カーネルを再インストール(with aptitude)およびGRUB2を再インストール(with grub-install)(最初と2番目の両方のステージが破壊された)必要があります。GRUB2はのファイルで構成され/etcているため、手動で何かを再作成する必要はありません。


15
/sys/block/sda/*/{start,end}この情報を使用してパーティションを確認して再作成してください」:これについて少し拡張していただけますか?それは簡単な操作ではなく、それ以外の点では優れた答えの主なポイントのようです。
テルドン

解読が容易になり、出力、それぞれの後にRETURNを持つプロンプトシェルでこれらを入力...............: 、sudo parted、、unit sprint allquit
ハンヌ

3
貴重な情報を発見したら、別のドライブ(USBスティックなど)にコピーします。パーティション再作成手順のいずれかが完全に実行されない場合、まだ実行中のコンピューターのメモリにあったものの記録が必要です。また、実行中のコンピュータがまだ動作している間に、最も価値のあるファイルや小さなファイル(.bashrcホームディレクトリからのドットファイルや/etc、実際のデータ以外のすべてを含む)を別のディスクコピーします。tar.gzは、ディレクトリ全体をコピーするのに適した形式です(アクセス許可などを保持するため)。
ピーターコーデス

彼は、カーネルがあなたのパーティションのレイアウトをどう思うか不確実性がある場合には一種の危険のある/ブーツは、...何であったか再フォーマットする可能性が高い必要もあろう
rackandboneman

1
@rackandbonemanカーネルは、パーティションがマウントされたディスク上のパーティションテーブルの再読み込みを拒否します。/bootこのように再フォーマットすることは完全に「安全」です(この状況に関する文字通り他のすべての方法です)カーネルは何についても不確実ではないためです。
HTNW

21

大変な運について読んで申し訳ありません

あなたには現在のバックアップがないと思います。

sudo dd if=image.iso of=/dev/sdx

ドライブ文字x= を使用したa場所では、多くの貴重なデータを保存したハードディスクドライブの先頭を上書きしていました。

あなたは最初の人ではなく、私はこの問題の影響を受ける最後の人ではないのではないかと心配しています。dd多くのWebサイトでこのように使用することをお勧めします。これは強力でありながら危険な方法です。なぜなら、質問なしに実行するように指示しているためです。このため、「Data Destroyer」と呼ばれます。

@marcelmは、このニックネームは不公平だとコメントしています。彼は、デバイスファイルにrootとして直接書き込むことがリスクの原因であることは正しいです。したがって、対応するデバイスファイルに書き込むことで、ドライブを簡単に上書きし、貴重なデータを破壊できることに注意してください/dev/sdx。(より安全なツールはこの回答の最後にリストされています。)

パーティションテーブル、ファイルシステム、および/またはファイルコンテンツを回復する

  • ドライブをできる限り少なくし、何よりも何も書き込まないでください。データを上書きすることで状況を悪化させる可能性があるためです。

  • データが貴重な場合は、元の(部分的に上書きされた)ドライブではなく、複製されたコピー作業する必要があります。このリンクを参照し、「パーティションテーブル、ファイルシステムの高度な修復、および/またはファイルの回復」までスクロールします。

    ペンドライブのパーティションテーブルとファイルシステムを修復する

  • GUIDパーティションテーブルGPTがある場合、ドライブの最後に/dev/sdaパーティションテーブルのバックアップがあり、ツールを使用してこのバックアップテーブルからメインパーティションテーブルを復元できる場合がありますgdisk。詳細については、マニュアルman gdiskを参照してください。

  • Testdiskを使用して、パーティションテーブルとファイルシステムを復元することができます。

    http://cgsecurity.org

    CGSecurity Webサイトの指示と、@ ElderGeekが提供するリンクを読んでください。インストール中に電源が切れるとパーティションが消えます

  • また、@ CSMが提供するリンクに従って、gpart / gpartedを使用してパーティションテーブルとファイルシステムを復元することもできます。

    HOWTO:失われたパーティションを削除または破損したパーティションテーブルに復元する

  • PhotoRec:パーティションテーブルとファイルシステムの回復に失敗した場合でも、一部のファイルデータを回復できます。ヘッドエンドのファイル(1〜1.5 GB)は上書きされて失われますが、ドライブのその部分の後ろのファイルはまだそこにあります。http://cgsecurity.orgの PhotoRec は、ファイルシステムなしでデータを「ドライブサーフェスから」回復できるツールです。一般的なファイルタイプの先頭にある典型的なデータは、識別に使用されます。

    次のリンクは、PhotoRecに関する詳細を提供します。

    https://www.cgsecurity.org/wiki/PhotoRec

    ファイルを別のドライブのパーティションに保存する必要があります。

    ディレクトリ構造を回復することは不可能であり、通常、ファイル名(および権限と所有権ではない)を回復することはできません。写真、他の多くの一般的なファイルタイプ)。しかし、これは大きなことですが、大量の未ソートのファイルを調べて、本当に重要なファイルを特定し、意味のあるファイル名に名前を変更する必要があります。

UbuntuでUSBブートドライブを作成するためのより安全なツール

将来的には、正しいターゲットデバイスを識別して選択し、最終チェックポイントを持つツールを使用してください。これにより、isoファイルから正しいターゲットデバイスにクローンを作成することを再確認できます。

  • Ubuntuの場合:Ubuntu Startup Disk Creator(Ubuntu 16.04 LTS以降のバージョン)、
  • Linuxの場合:

    • ディスクエイリアスgnome-disks
    • mkusb
  • Windowsの場合:Win32DiskImager

また、最終チェックポイントを提供する抽出ツールを使用することもできます。たとえば、

  • Windowsの場合:Rufus
  • Ubuntu、Windows、MacOSの場合:Unetbootin

1
私はcgsecurityのTestdiskを保証できます。これは、過去に試した他の代替手段よりもずっとうまく機能します。しかし、注意してください、小さなファッカーはデフォルトでドライブ自体のパーティションを回復しようとします!! xx
ハンシェンリック

1
+1。を保証することもできtestdiskます。また、/ sda / sdb / whateverへの書き込みを防ぐためのラッパースクリプトddもお勧めします。
WinEunuuchs2Unix

19

ddコマンドによって、/ dev / sdaのパーティションテーブルと、image.isoのサイズに関するすべてのデータを上書きしました。

そのため、少なくとも/ dev / sdaの終わりに向かってパーティションを復元するために、パーティションテーブルを(正確なサイズで)復元することが最善です。


1
正確なサイズを取得する方法を知りたい場合は、この回答の 2番目の段落を参照してください。
wizzwizz4

16

バックアップから復元する以外には、完全に回復する方法はありません。DDは、デバイスのパーティションテーブルと一部のデータを上書きしました。


19
そのとき、災害復旧バックアップをすべて捨てるべきだと思います。
stumblebee

23
@Baaing Cow、もちろんそれは答えであり、もちろんデータを回復する方法はありません。それは、データを上書きするときの意味です:なくなっています。
psusi

22
@ ChaiT.Rexこれは、少なくとも過去10年以内に作られたPCで見つかる可能性のある機器では、神話のようです。
デビッドシュワルツ

19
@ ChaiT.Rexこれは、ディスクの一部のみが消去される、完全に上書きされていないディスクにのみ適用されます。ただし、ディスク全体が消去または上書きされている場合は、データを回復できません。専門家かどうか。
トーマスウォード

8
@BaaingCowデータを復元する方法が必要であることをご存知のように、ご意見をお聞かせください。多くの人があなたのテクニックに喜んでお金を払うでしょう!
ティム

9

あなたが別々に分割されているドライブ場合//homeパーティション、および /homeパーティションが後だった/パーティション、あなたはあなたのデータを回復することができます。ほとんどのパーティションの場所をリストするMBRは上書きされています。ただし、gpartedは/homeパーティションを回復できます。

Ubuntu Forumsのこの投稿で は、その方法についていくつかのアイデアを提供しています。「gparted recover partition」を検索することでそれを見つけました。

失われたパーティション(拡張パーティション内にある可能性があります)を見つけたら、パーティションテーブルの唯一のパーティションとして追加する必要があります。

それが完了したら、Linuxを再インストールして、復元されたパーティションをとして保持するように指示する必要があり/homeます。


2

救助のためのテストディスク

USBの指示を繰り返しコピーして貼り付け、変更した後にデータを保存したTestdiskを個人的に保証できます。一度だけ変更するのを忘れて、そこにゴミ箱に入った。/dev/sdb/dev/sdd/dev/sdb

書き込みを行わないようにシステムをセットアップします /dev/sda

ラッパースクリプトを作成することを強くお勧めします:`dd`がSSDまたはHDDを破壊しないようにします。これにより、大容量記憶装置ddへの書き込み、/dev/sdaまたは場合によって/dev/sdbはその他の書き込みが行われないようにします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.