Peinlich: Festplatte /dev/sda auf dem PC mit dd überschrieben

  • Kein Backup, kein Mitleid -- brauche trotzdem Hilfe!

    Mir ist letztens etwas Saublödes passiert:

    Ich habe auf meinem Linux-PC wie gefühlt schon 1543 Male vorher folgendes Kommando abgesetzt:

    Code
    sudo dd if=<neues RPi-Image> of=/dev/sda bs=1M

    Anstelle von sonst /dev/sdb oder /dev/sdc habe ich wohl in einem Anfall geistiger Umnachtung /dev/sda eingegeben und mir damit die ersten max. 8GB meiner PC-Festplatte (1TB Samsung EVO860) überschrieben. Dadurch wurden folgende Teile meiner Installation überschrieben:

    * MBR (Master Boot Record) mit der Partitionstabelle EDIT: bzw GPT (danke Rasp-Berlin )

    * UEFI-Bootpartiton /dev/sda1

    * Win7-Partition /dev/sda2 mit ca. 100GB Größe (wohl nur teilweise überschreiben, allerdings kein wirklicher Verlust, da mittlerweile unproduktiv)

    Nach wie vor unbeschädigt dürften meine produktiven Linux-Partitionen sein:

    * Linux Mint / (Rootverzeichnis) /dev/sda3

    * /dev/sda4 Merker im/für MBR, dass noch max. 4 logische Partitionen folgen

    * Partition für die Linux Homeverzeichnisse /dev/sda5

    * große NTFS-Datenpartition /dev/sda6

    Ein Zugriff auf die grünen Partitonen lief nach Absetzen des dd-Befehls noch einwandfrei, da das laufende Linux-Betriebssystem die Partitionen offenbar beim Booten davor noch erfolgreich gemountet hatte. Dabei sah ich, dass die Daten physikalisch noch da sind. Die Win7-Partition war weg.
    Nach einem Reboot des PCs habe ich darauf keinen Zugriff mehr, ich sehe auf der Festplatte nur die beiden drübergebügelten RPi-Partitionen /rootfs und /bootDass mein PC überhaupt noch läuft, liegt daran, dass er eine zweite M.2-Festplatte (Samsung 970EVOplus NVMe M.2) hat, von der gebootet wird:

    Ausgabe von df -h

    Ausgabe von df -h auf meinem PC

    /dev/nvme01p? sind die Partitonen der Samsung 970EVOplus NVMe M.2

    /dev/sda? sind die überbügelten Partitonen auf der Samsung 860EVO

    Ich werde nachher, wenn die Geschäfte geöffnet haben, in die Stadt fahren und mir eine genügend große 2TB-HDD kaufen, auf der ich eine dd-Sicherung der jetzigen Festplatte /dev/sda vornehmen werde, um wenigstens die Rohdaten zu sichern, bevor ich weitere gefährliche Experimente machen werde...

    Ich habe auch eine etwa drei Monate alte Sicherung meiner Daten, so dass im Zweifelsfalle nicht alles weg ist. Auf der Sicherung befinden sich aber keine Rohdaten des ersten Sektoren der Festplatte mit dem MBR etc. für die Wiederherstellung einer gültigen Partitionstabelle.

    Meine Fragen:

    * Kann ich die Partitionierung der Platte wieder irgendwie herstellen?

    * Kann man die Sektoren der Festplatte so durchsuchen, dass man den Anfang einer neuen Partition erkennt?

    * Gibt es andere Wege oder Ideen?


    EDIT: hilfreiche(?) Links, die ich ausprobieren werde:

    * Suchmaschinenergebnis: https://www.giga.de/downloads/ease…kann-s-klappen/

    * https://www.giga.de/software/siche…letzte-rettung/

    * Low-Level-Software: https://www.giga.de/downloads/testdisk-photorec/

    * Downloadseite von Testdisk (CGSecurity): https://www.cgsecurity.org/

    EDIT2: Es geht unter Linux (debian-basierend) ja noch einfacher:

    sudo apt-get install testdisk

    Dann Aufruf mit testdisk

  • Peinlich: Festplatte /dev/sda auf dem PC mit dd überschrieben? Schau mal ob du hier fündig wirst!

  • 3x ja.

    Das ist ja schon mal vielversprechend :lol:

  • Hier mal die Ausgabe von einem Dual Boot System meiner Frau. Deiner Beschreibung nach könnten die Sektorgrenzen von Partition 1 + 2 passen.

    Die Partition 3 findest Du mit "rescue start end" des Partition-Editors parted. Jedes Filesystem hat eine Magic Number in den Metadaten, nach der parted rescue sucht. Wenn die Partition 3 gefunden und eingetragen ist, musst Du die erweiterte Partition anlegen: Ende Partition 3 + 1 Sektor, bis Plattenende (-1s).

    Dann suchst Du wieder mit "rescue start end" und trägst sie ein. Verwende als Einheit Sektoren (unit s).

    Der Partition Editor hat eine eingebaute Hilfefunktion.

    Wenn Du dann an der Partition 3 das Bootflag setzt, kannst Du wenigstens wieder Linux booten.

    Schrittweises Dual Boot ist ein anderes Kapitel, da müsste ich mich selbst erst einlesen. Aber wenn Du Datensicherungen hast, kannst Du P1 + 2 formatieren und wiederherstellen.

    Bei der Wiederherstellung der Partitionstabelle ändert sich an den Partitionen und Filesystemen inhaltlich überhaupt nichts. Alle Daten (auch die überschriebenen) bleiben erhalten. Geändert werden nur die Metadaten der Platte (Partitionstabelle) in den beiden ersten Sektoren der HD.

    Servus ! + viel Glück.

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM (August 1, 2020 at 11:40 AM).

  • schlizbäda

    Du musst wissen, daß dd die ersten n GB Deiner Harddisk überschrieben hat. Was dort stand und nicht redundant gesichert ist, das ist fort.

    Ich hatte eine 2 TB NTFS Platte mit einer Partition mit einem 8 GB Image irrtümlich geflasht - konnte sie nicht retten. Auf der Platte gespeicherte Images machen zusätzlich Probleme.

    Ich drücke Dir beide Daumen, kle

  • Ich werde jetzt in diesem Thread beschreiben, wie ich vorgehen werde. Vielleicht hilft es ja mal anderen...

    Zumindest wenn ich gewinnen sollte, aber das weiß ich ja noch nicht.

    1:1-Sicherung der vermurksten Festplatte auf einer gleich großen neuen Festplatte

    Sodala, jetzt wollte ich mir in der Stadt eigentlich eine 2,5Zoll 2TB HDD mit SATA-Schnittstelle (z.B. sowas [Anzeige]) kaufen: Das gibt's nicht (mehr)! Nur portable USB3.x-HDDs :baeh2: Ginge vielleicht auch, aber die kann ich nicht direkt in den PC einbauen. Es sollen schon so viele Parameter wie möglich gleich sein. Also habe ich mir eine cruci(fünf)al MX500 2,5Zoll SATA SSD mit 1TB [Anzeige] gekauft, in der Hoffnung, dass bei echten Festplatten 1TB = 1TB ist. Nicht wie bei den SD-Karten, wo die genaue Größe eher zufällig ist. Doch es schaut gut aus, beide Platten haben laut lsblk 931,5GiB:

    Einbau der neuen crucial-SSD und Sicherung der Daten

    Neue crucial-SSD im Laptop eingebaut.

    df -h  # Die crucial-Festplatte wird als Massenspeicher noch nicht erkannt, da noch nicht formatiert.

    Code
    Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
    udev            7,7G       0  7,7G    0% /dev
    tmpfs           1,6G    9,4M  1,6G    1% /run
    /dev/nvme0n1p3  220G     49G  160G   24% /
    tmpfs           7,7G       0  7,7G    0% /dev/shm
    tmpfs           5,0M    4,0K  5,0M    1% /run/lock
    tmpfs           7,7G       0  7,7G    0% /sys/fs/cgroup
    /dev/nvme0n1p1  286M    5,1M  281M    2% /boot/efi
    tmpfs           1,6G     32K  1,6G    1% /run/user/1000

    lsblk  # Sie ist aber als Linux-Gerätedatei /dev/sda vorhanden:

    Code
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 931,5G  0 disk 
    nvme0n1     259:0    0 232,9G  0 disk 
    ├─nvme0n1p1 259:1    0   286M  0 part /boot/efi
    ├─nvme0n1p2 259:2    0   8,2G  0 part [SWAP]
    └─nvme0n1p3 259:3    0 224,4G  0 part /

    Die vermurkste SSD (Samsung 860 EVO V-NAND SSD) mit einem USB3.x/SATA-Wandler angeschlossen.

    lsblk  # Die vermurkste Platte ist /dev/sdb

    Code
    NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
    sda           8:0    0 931,5G  0 disk 
    sdb           8:16   0 931,5G  0 disk 
    ├─sdb1        8:17   0   256M  0 part /media/peter/boot
    └─sdb2        8:18   0     3G  0 part /media/peter/rootfs
    nvme0n1     259:0    0 232,9G  0 disk 
    ├─nvme0n1p1 259:1    0   286M  0 part /boot/efi
    ├─nvme0n1p2 259:2    0   8,2G  0 part [SWAP]
    └─nvme0n1p3 259:3    0 224,4G  0 part /

    Und nun wird mit dd eine 1:1-Sicherung der Samsung-Platte auf der neuen crucial-Platte erstellt. Dabei vorher noch ein paar umount-Befehle abgesetzt:

    umount /dev/sda  # Die neue Platte sicherheitshalber unmounten. Ist jedoch bereits erfolgt.

    Code
    umount: /dev/sda: not mounted.

    umount /dev/sdb?  # Alle Partitionen auf /dev/sdb unmounten. Es kam keine Meldung, da wär's schon wieder so gewesen...

    sudo dd if=/dev/sdb of=/dev/sda bs=1M  # peinlichst mit Quelle und Ziel aufpassen!

    sync  # Das schadet nie!

    Der Sicherungsvorgang mit dd über USB3.0 nach SATA dauerte für 1TB ca. 40 Minuten.

  • @ in der Hoffnung, dass bei echten Festplatten 1TB = 1TB ist.

    Das ist schon sehr optimistisch.

    Die gesamte Byte-/Sektoranzahl der HD/SSD steht z.B. in der ersten Ausgabezeile von < fdisk - l >

    Servus !

    PS: Sorry, Du kannst kein Device [dev/sdb ] umounten, sondern immer nur ein Filesystem.[/dev/sdb1]

    RTFM = Read The Factory Manual, oder so

  • Wiederherstellen der Partitionen mit testdisk

    Dieses testdisk ist ja (entgegen der Ankündigungen in den obigen Links von giga.de) relativ intuitiv. Jedenfalls fand es schon mal meine Linux-Partitionen (grün)

    oder hier im Textformat

    * Die Linux-Swap-Partition besteht aus 11718656 Sektoren à 512 Bytes, d.h. ca. 6 GB

    * Die Linux-Root-Partition bestheht aus 67108864 Sektoren, d.h. genau 32 GB

    * Die Linux-home-Partition mit meinen Daten besteht aus 324478976 Sektoren, d.h. ca. 154 GB

    --> Das ist schon mal schlüssig und passt zu dem, was ich von gparted in Erinnerung habe :thumbup:

    * Zuletzt kommt eine NTFS-Partition mit meiner flac-Musik für's Auflegen. Mal schauen, ob die wiederherstellbar ist. Aber davon hätte ich eine recht aktuelle Sicherung. Mir gefallen da die beiden letzten Zeilen mit den unterschiedlichen Größen 1386369024 und 1386369017 nicht...

    Wie gesagt, dass die überschriebene Win7-Systempartition futsch ist, das tangiert mich äußerst peripher. Die kam vom alten PC und lief auf dem neuen PC eh nicht mehr.

    EDIT: Wiederherstellung der Partitionen:

    Wenn man eine Anzeige ähnlich zur obigen bekommt, wählt man die gewünschte Partition mit den Cursortasten aus und stößt deren Wiederherstellung mit Druck auf die ENTER-Taste an. Man erhält eine Anzeige ähnlich der folgenden:


    Mit [ Write ] versucht man nun sein Glück. Anschließend fordert testdisk zum Reboot auf. Die ursprünglich grün markierten Partitionen sind nun vorhanden.

    Bei mir war es jetzt so, dass im ersten Durchlauf "nur" die Linux-Partitionen aus dem ersten Screenshot rekonstruiert werden konnten. Ein zweiter testdisk-Lauf nach dem Reboot erkannte auch die in der Liste ganz unten stehende NTFS-Partition mit meinen gerippten CDs und konnte sie anscheinend ebenfalls fehlerfrei wiederherstellen.

  • Fazit -- oder was lernen wir daraus?

    1. ganz klar, es gilt wie immer: Kein Backup, kein Mitleid!

    2. Die Partitionierung der Festplatte auf einem Linux-PC ausgeklügelt vornehmen:

    a) bei neuen Rechnern mit UEFI sollte die erste Partition immer die UEFI-Bootpartition sein. Größe <=512MB (>=100MB empfohlen)

    b) Danach gleich eine großzügige Linux-SWAP-Partition erstellen. Am besten >8GB

    c) Dahinter die Betriebssystempartition (Linux-Rootpartition). Auch die ist ggf. durch Linux-Neuinstallation schnell wieder hergestellt. Wie es diesbezüglich bei Windows aussieht, kann ich jetzt nicht sagen.

    d) ganz hinten die Partition mit den persönlichen/wichtigen Daten: In Linux eine separate /home-Partition, in Windows ein Laufwerk D:

    ==> Bei einem dd-Kommando zum Flashen einer RPi-SD-Karte mit falscher Zielangabe überschreibt man sich "nur" die UEFI-Bootpartiton und

    die Linux-Swappartition. Die dahinter liegenden eigentlichen Nutzdaten werden somit durch ein RPi-Image <8GB nicht mehr beschädigt.

    Das werde ich jetzt dann noch testen:

    Eine Sicherung des 1. GB der Festplatte /dev/sda, nicht /dev/sda1, mit dd vornehmen. Dort sind der MBR, die UEFI-Bootpartition und der erste Teil der Linux-SWAP-Partiton enthalten. Das kann man dann bei versehentlichem Überschreiben wie's mir heute passiert ist, wieder mit wenig Aufwand rückgängig machen. EDIT: Das hat nicht gefunzt, nicht mal mit 8GB...

    Ich hatte hier ja richtig Glück im Unglück: Das relativ schadlose Abfangen des fehlerhaft geschriebenen RPi-Images übernahm bei mir die nicht mehr benötigte Windows-Partition. Ich war Gott sei Dank zu faul, sie zu löschen und meine Nutzdaten nach vorne zu schieben :lol:

    Der Tag ist gerettet!

    Zuletzt möchte ich mich bei Euch allen bedanken, die mich hier moralisch unterstützten und mir Tipps gaben! Super Community hier!

    Danke an:

    RTFM

    framp, der alte Backup-Guru

    @DeaD_EyE

    kle

  • Bei Festplatten, die per GPT formatiert wurden, befindet sich ganz am Ende der Platte immer eine Kopie der gültigen Partitionstabelle. Wurden die ersten x Byte überschrieben, kann man daraus normalerweise wenigstens die Partitionierung wieder herstellen

    Computer ..... grrrrrr

  • Interessant zu wissen!

    Das wird aber meine Win7-Partition auch nicht retten können, da deren Anfang wohl vom RPi-Image überschreiben wurde. Aber die habe ich eh nicht mehr verwendet.

    Da soll noch mal einer sagen, Windows sei nicht sicher. Ich habe es Windows zu verdanken, dass meine Daten komplett erhalten geblieben sind, siehe oben. ;)

  • Bei Festplatten, die per GPT formatiert wurden, befindet sich ganz am Ende der Platte immer eine Kopie der gültigen Partitionstabelle.

    Es ist ziemlich unwahrscheinlich, dass eine GPT Kopie am Plattenende abgelegt ist.

    Die HD war DOS/MBR partitioniert, sonst wäre keine "erweiterte Partition" vorhanden.

    Wie auch immer:
    Ich werde keine "Energie" in die Wiederherstellung der Windows7-Partition (/dev/sda2) stecken, da ich sie definitiv nicht mehr benötige. Die wenigen Windows-Daten habe ich in der letzten Partition (NTFS-partitioniert) mit meiner Musik abgelegt.

    Die "Sicherung" gegen ein derartiges Überschreiben wird künftig die Linux-Systempartition (Root-Partition) übernehmen. Das Linux-System ist im Zweifelsfalle "schnell" wieder installiert (15 Minuten auf meinem Laptop mit SSD). Wichtig ist (für mich), dass die Datenpartitionen genügend weit hinten beginnen.

  • Die "Sicherung" gegen ein derartiges Überschreiben wird künftig die Linux-Systempartition (Root-Partition) übernehmen

    Zusätzlich einfach per  sfdisk -d /dev/yxz  die Partitionstabelle wiederherstellbar sichern (oder dies automatisch beim Backup miterledigen lassen) und dann beruhigt zurücklehnen.

    Die sfdisk man-page enthält noch ein paar Tipps zur Sicherung/Wiederhestellung.

    Für gpt-Datenträger ist sgdisk einen Blick wert.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Edited once, last by llutz (August 3, 2020 at 11:44 AM).

  • Zusätzlich einfach per  sfdisk -d /dev/yxz  die Partitionstabelle wiederherstellbar sichern

    Cool, sowas habe ich schon lange gesucht!

    Wie immer unter Linux nur ein Befehl.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!