staging.inyokaproject.org

ddrescue : Kann man verschiedene block sizes mischen?

Status: Gelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

root76

Anmeldungsdatum:
17. Februar 2021

Beiträge: 35

Hallo Forum. Ich will eine 500 GB-Platte retten:

Festplatte /dev/sdb: 465,78 GiB, 500107862016 Bytes, 976773168 Sektoren
Festplattenmodell: Tech            
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes
Festplattenbezeichnungstyp: dos
Festplattenbezeichner: 0xa0ed705a

Gerät      Boot Anfang      Ende  Sektoren  Größe Kn Typ
/dev/sdb1  *      2048    206847    204800   100M  7 HPFS/NTFS/exFAT
/dev/sdb2       206848 976771071 976564224 465,7G  7 HPFS/NTFS/exFAT

Dazu habe ich ddrescue benutzt und bisher die üblichen 99,99% gerettet.

sudo ddrescue -f -d -b4096 -r-1 -i0 -s100GiB /dev/sdb 500GB.img ddrescue3000.log

Es ist übrigens eine Platte mit einem alten Win7-System, dass auch weiterhin genutzt werden soll (Rechner ohne Netzwerkzugang), es kommt also nicht nur auf die einzelnen Dateien an. Da einem die sterbende Platte meist erst auffällt wenn Systemdateien betroffen sind, kommt es eben auf die verbleibenden "0,01 %" an, in meinem Fall verbleiben noch 26 Blöcke zu 4096 Byte innerhalb der ersten 100 GB der Platte.

Die Platte ist natürlich ungemountet aber wenn ddrescue den ersten Teil abließt, mountet sich die Platte immer wieder selbst (durch das System)... Flasht man die gerettete .img Datei auf eine neue HDD, dann funktioniert das alte Win7 übrigens wieder, stürzt aber nach einem reboot ab. Es fehlen also noch einige wenige Blöcke

Naja ich komm mal zu meiner Frage: Ich habe jetzt mit block size 4096 gearbeitet. Wäre es schlauer gewesen statt dessen 512 zu nehmen? Und könnte man jetzt noch umstellen? Also quasi einfach mit

sudo ddrescue -f -d -b512 -r-1 -i0 -s100GiB /dev/sdb 500GB.img ddrescue3000.log

weiter machen? Was wäre dann? Nach dem Motto, die Lücken zu je 4096 Byte zumindest teilweise füllen, mit 512 Byte, also Achteln? Vielleicht würde ja so ein Achtel ausreichen um eine der noch relevanten Dateien dann doch völlständig gerettet zu haben...

Bitte nur kunstruktive, sachliche, nicht überhebliche Antworten.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

root76 schrieb:

[…]

Festplatte /dev/sdb: 465,78 GiB, 500107862016 Bytes, 976773168 Sektoren
Festplattenmodell: Tech            
Einheiten: Sektoren von 1 * 512 = 512 Bytes
Sektorgröße (logisch/physikalisch): 512 Bytes / 4096 Bytes
E/A-Größe (minimal/optimal): 4096 Bytes / 4096 Bytes

[…] Ich habe jetzt mit block size 4096 gearbeitet.

Also mit der Größe eines physischen Sektors. Das kann man in diesem Fall nicht besser machen. Generell kann man – korrektes Alignment vorausgesetzt – jede Blockgröße nehmen, solange Anfang und Ende der Partition durch diese ohne Rest teilbar sind.

root76

(Themenstarter)

Anmeldungsdatum:
17. Februar 2021

Beiträge: 35

kB schrieb:

Also mit der Größe eines physischen Sektors. Das kann man in diesem Fall nicht besser machen. Generell kann man – korrektes Alignment vorausgesetzt – jede Blockgröße nehmen, solange Anfang und Ende der Partition durch diese ohne Rest teilbar sind.

Danke erstmal. Nun, 500107862016÷976773168 = 512. Ich könnte also auch 512 nehmen, deiner Aussage nach? Ich kopiere 500GB.img und ddrescue3000.log gereade mal und werde es dann mit 512 versuchen. Gibt ja nix zu verlieren wenn man mit einer Kopie des Backups arbeitet...

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

root76 schrieb:

[…] 500107862016÷976773168 = 512

Ja, natürlich stimmt diese Rechnung mit der Grüße des Datenträgers, sie ist aber ohne Bedeutung. Ich sprach von den Grenzen der Partition.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7529

ddrescue speichert sein Log in Byte-Offset also Sektorgröße zwischen den Aufrufen sollte man ändern können.

Aber kleiner als physikalisch macht keinen Sinn. Du bekommst den ganzen 4K Sektor, oder nichts. Ist der Sektor defekt bekommst du auch keine 512 Byte Teilstücke mehr heraus. (Das von kb genannte Alignment Problem ist da die Ausnahme aber betrifft dich hier nicht.)

Die Platte ist natürlich ungemountet aber wenn ddrescue den ersten Teil abließt, mountet sich die Platte immer wieder selbst (durch das System)...

Das ist saunervig und sollte man abstellen. Eine LiveCD ohne Schnickschnack verwenden wäre ein guter Anfang (SystemRescueCD) aber selbst solche LiveCDs, garantieren leider nicht daß es keine ungewollten Schreibzugriffe gibt. Da reicht schon wenn udev läuft und z.B. versucht ein RAID automatisch zusammenzusetzen. Oder die LiveCD selber mountet einmal alles durch auf der Suche nach ihren Dateien.

Die ideale Datenrettungsumgebung muss man sich letztendlich selber bauen (z.B. ein Initramfs in dem dann ddrescue läuft und sonst wirklich gar nichts).

Was du sonst noch machen kannst, ist die fehlenden Sektoren auszunullen. Wenn du ddrescue in ein neues Datei-Image laufen lässt, hast du das automatisch so, aber mit einer Festplatte als Ziel - eine Festplatte auf der womöglich vorher andere Daten lagen, da hast du in den fehlenden Sektoren dann irgendwelche Zufallsdaten drin und das kann auch wieder mehr Probleme machen, als Nullen dort zu schreiben.

root76

(Themenstarter)

Anmeldungsdatum:
17. Februar 2021

Beiträge: 35

Danke für die Ideen. Ja, es scheint so als ob es mit 512 Byte keinen Unterschied macht. Ich habe ddrescue den ganzen Tag laufen lassen und es wurde kein weiterer (Teil)-Sektor gerettet.

Zum Thema mit dem Ausnullen: Die Platte war zuvor leer. Trotzdem eine Idee was du sagst. Ich hab auch schon mit dem fill-mode (https://www.gnu.org/software/ddrescue/manual/ddrescue_manual.html#Fill-mode) gearbeitet und die noch betroffenen Dateien ermittelt. Ich werde auch mal testen diese (Systemdateien) einfach mit denen von einer anderen (gleichen, 64 bit etc) Win7-Installation zu ersetzen. Kann ja bei vorhandenem backup nix schief gehen...

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7529

Ich meine mich dunkel erinnern zu können, daß Windows da mal ein offizielles Tool hatte, das defekte Systemdateien erkennen und neu runterladen kann.

Aber wie man Windows am besten repariert musst du letztlich woanders fragen.

Antworten |