
Es scheint, dass ddrescue versucht, alle Blöcke auf einer Festplatte oder Partition wiederherzustellen, auch solche, die keine Dateien enthalten. Wäre es nicht möglich, herauszufinden, welche Blöcke tatsächlich Dateien enthalten, indem es sich das Dateisystem ansieht, z. B. die Masterdateitabelle auf NTFS?
Bearbeiten: Es scheint, dass es in Kombination mit Partclone möglich sein könnte:
http://partclone.org/features/
In Rettungssituationen würde der Rettungsmodus von Partclone versuchen, fehlerhafte Blöcke zu überspringen und alle guten Blöcke für die Partitionen zu sichern. Das Programm ddrescue ist eine weitere bessere Lösung, um fehlerhafte Festplatten zu retten, während ddrescue mit der Hilfe von partclone, indem es alle verwendeten Blöcke als Domänendatei auflistet, beim Sichern einer Partition intelligenter und schneller werden könnte.
Siehe auch: http://sourceforge.net/p/partclone/mailman/partclone-user/thread/[email geschützt]/
Antwort1
Kurze Antwort: weil das nicht sein Zweck ist. Ddrescue macht eine Sache (1:1-Kopieren einer defekten Festplatte) und macht das gut.
Antwort2
Ich glaube nicht, dass das möglich ist, da ddrescue, wie dd selbst, für den Betrieb auf jedem Blockgerät gedacht ist, auch auf solchen ohne oder mit einem beschädigten Dateisystem. Das Betrachten des Dateisystems, falls es existiert, würde die Sache nur verkomplizieren.
Antwort3
Alter Thread, könnte aber für andere hilfreich sein ...
Wenn die Eingabe ein NTFS-formatiertes Volume ist, können Sie ddru_ntfsbitmap von ddrutility verwenden, um eine Map-Datei für ddrescue zu generieren, indem Sie die $Bitmap-Systemdatei verwenden, die genau eine Karte der verwendeten/ungenutzten Cluster auf einer NTFS-Partition ist. Natürlich muss die $Bitmap-Datei intakt sein und sich in einem vollständig lesbaren Bereich befinden, damit sie ordnungsgemäß funktioniert (normalerweise befindet sie sich am Anfang der Partition). Wenn dies der Fall ist, geht es schnell voran (in meiner ersten und bisher einzigen Erfahrung dauerte es etwa 2 Minuten, um die Map-Datei aus einer 1-TB-Partition zu generieren). Dann führen Sie ddrescue mit diesem grundlegenden Befehl aus:
ddrescue [options] [input path] [output path] [logfile] -m [mapfile]
In neueren Versionen von ddrescue wurde der Begriff „Logdatei“, also die Datei, in der die geretteten/nicht getesteten/fehlerhaften Bereiche des Eingabevolumes während der Wiederherstellung gespeichert werden, durch „Mapdatei“ ersetzt, was dies ziemlich verwirrend macht. Wenn Sie also beispielsweise eine Festplatte namens /dev/sdc in ein Image auf /media/sdd1 namens Recovery wiederherstellen möchten, indem Sie eine von ddru_ntfsbitmap generierte Mapdatei namens Recovery_bitmap.log verwenden, sollte der Befehl wie folgt lauten:
ddrescue [options] /dev/sdc /dev/sdd1/Recovery /dev/sdd1/Recovery.log -m /dev/sdd1/Recovery_bitmap.log
Antwort4
Der Hauptgrund liegt wahrscheinlich darin, dass ddrescue
der Code dadurch erheblich komplexer würde, da Informationen zu verschiedenen Dateisystemen integriert und deren interne Strukturen analysiert werden müssten.
Aber selbst wenn man den zusätzlichen Entwicklungsaufwand außer Acht lässt, ist es im Allgemeinen schwierig herauszufinden, welche Blöcke Daten enthalten. ddrescue
wird normalerweise in Situationen verwendet, in denen die Daten bereits beschädigt und möglicherweise inkonsistent sind. Der Versuch, verwendete Blöcke zu finden, ist in dieser Situation riskant – was, wenn die Liste der freien Blöcke selbst beschädigt (aber immer noch lesbar) ist? Oder vielleicht kann die aktuelle Version einer Datei nicht mehr wiederhergestellt werden, aber eine alte Version der Datei ist immer noch in freien Blöcken vorhanden (weil das Dateisystem sie nicht an Ort und Stelle überschrieben hat).
In diesem Fall ist die einzige sichere Option, alles mitzunehmen und die Details später zu klären.