AchWo.de

Sie sind hier: Startseite > Computer > Defekte SD-Karten auslesen

Defekte SD-Karten auslesen

Wenn es defekte Sektoren auf einer SD-Karte gibt, sollte man diese schnellstmöglich ersetzen. Auch bei USB-Sticks kann ein aufgebrauchter Reservebereich schnell dazu führen, dass nach dem nächsten Schreibvorgang nichts mehr geht.

Um möglichst viele Daten retten zu können, sollte man vor Reparaturversuchen ein möglichst komplettes Abbild des Mediums erstellen. Man greift dazu nur lesend auf das Laufwerk zu, Schreibzugriffe sind zu vermeiden!

Zweckmäßigerweise erstellt man das Abbild mit ddrescue: https://wiki.ubuntuusers.de/gddrescue/

sudo ddrescue /dev/sdx /home/BENUTZER/Datensicherung.img /home/BENUTZER/ddrescue_logfile.log

Damit hat man nun ein Abbild des Speichermediums in einer Datei.
Das funktioniert übrigens auch mit CDs und DVDs.
Kurz zur Erklärung: /dev/sdx ist das Laufwerk - das muss ggf. geändert werden. Wenn man die Bezeichnung des Laufwerks nicht kennt, kann man dazu fdisk -l verwenden oder die Laufwerksverwaltung gnome-disks
Anschließend folgt die Datei, in die das Abbild geschrieben wird und die Log-Datei. Die Log-Datei sollte man unbedingt anlegen, da bei einem weiteren Lauf von ddrescue diese herangezogen wird, um fehlerfreie Bereiche nicht nochmals lesen zu müssen.

Im nächsten Schritt sollte man von der Abbilddatei eine Kopie erstellen, an der man auch Reparaturversuche unternehmen kann:

sudo cp /home/BENUTZER/Datensicherung.img /home/BENUTZER/Datensicherung_Kopie.img

Nun folgt ein Versuch, das Laufwerk als Loop-Device einzubinden:

sudo mkdir /mnt/test
sudo mount -o loop /home/BENUTZER/Datensicherung_Kopie.img /mnt/test

Sollte das ohne Fehler von statten gehen, kann man sich die Dateien nun aus dem Verzeichnis /mnt/test/ holen.

Bei Problemen hilft es, systematisch vorzugehen.

Zunächst mal einen Blick in die Abbilddatei werfen, ob da was erkannt wird. Dazu nutzt man den Partitionseditor parted:

sudo parted /home/BENUTZER/Datensicherung_Kopie.img

man stellt die Anzeige auf "Bytes" mit dem Parameter "B":

(parted) unit B

und lässt sich anzeigen, ob da eine Partitionstabelle erkannt wurde:

(parted) print

Die Ausgabe sollte dann etwa so aussehen:

Modell:  (file)
Festplatte  /home/BENUTZER/Datensicherung_Kopie.img:  31914983424B
Sektorgröße (logisch/physisch): 512B/512B
Partitionstabelle: msdos
Disk-Flags:

Nummer  Anfang    Ende          Größe         Typ      Dateisystem  Flags
 1      4194304B  31914983423B  31910789120B  primary  fat32        LBA

Beenden lässt sich parted mit "q"

(parted) q

Wie man hier am Beispiel sieht, beginnt die erste Partition bei 4194304 Bytes.

Damit kann man erneut versuchen das Abbld zu "mounten":

sudo mount -o loop,ro,offset=4194304 /home/BENUTZER/Datensicherung_Kopie.img /mnt/test

Führt auch das nicht zum Erfolg, hilft evtl. ein Dateisystemcheck.
Damit dieser auch die Partition finden kann, muss man das loop-device passend vorbereiten:

sudo losetup -o 4194304 /dev/loop2 /home/BENUTZER/Datensicherung_Kopie.img

Danach kann man den Check laufen lassen:

sudo fsck.msdos /dev/loop2

und erneut versuchen zu mounten:

sudo mount -o loop,ro,offset=4194304 /home/BENUTZER/Datensicherung_Kopie.img /mnt/test

nach getaner Arbeit das Laufwerk wieder entfernen:

sudo umount /dev/loop2

sudo losetup -d /dev/loop2

Für die hartnäckigen Fälle gibt es noch Programme wie testdisk und photorec. Damit lassen sich auch von irreparabelen Dateisystemen evtl. noch einzelne Dateien retten.

 

nach oben