Wie kann man NUR Mapfiles von `ddrescue` zusammenführen? (nur Mapfile wurde falsch geschrieben)

455
MarkB

Mein System ist Manjaro (Arch) Linux. Ich habe GNU ddrescuev1.23-1 (vor kurzem installiert).

Bei der Wiederaufnahme habe ddrescueich die Kartendatei falsch eingetippt. Jetzt habe ich ein Bild und zwei Logfiles.

Am ersten Tag habe ich den Anfang der Platte gerettet. Tag 1 Befehl:

sudo ddrescue -vn /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile 

An Tag 2 habe ich gegen Ende meiner Festplatte einige Daten gerettet. (Ich wollte die Dinge beschleunigen, damit ich verwenden -Nund abgesenkt -czu 32KiB, und ich wollte den ungefähren Bereich meiner erholen sdc2ersten Partition. Meine sdcScheibe ein beschädigtes Dateisystem hat, so kann ich nicht ddrescue sdc2gesagt, aber ich kann mit seiner Lage und Größe annähern -i144000MiB -s50000MiB)

Tag 2 Befehl:

sudo ddrescue -vN -c 32KiB -i144000MiB -s50000MiB /dev/sdc /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfileq 

In beiden Befehlen habe ich DDRnKB1den Bildnamen richtig als eingegeben, aber in Befehl von Tag 2 habe ich versehentlich die Map-Datei falsch eingegeben .~kb1mapfileq

Ich habe versucht, mit dieser Methode zusammenzuführen:

ddrescue -m logfile2 image2 image1 logfile1 

Also mein Merge-Befehl:

sudo ddrescue -m ~/kb1mapfileq /run/media/ab/2Nes1T/DDRnKB1 /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile 

aber ddrescuezurückgegeben:

ddrescue: Infile and outfile are the same. 

Ich vermutete, dass ich eine Kopie meines Bildes machen und folgendes tun könnte:

sudo ddrescue -m ~/kb1mapfileq /run/media/ab/2Nes1T/DDRnKB1COPY /run/media/ab/2Nes1T/DDRnKB1 ~/kb1mapfile 

... aber meine Bilddateien sind fast 500 GB groß, und ich finde es ein bisschen unpraktisch, 500 GB für den obigen Befehl zu kopieren.

Gibt es eine Methode, um nur die Mapfiles (Logfiles) zusammenzuführen?

1
Hinweis: "Beschädigtes Dateisystem" ist in diesem Zusammenhang nicht sinnvoll. "beschädigte Partitionstabelle" funktioniert. Kamil Maciorowski vor 5 Jahren 0

1 Antwort auf die Frage

0
Kamil Maciorowski

Verwenden ddrescuelog --or-mapfile.

Ddrescuelog ist ein Werkzeug, das Ddrescue-Mapfiles bearbeitet

( Quelle )

-z file
--or-mapfile=file
Führen Sie eine logische ODER-Operation zwischen den fertigen Blöcken in der Datei und denen in der Mapdatei aus, und schreiben Sie die resultierende Mapdatei in die Standardausgabe. Mit anderen Worten, in der resultierenden Map-Datei wird ein Block als beendet angezeigt, wenn er in einer der beiden Map-Eingabedateien beendet wurde.

( Quelle )

Rufen Sie das auf:

# but see the warning below! ddrescuelog -z ~/kb1mapfileq ~/kb1mapfile > ~/kb1mapfile-merged 

Warnung: leiten Sie nicht zu ~/kb1mapfile(oder ~/kb1mapfileq) um, sonst verlieren Sie sie .

Das Ergebnis ist in ~/kb1mapfile-merged. Nachdem Sie bestätigt haben, dass es richtig ist ( ddrescueviewist das richtige Werkzeug), überschreiben Sie die alte Mapfile ( cp ~/kb1mapfile-merged ~/kb1mapfile).

Nachdem ich Ihrem Vorschlag gefolgt bin, habe ich mit ddrescueview die resultierende Fusion gesehen und es sieht richtig aus. Vielen, vielen Dank. Ich freue mich so sehr auf die Antwort und danke auch für Ihre "Warnung". MarkB vor 5 Jahren 0
@MarkB Gute Idee mit `ddrescueview`, Bravo! Ich habe es in meiner Antwort für zukünftige Benutzer mit ähnlichen Problemen bearbeitet. Kamil Maciorowski vor 5 Jahren 0