Daten von der Raspberry Pi SD-Karte retten

Heute hatte einer meiner Datensammler RasPi nicht mehr gebootet, neben dem Dateisystem Fehler „no valid journal superblock found“ waren beim Versuch zu starten weitere Dateisystemfehler zu lesen. Leider hatte ich vergessen via Win32Disk Imager eine Sicherung zu erstellen und auch wenig Lust die ganzen Konfiguration neu von Hand zu tippen.

Da mein Pi noch eine Konsole beim Starten anzeigte (die Firmware wird ja auch von der SD Karte gelesen) war ich mir sicher das die SD-Karte nicht komplett defekt war sondern nur das Dateisystem einen Schuss hatte oder die Karte langsam am sterben war. Die Lösung lag also nahe, Konfigurationsdateien von der Karte holen, den Pi mit neuer SD Karte neu installieren und Konfigurationen wieder einspielen. Wer zufällig ein Linux System oder eine zweite SD-Karte und einen USB SD-Kartenleser hat kann versuchen das Dateisystem zu reparieren (am Ende des Beitrags).

Leider hatte ich an diesem Pi aus Kostengründen wieder auf eine günstige SD Karte gesetzte anstelle eine SanDisk 32GB zu benutzen mit welcher ich gute Erfahrungen gemacht habe.

Daten von der SD-Karte retten

Die Lösung an die Daten zu kommen ist recht einfach, das Tool Ext2Read lässt mich die Daten unter Windows lesen und kopieren. Nach dem Download und Entpacken der Zip-Datei auf eurem Windows Rechner muss Ext2Read als Administrator ausgeführt werden. Klickt hier Rechts auf die Datei und Wählt „Ausführen als Administrator“ bzw. „Run as administrator“, eure SD Karte sollte bereits im Kartenleser eures Rechners stecken.

ext2read als admin ausführen

Bei mir wird die Karte und das darauf enthaltene EXT Dateisystem direkt erkannt.

ext2explore dateien wiederherstellen

Da die Dateien, die ich benötige, im Home das Pi gelegen haben navigiere ich auf /home/pi und klicke mit der rechten Maustaste auf den Ordner und wähle Save

ext2explore dateien wiederherstellen 2

Ich wähle als Speicherort noch einen Ordner auf meinem Desktop aus und freue mich die Konfigurationsarbeit nicht noch mal erledigen zu müssen.

Daten wieder Einspielen

Nachdem ich die übliche Setup-Prozedur, wie in meinen Einsteiger Tutorials beschrieben, durchgeführt habe kann ich nach Installation der Software die Konfigurationsdateien wieder auf meinen Pi übertragen. Es gibt zwei Möglichkeiten das zu erledigen.

  • Entweder ihr passt die Dateien über eine SSH Sitzung mit Putty von Hand an
  • Ihr kopiert die Dateien mit WinSCP wieder auf den Raspberry Pi

In beiden Fällen muss darauf geachtet werden das die Dateien wieder die passenden Rechte und Besitzer haben. Anpassen könnt ihr die Rechte mit chmod und den Besitzer mit chown

Dateisystem des Raspberry Pi reparieren

Wer eine zweite SD-Karte oder ein Linux System hat kann als Alternative zu der obigen Anleitung versuchen das Dateisystem zu reparieren. Nachdem ich mir bereits alle wichtigen Dateien von der SD-Karte kopiert habe wage ich einen Reparaturversuch.

  • Steckt euren SD-Kartenleser an euren Raspberry Pi mit frischem Raspbian oder an ein anderes Linux System

Ich benutze natürlich meinen Pi mit einem frischen Raspbian auf einer anderen SD-Karte. Der Befehl lsusb zeigt mir das nein Kartenleser wird anstandslos erkannt wurde

sd kartenleser am raspberry pi

Nun prüfe ich ob die Karte korrekt erkannt wurde und lasse mir mit „sudo fdisk -l“ alle Partitionen anzeigen, es werden 4 Stück erkannt, zwei auf der neuen SD Karte und zwei auf der alten 4GB SD-Karte am USB Kartenleser.

raspberry pi fdisk

Es gibt jeweils die Boot Partition mit dem Dateisystem FAT32 und eine auf dem sich unser Raspbian befindet mit Linux Dateisystem. Bei mir wurden den beiden Partitionen die Geräte /dev/sdb1 und /dev/sdb2 zugewiesen.

Jetzt kann ich erst mal die Linux Partition mit fsck reparieren.

Danach prüfe ich noch die FAT32 Boot Partition und entferne das „Dirty Bit“ durch bestätigen mit 1 und erlaube die Änderung von Dateien mit y

raspberry pi fdisk fat32

Dann noch ein Backup via Win32 Disk Imager am Windows Rechner erstellen, Die Sicherung auf eine neue SD-Karte schreiben und oh wunder mein Pi bootet wieder :)