Ich muss Dateien von meinem 16 GB großen Lexar-Flash-Laufwerk wiederherstellen. Die Platine scheint in keiner Weise beschädigt zu sein, daher hoffe ich, dass eine Wiederherstellung möglich ist. Wenn ich den USB-Stick an einen Windows-Rechner anschließe, wird er als Laufwerk erkannt, aber ich werde aufgefordert, eine Diskette einzulegen. Nachdem ich ein paar Tage lang versucht hatte, das Ding zum Laufen zu bringen, beschloss ich, es unter Ubuntu auszuprobieren.
Ausführen des lsusb
Befehls:
Bus 002 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 004: ID 8086:0186 Intel Corp. WiMAX Connection 2400m
Bus 001 Device 003: ID 0bda:5801 Realtek Semiconductor Corp.
Bus 001 Device 007: ID 058f:1234 Alcor Micro Corp. Flash Drive
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Der USB-Stick wird als Alcor Micro Corp. erkannt. Soweit, so gut. Wenn ich jedoch Folgendes ausführe sudo fdisk -l
:
Disk /dev/sda: 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 / 512 bytes
Disk identifier: 0xb43778ae
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 3074047 1536000 27 Hidden NTFS WinRE
/dev/sda2 3074048 921657343 459291648 7 HPFS/NTFS/exFAT
/dev/sda3 954587136 976773119 11092992 17 Hidden HPFS/NTFS
/dev/sda4 921659390 954587135 16463873 5 Extended
/dev/sda5 921659392 954587135 16463872 83 Linux
Partition table entries are not in disk order
Das Laufwerk wird nicht erkannt. Schließlich habe ich Folgendes ausgeführt tail -f
:
==> /var/log/syslog <==
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.398762] usb 1-1.2: new high-speed USB device number 9 using ehci-pci
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.644599] usb 1-1.2: New USB device found, idVendor=058f, idProduct=1234
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.644610] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.644616] usb 1-1.2: Product: Mass Storage Device
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.644621] usb 1-1.2: Manufacturer: Alcor Micro
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.645100] usb-storage 1-1.2:1.0: USB Mass Storage device detected
Mar 24 08:55:10 danny-Satellite-E305 kernel: [ 6791.645183] scsi13 : usb-storage 1-1.2:1.0
Mar 24 08:55:11 danny-Satellite-E305 kernel: [ 6792.642812] scsi 13:0:0:0: Direct-Access Generic USB Flash Disk 7.76 PQ: 0 ANSI: 4
Mar 24 08:55:11 danny-Satellite-E305 kernel: [ 6792.643071] sd 13:0:0:0: Attached scsi generic sg2 type 0
Mar 24 08:55:11 danny-Satellite-E305 kernel: [ 6792.647022] sd 13:0:0:0: [sdb] Attached SCSI removable disk
Irgendwelche Ideen zur Wiederherstellung der Daten? Vielen Dank im Voraus!
Antwort1
Erstellen Sie mit ein Image des fehlerhaften Geräts ddrescue
. Sie benötigen ausreichend Speicherplatz, um das gesamte Laufwerk zu speichern, unabhängig von der Datenmenge, die Sie darauf gespeichert haben (oder hatten). In diesem Fall benötigen Sie offenbar 16 GB, um einen Klon von /dev/sdb zu speichern.
ddrescue ist das Programm, das die Arbeit erledigt. Wenn es nicht installiert ist, müssen wir es mit installieren sudo apt-get install gddrescue
(kein Tippfehler, das g ist die Abkürzung für GNU).
Öffnen Sie ein Terminal mit CtrlAltTund wechseln Sie in das Verzeichnis, in dem Sie die Bilddatei speichern möchten, und geben Sie den Befehl einsudo ddrescue -d /dev/sdb sdb.img sdb.logfile
-d leitet den direkten Zugriff auf das Laufwerk (unter Ignorierung des Caching). /dev/sdb ist das Gerät, das wir für die Eingabe verwenden. sdb.img ist die Datei, die wir für die Ausgabe verwenden. sdb.logfile verfolgt, wo wir uns befinden und was unsere Ergebnisse sind.
Wenn der Vorgang aus irgendeinem Grund vor Abschluss abgebrochen wird, können wir mithilfe der Protokolldatei dort weitermachen, wo wir aufgehört haben.
Die Bildgebung beginnt und Sie werden etwa Folgendes sehen:
Rescued gibt die Menge der erfolgreich gelesenen Daten an, errsize die Größe der nicht lesbaren Daten. Im weiteren Verlauf des Prozesses hoffen wir, dass erstere zunimmt und letztere sich Null nähert. Soweit ich mich erinnere, verwendet ddrescue einen Prozess namens Data Carving, bei dem fehlgeschlagene Blöcke halbiert und erneut versucht werden.
ddrescue ist ein sehr leistungsfähiges Werkzeug und Sie können viel darüber lernen in derHandbuch. Achten Sie besonders auf Kapitel 3!!Die Wahl der falschen Datei oder des falschen Geräts für die Ausgabe wird Ihnen definitiv den Tag verderben.
Nachdem wir das resultierende Image haben, können wir Tests und Wiederherstellungsverfahren darauf ausführen, ohne das fehlerhafte oder ausgefallene Gerät weiter zu belasten.
Schließlich wird ddrescue „Fertig“ auf dem Terminalbildschirm ausgeben. Wenn die Fehlergröße hoch ist und Sie das Gefühl haben, dass Sie versuchen möchten, noch etwas mehr wiederherzustellen, können Sie den Befehl erneut ausführen und Schalter anwenden, um fehlgeschlagene Blöcke erneut zu versuchen und sogar rückwärts zu lesen (wahrscheinlich nicht hilfreich auf einem Solid-State-Gerät) durch: sudo ddrescue -d --try-again --retrim --reverse /dev/sdb sdb.img sdb.logfile
oder jede andere Kombination von Schaltern, die Ihrer Meinung nach im oben genannten Handbuch hilfreich sein könnte. Wenn Sie mit dem Versuch fertig sind, alle Daten wiederherzustellen, ist es Zeit zu sehen, was wir haben.
Geben Sie den Befehl fdisk -l sdb.img
oder den Namen ein, den Sie Ihrem Image gegeben haben. Mit etwas Glück erhalten Sie eine Ausgabe ähnlich dieser, die anzeigt, dass die Partitionstabelle intakt ist.
Disk sdb.img: 4013 MB, 4013948928 bytes
1 heads, 24 sectors/track, 326656 cylinders, total 7839744 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000174fe
Device Boot Start End Blocks Id System
sdb.img1 * 2048 7839743 3918848 b W95 FAT32
Beachten Sie die „Start“-Nummer. Dies bedeutet, dass das Dateisystem im Sektor 2048 beginnt.
Mit diesen Informationen und einigen grundlegenden mathematischen Fähigkeiten oder einem Taschenrechner können wir den Offset ermitteln, an dem wir unsere Prozesse ausprobieren müssen. 2048 Sektoren x 512 Bytes pro = 1048576
Da wir dieses Image aufgrund eines Fehlers erstellt haben, werden wir zunächst versuchen, das Dateisystem zu reparieren
Geben Sie den Befehl ein sudo losetup --offset 1048576 /dev/loop2 sdb.img
, um das Image auf einem Loop-Gerät einzurichten.
Geben Sie dann den Befehl einsudo fsck /dev/loop2
Nachdem wir das System soweit wie möglich repariert haben, erstellen wir einen Mount-Punkt mit sudo mkdir /mnt/loop
und mounten das zuvor eingerichtete Loop-Gerät mitsudo mount /dev/loop2 /mnt/loop
Jetzt haben wir hoffentlich einige Daten, die wir auf ein anderes Laufwerk kopieren können. Schauen wir mal:
ls /mnt/loop
autorun.inf casper-rw ldlinux.sys pool smart-fail.txt
boot dists md5sum.txt preseed syslinux
casper install pics README.diskdefines wubi.exe
Es sieht so aus, als hätte ich welche. Hoffentlich hast du auch welche! Nachdem ich meine Dateien kopiert habe, deinstalliere ich das Loop-Gerät mitsudo umount /dev/loop2
Wenn dieser Ansatz nicht erfolgreich war, kann ich auch Testdisk mit dem Befehl `sudo testdisk sdb.img (oder wie auch immer Sie Ihre Image-Datei genannt haben) ausprobieren. Drücken Sie die Eingabetaste, um das Image auszuwählen, und wählen Sie dann den Partitionstyp. Wenn ein Typ erkannt wird, erhalten Sie einen Hinweis, wie Sie fortfahren sollen. Beachten Sie, dass dies bei Flash-Laufwerken normalerweise Intel ist.
Sie können „Analysieren“ wählen, um nach verlorenen Partitionen zu suchen, oder direkt zu „Erweitert“ gehen, um in den Dateisystem-Tools eine bereits bekannte oder wiederhergestellte Partition auszuwählen. Nach Auswahl der Partition wird Ihnen eine Dateiliste mit Anweisungen zum Auswählen von Dateien zum Kopieren usw. angezeigt. Dieser Teil ist ziemlich selbsterklärend und wird wahrscheinlich an anderer Stelle behandelt, daher höre ich hier auf mit dem Versprechen, dass Sie mir bei Unklarheiten einen Kommentar hinterlassen können und ich mich bei Ihnen melden werde.