Versehentlich hat dd / dev / sda

35

Ich habe mit ein ISO-Image auf meine Festplatte geschrieben sudo dd if=image.iso of=/dev/sda. Ich meinte /dev/sdc, und jetzt läuft sudo fdisk -lnur eine Partition auf / dev / sda zurück, während es sein soll 6. Ist es möglich, meine Daten wiederherzustellen?

Ich habe meinen Computer noch nicht heruntergefahren (neu gestartet).

Baaing Kuh
quelle
24
ddhat wieder sein hässliches 'Data Destroyer'-Gesicht gezeigt :-( Es hat das Kopfende des Laufwerks überschrieben (entsprechend der Größe der ISO-Datei). Die Daten, die sich dort befanden, sind verloren gegangen. Haben Sie ein relativ aktuelles Backup der Dateien, die Sie sich nicht leisten können, zu verlieren? Andernfalls müssen Sie sich auf harte Arbeit vorbereiten, um die Partitionstabelle und die Dateisysteme zu reparieren, am besten auf einer geklonten Kopie mit Testdisk . Wenn dies fehlschlägt, müssen Sie noch härter arbeiten, um die Dateidaten wiederherzustellen, die sich im Hintergrund befinden. Der Teil des Laufwerks, der überschrieben wird. Sie können PhotoRec für diesen Zweck verwenden. Siehe diesen Link, cgsecurity.org
sudodus
6
Ist das Laufwerk gpt partitioniert, hat es den Vorteil einer Backup-Partitionstabelle am Ende des Laufwerks. Nur der Anfang der Größe des ISO-Laufwerks wurde vollständig überschrieben und geht verloren. Abhängig von der Größe der Partitionen können Sie möglicherweise einige oder die meisten anderen Partitionen wiederherstellen.
Oldfred
10
@sudodus " ddhat wieder sein hässliches" Data Destroyer "-Gesicht gezeigt" - Abgesehen davon, dass es nichts damit zu tun hat dd, hat es damit zu tun, direkt auf ein Plattengerät als Root zuzugreifen. Jedes andere Werkzeug hätte den gleichen Effekt haben können. cat image.iso > /dev/sdahätte genau den gleichen Effekt gehabt. Oder pv .... Oder zu einem gewissen Grad sogar vi /dev/sda. Tatsächlich erinnert dies mich an die Geschichte, in der Linus Torvalds versuchte, sich mit seinem Festplattengerät und nicht mit dem Modemgerät in ein Netzwerk einzuwählen und den Start seiner Festplatte mit dem Einwahl-Handshake überschrieb . Nichts damit zu tun dd.
Marcelm
4
Wie groß ist Ihre .isoDatei genau ? Hast du unterbrochen ddoder ist es zu Ende gelaufen?
Marcelm
4
@ marcelm, du hast recht. Aber im wirklichen Leben, sind die Menschen ddso (zu diesem Zweck), so dass ich denke , die ‚Data Destroyer‘ Warnung relevant ist, obwohl die völlig korrekte Warnung länger sein sollte: „Verwenden Sie keine Befehlszeilen wie sudo dd if=image.iso of=/dev/sdxzum Klon zu einer Masse Verwenden Sie ein Tool, mit dem Sie das richtige Zielgerät identifizieren und auswählen können und das einen endgültigen Prüfpunkt hat, damit Sie überprüfen können, ob Sie von der ISO-Datei auf das richtige Zielgerät klonen, z. B. StartupDiskCreator, Disks, mkusb , Win32DiskImager. "
Sudodus

Antworten:

65

Da Ihr Computer immer noch eingeschaltet ist, haben Sie gute Chancen, Dinge zu speichern.

Zunächst wird sysfsder Kernel in der Speicheransicht von Partitionstabellen verfügbar gemacht. Im Moment hat Ihr Kernel die Festplattentabelle nicht erneut gelesen und merkt sich Ihre Partitionierung. Innerhalb /sys/block/sda/sollte es ein Verzeichnis für jede Partition geben. Jedes dieser Unterverzeichnisse enthält eine Datei startund eine Datei size, die den Speicherort und die Größe der Partition in Sektoren darstellen. Führen Sie fdiskjede Partition aus und erstellen Sie sie (in der angegebenen Reihenfolge!) Mit den Informationen in ihrem sysfsVerzeichnis neu. Beachten Sie, dass Sie auch eine neue Partitionstabelle erstellen müssen. Stellen Sie sicher, dass Ihre neue Partitionstabelle mit der vorherigen übereinstimmt. Sie können dies einchecken /sys/block/sda. Wenn Sie sda1bis zu sehensda7Während Sie nur 6 Partitionen haben, hatten Sie wahrscheinlich MBR, und ansonsten war es wahrscheinlich GPT. Sie müssen auch Flags und Typen für diese Partitionen festlegen. Schauen /etc/fstabSie sich die Informationen zu den Partitionstypen an und versuchen Sie, sie zu ermitteln. Überprüfen Sie dann Wikipedia, um diese in Codes für Ihr Partitionsschema zu konvertieren.

Da Sie anscheinend in der Lage sind, Ihr Dateisystem zu verwenden, ist es wahrscheinlich, dass Sie ddnichts davon überschrieben haben, da sich die meisten wichtigen Teile eines Dateisystems vorne befinden. Überprüfen Sie, /etc/fstabum zu sehen , welche Partitionen in welchem Teil Ihres Systems entsprechen, und dann die Menge der Daten verwenden , ddkopiert , um eine Schätzung, wie viel nuked Sie. Wenn Sie nur einen Teil eines Dateisystems überschrieben haben, kann es fsck möglicherweise ein Problem beheben (aber Sie haben einen guten Datenblock verloren).

Höchstwahrscheinlich haben Sie überschrieben /boot. Sie müssen Ihren Kernel (mit aptitude) neu installieren und GRUB2 (mit grub-install) neu installieren (wodurch sowohl die erste als auch die zweite Stufe zerstört wurden). GRUB2 ist mit Dateien in konfiguriert /etc, sodass Sie nichts manuell neu erstellen müssen.

HTNW
quelle
15
"Überprüfen Sie /sys/block/sda/*/{start,end}Ihre Partitionen und erstellen Sie sie mit diesen Informationen neu": Können Sie dies etwas erweitern? Es ist keine triviale Operation und scheint der Hauptpunkt Ihrer ansonsten ausgezeichneten Antwort zu sein.
terdon
Ausgabe , die leichter zu entziffern ist, gibt diese an dem Shell - Eingabeaufforderung mit einer RETURN nach jedem ...............: sudo parted, unit s, print all,quit
Hannu
3
Kopieren Sie wertvolle Informationen auf ein anderes Laufwerk (z. B. einen USB-Stick), sobald Sie es entdecken. Sollte einer der Schritte zur Partitionswiederherstellung nicht perfekt verlaufen, möchten Sie eine Aufzeichnung dessen haben, was sich im Speicher des noch laufenden Computers befand. Auch kopieren Sie Ihre wertvollsten und / oder kleine Dateien (einschließlich Sachen wie .bashrcund anderen Punkt - Dateien von Ihrem Home - Verzeichnis, und alle /etc, außer Ihren realen Daten) auf einem anderen Datenträger , während der laufenden Computer noch funktionieren . tar.gz ist ein gutes Format zum Kopieren ganzer Verzeichnisse (weil es Berechtigungen und andere Dinge bewahrt).
Peter Cordes
Er muss wahrscheinlich auch neu formatieren, was / boot war, was gefährlich ist, wenn Ungewissheit darüber besteht, was der Kernel von Ihrem Partitionslayout hält ...
rackandboneman
1
@rackandboneman Der Kernel lehnt es ab, Partitionstabellen auf einer Festplatte mit bereitgestellten Partitionen erneut zu lesen. Eine solche /bootNeuformatierung ist absolut "sicher" (modulo wörtlich alles andere in dieser Situation ), da der Kernel über nichts unsicher ist.
HTNW
21

Tut mir leid, dass ich über dein Pech gelesen habe

Ich vermute, dass Sie keine aktuelle Sicherung haben, und es tut mir leid, über Ihr Unglück mit zu lesen

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

Wo Sie den Laufwerksbuchstaben verwendet haben x=, adamit Sie den Anfang Ihres Festplattenlaufwerks überschrieben, auf dem Sie viele wertvolle Daten gespeichert haben.

Sie sind nicht die erste Person, und ich fürchte, Sie sind nicht die letzte Person, die von diesem Problem betroffen ist. ddwird auf vielen Websites empfohlen, um so verwendet zu werden. Es ist eine mächtige, aber gefährliche Methode, denn sie macht das, was Sie sagen, ohne Fragen. Aus diesem Grund wird es oft als "Data Destroyer" bezeichnet.

@marcelm kommentiert, dass dieser Spitzname unfair ist. Er hat Recht, dass das Schreiben direkt in eine Gerätedatei als Root das Risiko verursacht . Beachten Sie daher, dass Sie ein Laufwerk leicht überschreiben und wertvolle Daten zerstören können, indem Sie in die entsprechende Gerätedatei schreiben /dev/sdx. (Sicherere Tools finden Sie am Ende dieser Antwort.)

Stellen Sie die Partitionstabelle, Dateisysteme und / oder den Dateiinhalt wieder her

  • Machen Sie so wenig wie möglich mit dem Laufwerk und schreiben Sie vor allem nichts darauf, da dies die Situation verschlimmern kann, indem Sie Daten überschreiben, die noch wiederhergestellt werden können.

  • Wenn Ihre Daten wertvoll sind, sollten Sie an einer geklonten Kopie arbeiten , nicht an dem ursprünglichen (teilweise überschriebenen) Laufwerk. Scrollen Sie unter diesem Link nach unten zu "Erweiterte Reparatur einer Partitionstabelle, eines Dateisystems und / oder Wiederherstellung von Dateien".

    Reparieren Sie die Partitionstabelle und das Dateisystem eines Pendrive

  • Wenn Sie eine GUID-Partitionstabelle (GPT) hatten, befindet sich am Ende des Laufwerks eine Sicherung der Partitionstabelle. Unter /dev/sdaUmständen können Sie die Hauptpartitionstabelle mithilfe des Tools aus dieser Sicherungstabelle wiederherstellen gdisk. man gdiskEinzelheiten finden Sie im Handbuch .

  • Möglicherweise können Sie die Partitionstabelle und die Dateisysteme mit Testdisk von wiederherstellen

    http://cgsecurity.org

    Lesen Sie die Anweisungen auf der CGSecurity-Website und den von @ElderGeek bereitgestellten Link. Partitionen sind nach einem Stromausfall während der Installation verschwunden

  • Sie können es auch schaffen, die Partitionstabelle und die Dateisysteme mit gpart / gparted gemäß dem von @CSM bereitgestellten Link wiederherzustellen.

    HOWTO: Stellen Sie verlorene Partitionen in einer gelöschten oder beschädigten Partitionstabelle wieder her

  • PhotoRec : Wenn Sie die Partitionstabelle und die Dateisysteme nicht wiederherstellen können, können Sie dennoch einige Dateidaten wiederherstellen. Die Dateien am Kopfende, möglicherweise 1-1,5 GB, werden überschrieben und gehen verloren, aber die Dateien hinter diesem Teil des Laufwerks sind noch vorhanden. PhotoRec von http://cgsecurity.org ist ein Tool, das Daten "von der Laufwerksoberfläche" ohne ein Dateisystem wiederherstellen kann. Typische Daten am Anfang gebräuchlicher Dateitypen werden zur Identifizierung verwendet.

    Der folgende Link enthält Details zu PhotoRec.

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

    Sie sollten die Dateien auf einer Partition in einem separaten Laufwerk speichern.

    Es ist nicht möglich, die Verzeichnisstruktur wiederherzustellen, und es ist normalerweise nicht möglich, die Dateinamen (und nicht die Berechtigungen und den Besitz) wiederherzustellen. Wenn Dateien fragmentiert sind, treten Probleme auf, aber viele Dateien können von PhotoRec wiederhergestellt werden (nicht nur Fotos, auch viele andere gängige Dateitypen). Aber, und das ist ein großes, aber es ist eine Menge harter Arbeit, durch die riesige Menge unsortierter Dateien zu waten, um zu identifizieren, was wirklich wichtige Dateien sind, die Sie in aussagekräftige Dateinamen umbenennen sollten.

Sicherere Tools zum Erstellen von USB-Boot-Laufwerken mit Ubuntu

Verwenden Sie in Zukunft ein Tool, mit dem Sie das richtige Zielgerät identifizieren und auswählen können und das über einen endgültigen Prüfpunkt verfügt, damit Sie überprüfen können, ob Sie beispielsweise von der ISO-Datei auf das richtige Zielgerät klonen

  • In Ubuntu: der Ubuntu Startup Disk Creator (in Ubuntu 16.04 LTS und neueren Versionen),
  • In Linux:

    • Festplatten- Alias gnome-disks,
    • mkusb ,
  • In Windows: Win32DiskImager .

Sie können auch Extraktionswerkzeuge verwenden, die beispielsweise einen endgültigen Prüfpunkt bereitstellen

Sudodus
quelle
1
Ich kann für die Testdisk von cgsecurity bürgen, die viel besser funktioniert als andere Alternativen, die ich in der Vergangenheit ausprobiert habe. Testdisk war der einzige, der es geschafft hat, irgendetwas Nützliches zu retten. aber sei vorsichtig, der kleine Scheißer versucht standardmäßig, deine Partition auf dem Laufwerk selbst wiederherzustellen !! xx
hanshenrik
1
+1. Ich kann auch dafür bürgen testdisk. Auch ein Wrapper-Skript , das verhindert, dass ddin Ihre / sda / sdb / geschrieben wird, ist ebenfalls eine gute Idee.
WinEunuuchs2Unix
19

Mit Ihrem ddBefehl haben Sie die Partitionstabelle von / dev / sda und alle Daten überschrieben, soweit die Größe von image.iso reicht.

Das Beste, was Sie erreichen können, ist, Ihre Partitionstabelle (mit exakten Größen) wiederherzustellen, um zumindest die Partitionen gegen Ende von / dev / sda wiederherzustellen.

muclux
quelle
1
Wenn Sie wissen möchten, wie Sie die genauen Größen ermitteln können, lesen Sie den zweiten Absatz dieser Antwort .
wizzwizz4
16

Nach dem Wiederherstellen von einem Backup ist keine vollständige Wiederherstellung möglich. DD hat die Partitionstabelle und einige Daten des Geräts überschrieben.

stolpern
quelle
19
Ich denke, ich sollte dann alle meine Disaster Recovery-Backups rauswerfen.
Stumblebee
23
@ Baaing Cow, natürlich ist es eine Antwort und natürlich gibt es keine Möglichkeit, Daten wiederherzustellen. Das bedeutet es, wenn Sie Daten überschreiben: Es ist weg.
Psusi
22
@ ChaiT.Rex Das scheint ein Mythos zu sein, zumindest für jedes Gerät, das Sie wahrscheinlich in einem PC finden, der in den letzten zehn Jahren hergestellt wurde.
David Schwartz
19
@ ChaiT.Rex Dies gilt nur für nicht vollständig überschriebene Festplatten, bei denen nur ein Teil der Festplatte gelöscht wird. Wenn die gesamte Festplatte gelöscht oder überschrieben wurde, erfolgt keine Datenwiederherstellung. Spezialisten oder nicht.
Thomas Ward
8
@BaaingCow Da Sie wissen, dass es eine Möglichkeit geben muss, die Daten wiederherzustellen, informieren Sie uns bitte. Viele Leute werden bereit sein, Geld für Ihre Technik zu bezahlen!
Tim
9

Wenn Ihr Laufwerk in separate Partitionen /und /homePartitionen unterteilt ist und die /homePartition hinter der /Partition lag, können Sie Ihre Daten wiederherstellen. Der MBR, in dem die meisten Partitionen aufgelistet sind, wurde überschrieben. Gparted kann jedoch Ihre /homePartition wiederherstellen .

Dieser Beitrag in den Ubuntu-Foren enthält einige Vorschläge zur Vorgehensweise. Ich fand das, indem ich nach "gparted recover partition" suchte.

Sobald Sie Ihre verlorene Partition gefunden haben (möglicherweise in einer erweiterten Partition), sollten Sie sie als einzige Partition in der Partitionstabelle hinzufügen.

Sobald Sie dies getan haben, müssen Sie Linux neu installieren, um die wiederhergestellte Partition beizubehalten /home.

CSM
quelle
2

Testdisk zur Rettung

Ich kann persönlich für Testdisk bürgen, die meine Daten gespeichert hat, nachdem ich wiederholt Anweisungen kopiert, eingefügt/dev/sdb und auf /dev/sddmeinen USB-Stick geändert habe. Nur einmal habe ich vergessen, es zu ändern und dort ging mein /dev/sdbin den Mülleimer.

Richten Sie Ihr System so ein, dass es niemals schreibt /dev/sda

Ich empfehle dringend, ein Wrapper-Skript zu erstellen: Verhindern Sie, dass `dd` SSD oder HDD zerstört . Dies stellt sicher, dass ddniemals auf /dev/sdaoder möglicherweise /dev/sdbeines Ihrer Massenspeichergeräte geschrieben wird.

WinEunuuchs2Unix
quelle