Rufen Sie Daten von einer montierbaren Partition ab, die "cp" ablehnt, aber "dd" zulässt

327
Pece

Vor kurzem ist mein internes Laufwerk nach einem manuellen Neustart ausgefallen, und ich möchte die Daten abrufen, bevor sie geändert werden. Mein Computer ist Mitte 2012 ein Macbook Pro und das Laufwerk ist als HFS + formatiert. (Aus meiner Sicht ist das Problem hardwarebezogen und daher nicht spezifisch für die Apple-Welt, daher poste ich hier eher als bei apple.stackexchange, kann aber bei Bedarf migrieren.)

Das übliche ddKlonen ist keine Option: Es handelt sich um ein 500-GB-Laufwerk, und aus irgendeinem Grund beträgt die Kopierrate 20 KB / s (zumindest mit bs=512der ich gesehen habe, dass sie im Umgang mit Festplatten empfohlen wird). Das würde ungefähr dauern 6000 Stunden, um die Arbeit zu erledigen ...

Mounten der Partition und Verwenden cpist auch nicht: Wenn ich dies versuche, erhalte ich die Meldung

cp : Input/output error 

Es kann auch wichtig sein zu sagen, dass ich die Partition nicht auf traditionelle Weise mounten kann. Es wird nur beim Start im Wiederherstellungsmodus oder beim Ausführen einer Analyse mit TestDisk beim Starten von einem externen Laufwerk eingehängt.

Aus der Analyse mit TestDisk (die keinen Fehler enthüllen) denke ich, dass das Dateisystem in Ordnung ist und ich eher geneigt bin zu glauben, dass das Laufwerk fehlerhafte Blöcke hat (also physisch beschädigt ist, oder?). Als ich es versuchte fsck_hfs, funktionierte es sicher nicht, aber der Fehler schien nichts mit dem Dateisystem zu tun

could not get Block 2, not a MDB sector [...] volumeType is 0 

(Bei Bedarf kann ich es erneut ausführen, um das gesamte Protokoll einzufügen.)

Ich kann jedoch immer noch ddeinzelne Dateien verwenden (ich benötige nicht alle Daten), wenn die Partition eingehängt ist. Gibt es ein Skript / eine Software, die ddintern verwendet wird, um den Inhalt ganzer Verzeichnisse zu kopieren? Ich möchte wirklich nicht wirklich einen ddBefehl für Hunderte von Dateien schreiben ...

Oder hat jemand eine bessere Idee, etwas von diesen Daten zurückzubekommen?

0
Welches Betriebssystem verwenden Sie, um die Festplatte zu "dd"? Daniel B vor 8 Jahren 0
@DanielB OS X. Ich habe ohne Glück versucht, einen Ubuntu Live-USB-Schlüssel zu booten. Daher habe ich OS X auf einem externen Laufwerk installiert, um ein paar Tools zu erhalten (auch `dd` ist auf dem Wiederherstellungssystem tatsächlich verfügbar). Pece vor 8 Jahren 0
`dd` ist sehr langsam, wenn` / dev / diskX` verwendet wird. Verwenden Sie stattdessen große Blockgrößen (≥1 MiB) und `/ dev / rdiskX`. Stellen Sie außerdem (sehr!) Sicher, dass auf der zu kopierenden Festplatte / Partition kein Dateisystem eingehängt ist. Daniel B vor 8 Jahren 1
@DanielB Ja, ich habe das über die RAW-Version der Platte gelesen, daher verwende ich derzeit ein `dd` mit` rdisk` anstelle von `disk` mit einer Blockgröße von 20 MB und es sollte nicht länger als 10 oder 12 Stunden dauern. Für die möglicherweise gemounteten Partitionen klone ich tatsächlich eine eindeutige Partition, und "dd" verweigert Ihnen automatisch die Berechtigung, wenn diese gemountet ist. Pece vor 8 Jahren 0

1 Antwort auf die Frage

1
Xen2050

Unter Verwendung ddmit bs=512wirklich Geschwindigkeiten Krüppel, ich stelle mir vor, es ist wie der Versuch, eine Meile aber unter 1 Zoll Schritte auszuführen. Ein größerer Wert wie bs=10Moder größer sollte viel besser sein.

Dateien sind wahrscheinlich nicht alle zusammenhängend. Wenn Sie versuchen, nur die richtigen Teile des Laufwerks auszuschneiden, ddfunktioniert dies nicht für jede Datei, und (wahrscheinlich nicht ganz sicher, wie HFS funktioniert) würde Ihnen auch keine Dateinamen geben. Eine bessere Idee wäre, ein Programm auszuprobieren, das Dateien von Partitionen kopieren kann, die möglicherweise Probleme haben.

  • testdiskkann Dateien (einschließlich kürzlich gelöschter Dateien) für viele Dateisysteme anzeigen und von einer Partition kopieren. Das Schwesterprogramm photoreckann ein Rohlaufwerk (oder ein Laufwerksabbild) durchsuchen und auch Dateien kopieren, normalerweise jedoch ohne ihre ursprünglichen Namen.

  • Aber das Beste ist vielleicht gddrescue, um eine Kopie der lesbaren Teile des Laufwerks zu erstellen. Es sollte ein Experte für die Datenwiederherstellung mit fehlerhaften Laufwerken sein. Es kann Teile überspringen, die einen Lesevorgang nicht zulassen. Teile können Sie erneut für die "harten" Teile versuchen, die möglicherweise nicht gelesen werden können, aber lange dauern. Dann können Sie das Dateisystem ordnungsgemäß prüfen / reparieren und Daten schnitzen (photorec), ohne sich um weitere Laufwerksschäden oder einen plötzlichen Ausfall zu kümmern.

    • Siehe das Handbuch zu GNU ddrescue, und es gibt einige Anleitungen im Internet (aber ich kann eher das feine Handbuch zuerst lesen).
Danke für den Rat. Seit meiner Frage habe ich tatsächlich einen `dd`-Klon mit` bs = 20m` ausgeführt und (noch läuft), es sollte bis heute Abend fertig sein. Trotzdem glaube ich nicht, dass es gut sein wird, da ich ständig Eingabe- / Ausgabefehler auf dem Bildschirm sehe (also stelle ich mir vor, dass 'dd' viele Nullen in mein Bild schreibt ...). Ich habe testdisk ausprobiert, aber Sie können nicht nach HFS-Partitionen suchen und kopieren. Ich habe photorec ausprobiert, das ungefähr 3000 Stunden brauchte, um meine Dateien zu erhalten. Schließlich hörte ich von GNU ddrescue und es ist mein nächster Schritt, wenn `dd` fehlschlägt. Danke für die Ratschläge! Pece vor 8 Jahren 0