Wiederherstellen eines Disk-Images, das mit Fehlern geklont wurde

334
user2064000

Ich habe ein Festplatten-Image mit einer Kapazität von 500 GB, das folgendermaßen erstellt wurde:

# dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c > backup.img.gz 

Es gab bestimmte Fehler (ungefähr 15-20), die Folgendes an einem bestimmten Punkt oberhalb von ungefähr 420 GB angaben. Die Fehler wurden von wenigen GBs Daten dazwischen durchsetzt (so lag der erste Fehler beispielsweise bei 420 GB, der nächste bei 430 GB, der nächste bei 436 GB usw.).

dd: error reading '/dev/sda': Input/output error 

Ist es sicher, dieses Image wiederherzustellen?

0
Warum denkst du, dass es sein würde? Sie erhalten eine Festplatte mit unbekannten Fehlern. DavidPostill vor 8 Jahren 0
Wenn Sie dies tun, stellen Sie sie auf anderen Medien wieder her und kopieren Sie die gewünschten Dateien manuell wieder. Überprüfen Sie auch den SMART-Status Ihrer Festplatte. Im Allgemeinen sollte DD auf einem fehlerhaften Datenträger keinen solchen Fehler finden. Frank Thomas vor 8 Jahren 0

1 Antwort auf die Frage

1
Kamil Maciorowski

Es hängt davon ab, was Sie mit "sicher" meinen.

Durch das Wiederherstellen des Images auf einem fehlerfreien Laufwerk wird das Laufwerk nicht beschädigt. Daher ist es in diesem Sinne sicher. Das Bild ist immer noch etwas beschädigt, und Sie erhalten möglicherweise ein beschädigtes Dateisystem und Dateien, daher ist es in diesem Sinne nicht sicher.

Ich sage "Sie können beschädigte Dateien erhalten", nicht "Sie werden", da die Möglichkeit besteht, dass alle diese Fehler in Blöcken als leer markiert wurden. Dies ist so, weil ddnichts über das Dateisystem und ein Konzept des freien Speicherplatzes weiß, es liest alle Daten. Wenn während der Image-Erstellung viel freier Speicherplatz vorhanden war, hatten Sie möglicherweise Glück und alle Ihre Dateien und wichtigen Daten befinden sich im Image. Die Fehler befanden sich nicht am Anfang der Platte, daher ist die Partitionstabelle in Ordnung (es sei denn, es war MBR und es war eine erweiterte Partition mit logischen Partitionen, und einige logische Partitionseinträge wurden nicht gelesen dd; dies ist möglich, da eine beliebige logische Partition vorhanden ist.) Kurz vor dem Start definiert, nicht am Anfang der Festplatte (wie primäre Partitionen und erweiterte Partitionen).

Auf der anderen Seite können Sie nicht so glücklich sein, dass Sie nicht nur wenige beschädigte Dateien, sondern auch ein beschädigtes Dateisystem vorfinden, das sich als (zB) Mangel an ganzen Ordnern manifestieren kann, die dort mit vielen Dateien vorhanden sein sollten. Vergleichen Sie diese Frage . Sie befinden sich in einer ähnlichen Situation, wenn Sie auf Dateien und Ordner zugreifen. Lesen Sie dort meine Antwort, insbesondere die zweite Bearbeitung, in der ich erkläre, was passieren kann.

Einer der Kommentare schlägt vor

Stellen Sie sie auf anderen Medien wieder her und kopieren Sie die gewünschten Dateien manuell wieder.

Um die Dateien zu kopieren, müssen Sie sie nicht auf andere Medien wiederherstellen. Sie können Ihr Bild direkt einbinden. Verwenden Sie kpartxoder, mount -o offset=…um auf Partitionen in Ihrem Bild zuzugreifen. Versuchen Sie beispielsweise diese Sequenz (einige Schritte erfordern sudo):

  • gzip -dc < backup.img.gz > backup.img(in einem Moment fsckund möglicherweise ändern einige andere Werkzeuge das Bild, daher ist es gut, wenn das Originalarchiv für den Fall unverändert bleibt, ich hoffe, Sie haben genug freien Platz dafür);
  • kpartx -av backup.img(Lesen Sie die Ausgabe, Ihre Partitionen aus dem Bild sind jetzt verfügbar als /dev/mapper/loop?p?);
  • Verwendung fsckauf /dev/mapper/loop?p?Ihrer Wahl;
  • Berg /dev/mapper/loop?p?Ihrer Wahl;
  • kopiere die Dateien
  • umount …;
  • kpartx -dv backup.img reinigen.

Falls Dateien oder Ordner fehlen, können Sie Wiederherstellungssoftware wie verwenden photorec. Gute Software dieser Art sollte für ein Bild funktionieren, ohne dass es auf einem physischen Gerät wiederhergestellt werden muss.