Wiederherstellen von Flash-Laufwerkdateien

Wiederherstellen von Flash-Laufwerkdateien

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 lsusbBefehls:

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:

Abonnieren

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.logfileoder 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.imgoder 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/loopund 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.

verwandte Informationen