Wie bearbeite ich die ddrescue-Protokolldatei, um an einer bestimmten Stelle fortzufahren?

Wie bearbeite ich die ddrescue-Protokolldatei, um an einer bestimmten Stelle fortzufahren?

Ich versuche, ein Image einer 500 GB großen Festplatte zu erstellen GNU ddrescueund dabei die Protokolldatei zu verwenden. Ich kam auf 420 GB und habe es dann mit gestoppt ctrl+c. Ich habe den Befehl nach einiger Zeit erneut ausgeführt und es begann wieder von vorne, obwohl eine Protokolldatei vorhanden war.

Die alte Logdatei wurde überschrieben von ddrescue.

Wie gesagt, meine Image-Datei ist bisher 420 GB groß, von einer 500 GB großen Festplatte. Wie bearbeite ich die Protokolldatei oder wie kann ich ddrescueab etwa 420 GB fortfahren? Ich habe TAGE gebraucht, ddrescueum auf 420 GB zu kommen. Ich möchte diesen Vorgang nicht noch einmal von vorne beginnen.

Hier ist die Protokolldatei:

# Mapfile. Created by GNU ddrescue version 1.21
# Command line: ddrescue /dev/sdd /media/myname/New Volume4/backup.dmg /media/myname/New Volume4/logfile.log
# Start time:   2016-05-17 13:08:39
# Current time: 2016-05-17 13:08:48
# Copying non-tried blocks... Pass 1 (forwards)
# current_pos  current_status
0x0C770000     ?
#      pos        size  status
0x00000000  0x0C770000  +
0x0C770000  0x7464496000  ?

sudo fdisk -lFür die Festplatte, von der ich ein Image erstellen möchte, gilt Folgendes :

Disk /dev/sdd: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 33553920 bytes
Disk identifier: 0xeea5da13

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1              63   976768064   488384001    7  HPFS/NTFS/exFAT

Antwort1

Die 0x0C770000Hex-Zahl in Ihrer Protokolldatei zeigt an, dass etwa 200 MiB gelesen wurden. Dies bestätigt Ihre Aussage, dass ddrescuevon vorne begonnen wurde.

Um Änderungen vorzunehmen, ermitteln Sie zunächst die ungefähre Größe Ihres Bildes im Hex-Format:

printf "%x\n" $(($(wc -c < "/media/myname/New Volume4/backup.dmg")-4096))

(Ich habe 4096vorsichtshalber etwas von der tatsächlichen Größe abgezogen. Es ist wahrscheinlich unnötig, schadet aber nicht.)

Ersetzen Sie dann jedes 0C770000in Ihrem Protokoll durch die resultierende Nummer (drei Ersetzungen erforderlich). Beachten Sie, dass es 0xein Präfix gibt, das Sie nicht ändern sollten. Um dies zu tun, verwenden Sie sed:

sed -i 's/0C770000/the_resulted_number_here/' "/media/myname/New Volume4/logfile.log"

Hinweis: Ich weiß nicht, warum der zweite Versuch von vorne begann, anstatt fortzufahren. Die Protokolldatei ist jetzt (fast) dieselbe wie nach Ihrem unterbrochenen Durchgang (wenn keine Lesefehler aufgetreten sind), daher kann dieses Verhalten aus demselben (noch unbekannten) Grund erneut auftreten.

Neu starten ddrescue:

ddrescue /dev/sdd "/media/myname/New Volume4/backup.dmg" "/media/myname/New Volume4/logfile.log"

verwandte Informationen