web-dev-qa-db-ja.com

偶然dd / dev / sdaした

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

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

35
Baaing Cow

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

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

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

ほとんどの場合、/bootを上書きしました。カーネルを再インストールし(aptitudeを使用)、GRUB2を再インストール(grub-installを使用)する必要があります(最初と2番目の段階の両方が破壊されました)。 GRUB2は/etcのファイルで構成されているため、手動で何かを再作成する必要はありません。

65
HTNW

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

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

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

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

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

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

将来、正しいターゲットデバイスを識別して選択し、最終チェックポイントを持つツールを使用してください。そうすれば、clone正しいターゲットデバイスへのisoファイル、たとえば

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

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

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

  • Windowsの場合: Rufus
  • Ubuntu、Windows、MacOS: netbootin
21
sudodus

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

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

19
muclux

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

16
stumblebee

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

buntu Forumsのこの投稿 その方法に関するアイデアを提供します。 「gparted recover partition」を検索することでそれを見つけました。

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

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

9
CSM

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

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

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

ラッパースクリプトを作成することを強くお勧めします: `dd`がSSDやHDDを破壊するのを防ぎます 。これにより、dd/dev/sdaまたは/dev/sdbまたはその他の大容量記憶装置に書き込まないことが保証されます。

2