ddrescue 2GB USB auf reiserfs Partition

1173
panny

Ich habe meinen 2-GB-USB-Stick in fast zwei Tagen auf eine leere 100-GB-Reiserfs-Partition mit diesen beiden Befehlen gerettet:

ddrescue -f -n / dev / sda / dev / sdb8 Protokolldatei

ddrescue -d -f -r3 / dev / sda / dev / sdb8 Protokolldatei

da ich nicht wusste, was als nächstes zu tun ist, habe ich versucht, / dev / sdb8 zu montieren, um zu sehen, was sich darin befindet. Aber mounten: Sie müssen den Dateisystemtyp angeben. Vorher konnte ich die leere reiserfs-Partition mounten, bevor ddrescue darauf schrieb. Gibt es eine Möglichkeit, die geretteten Daten jetzt zu lesen?

Vielen Dank.

1

2 Antworten auf die Frage

2
Gilles

Die meisten USB-Sticks verwenden das PC-Partitionierungsformat und verfügen über eine einzige Partition. Das heißt, der erste Sektor (512 Byte) der Festplatte enthält eine Partitionstabelle (und optional einen Bootloader) und der Rest der Festplatte enthält die Partition.

Sie hätten nur die Partition mit retten können

ddrescue -f -n /dev/sda1 /dev/sdb8 logfile ddrescue -d -f -r3 /dev/sda1 /dev/sdb8 logfile 

Nun, da Sie die gesamte Festplatte haben, können Sie an die Partition gelangen.

losetup -o 512 /dev/loop0 /dev/sdb8 mount -r /dev/loop0 /mnt 

Wenn /dev/loop0bereits verwendet, müssen Sie möglicherweise eine andere Nummer auswählen. Der Befehl losetup -fgibt die Nummer eines Geräts mit freier Schleife zurück .

Das Bearbeiten von Partitionen auf einem Live-System ist jedoch fehleranfällig. Ich empfehle daher, die Daten vom USB-Stick in eine gewöhnliche Datei zu verschieben. Kopieren Sie entweder die gesamte Festplatte und verwenden Sie sie losetupauf dem Festplatten-Image (16M × 130 ist größer als die Größe des USB-Sticks):

dd bs=16M count=130 </dev/sdb8 >/var/tmp/usb-stick.disk 

Oder kopieren Sie nur die Partition und hängen Sie das Partitions-Image direkt ein:

tail -c +513 </dev/sdb8 | dd bs=16M count=130 >/var/tmp/usb-stick.partition mount -o loop,ro /var/tmp/usb-stick.partition /mnt 

Und als Referenz für eine spätere Verwendung können Sie auch eine Ausgabedatei anstelle einer Ausgabepartition übergeben ddrescue.

Hallo! -R / dev / loop0 / mnt kann nicht gemountet werden: Sie müssen den Dateisystemtyp angeben, sodass ich mount -r -t-usbfs / dev / loop0 / mnt einen Versuch gegeben habe 002 003 004 und eine Textdatei "Geräte"? panny vor 14 Jahren 0
@panny: `usbfs` ist ein Pseudo-Dateisystem (wie` proc` und `sysfs`); es ignoriert das Gerät. Was Sie haben, ist wahrscheinlich ein `vfat`-Dateisystem, aber wenn` mount` das Dateisystem nicht automatisch ausfindig macht, ist an anderer Stelle wahrscheinlich etwas falsch. Wie genau haben Sie das Loop-Gerät erstellt? Was bedeutet `Datei - Gilles vor 14 Jahren 0
Datei - panny vor 14 Jahren 0
#parted / dev / sdb8 unit B print Warnung: GNU Parted hat Übereinstimmung der Version der libreiserfs-Schnittstelle festgestellt. Gefunden 1-1, erforderlich 0. Die Unterstützung für ReiserFS wird deaktiviert. Fehler: / dev / sdb8: nicht erkanntes Festplattenetikett panny vor 14 Jahren 0
Ich habe das Loop-Dateisystem wie folgt erstellt: losetup -o 512 / dev / loop0 / dev / sdb8 panny vor 14 Jahren 0
@ panny: Die erste Erklärung, die mir einfällt, ist, dass der Anfang der Festplatte beschädigt ist und die Dateisystemstrukturen beschädigt sind. Zeigt das ddrescue-Protokoll Fehler im ersten Kilobyte oder so an? In diesem Fall müssen Sie sich anderen Reparaturtechniken zuwenden, z. B. nach bekannten Mustern suchen, um Dateien wiederherzustellen. War das ein FAT-Dateisystem? Wenn ja, probieren Sie `dosfsck '(auf einer ** Kopie ** (in eine reguläre Datei) von dem, was Sie jetzt in` / dev / sdb8` haben). Gilles vor 14 Jahren 0
meinst du den anfang von / dev / sdb? Das klingt unmöglich, da ich alle Partitionen (mit Ausnahme von / dev / sdb8) jetzt mounten und lesen und schreiben kann. Ich kann keine Fehler in der Protokolldatei erkennen: panny vor 14 Jahren 0
# current_pos aktueller Status 0x7CFF0200 + # pos size status 0x00000000 0x7D000000 + panny vor 14 Jahren 0
dosfsck / dev / sdb8 dosfsck 3.0.10, 12. Sep 2010, FAT32, LFN Die logische Sektorgröße (65535 Byte) ist kein Vielfaches der physischen Sektorgröße. zurückgegeben: 1 panny vor 14 Jahren 0
@ panny: Ich meinte, dass ich den Verdacht hatte, dass der Anfang des USB-Sticks beschädigt ist (aber es könnte eine andere Erklärung geben). Was Sie jetzt am Anfang von `/ dev / sdb8 '(dh was Sie auf dem USB-Stick hatten) hat, sieht nicht aus wie ein Dateisystem oder ein Disk-Image mit einer PC-Partition. Versuchen Sie, die Ausgabe von `head -c 1024 hinzuzufügen Gilles vor 14 Jahren 0
1
RobotHumans

Sie haben eine Platte auf eine Partition kopiert. Daher besteht ein Unterschied,
wenn Sie die Partition für sich selbst mounten möchten, um normalerweise zu mounten. Sie sollten / dev / sda1 als Eingabedatei verwenden

Sie müssen die Partition aus der Festplattendatei herausschneiden oder Offsets verwenden, um das Tutorial anzubringen:
http://www.andremiller.net/content/mounting-hard-disk-image-including-partitions-using-linux

Sie sollten auch in der Lage sein, den Inhalt mit Autopsie / Sleuthkit, das über apt-get oder als rpm von CERT.org erhältlich ist, problemlos zu sehen

Normalerweise kopiere ich eine Festplatte oder Partition in eine Datei ... es ist einfach einfacher, auf diese Weise zu arbeiten. Wenn ich dann eine Platte in eine Datei kopiert habe, schnitzen Sie die Partitionen in einzelne Dateien oder mounten Sie sie wie in dem zuvor genannten Tutorial. Zuletzt habe ich Partitionsdateien, die ich mounten kann, und cp -pR auf neue Partitionen.