SD Karte reparieren

  • Servus,

    Ich bin gerade aus dem Urlaub zurück gekommen und kann meinen Pi nicht mehr erreichen. Beim Reboot kam dann ein Fehler von der SD Karte und ein Kernel Panic. Also hab ich direkt mal die SD Karte ins Laptop gesteckt. Ließ sich mounten und alles war wunderbar. Habe dann über dd ein Abbild von der SD Karte geschrieben, wobei es zu einem Lesefehler kam, allerdings erst fast am Ende :-/ Beim manuellen Kopieren des kompletten Inhalts der SD Karte ist der Fehler dann bei /var/lib/mysql/ibdata1 aufgetreten. Ansonsten ließ sich alles einwandfrei kopieren.


    Jetzt bin ich am überlegen, was ich mache:

    1. Die Karte platt machen und alles neu aufsetzen

    2. Eine neue Karte und alles neu aufsetzen

    3. Die Karte reparieren



    Am liebsten wäre es mir natürlich, die Karte zu reparieren, weil am günstigsten und potentiell am wenigsten Arbeit, wenn es denn funktioniert. Also wollte ich mal schauen, wie weit ich mit fsck komme - leider gar nicht weit.




    fsck sagt mir, dass es noch Fehler im Dateisystem gibt. Das hilft mir nicht sonderlich, da ich ja versuche, genau diese zu beheben.


    Jemand 'ne Idee, wie ich vorgehen könnte?


    Danke im Voraus!

  • Ja, quasi schon. Ist allerdings schon 3 Monate alt... Wie gesagt, komme ich ja bis auf die ibdata1 auch so noch an alle Daten ran, also wäre zurückspielen ja eine Option. Aber wenn die Karte dann in ein paar Tagen wieder Probleme macht, bringt mich das auch nicht wirklich weiter.


    badblocks ist jetzt auch mal durchgelaufen und findet 60 Fehler



  • Versuche die Karte zu sichern.

    Dann ein sudo fsck -y /dev/xxxxx


    Nach meiner Erfahrung ist das der Anfang vom Ende. Die Karte stirbt. Wenn Du sie dennoch versuchen willst wiederzubeleben suche Dir einen Canon Camera und führe ein Low level Format durch. Oder auch "HDD LLF Low Level Format Tool".

    Wenn es ein wenig länger funktionieren soll schwenke doch mindestens auf einen USB-Stick.


    Bei der Datensicherung empfiehlt sich bei derart unsicheren Medien eine tägliche Sicherung. (Vielleicht mit Raspi Backup)


    Gruß

    Frank

  • Wenn Du im systemnahen Bereich einfach nur herumprobierst, darfst Du Dich nicht wundern, wenn Du damit die Selbstzerstörung dea (Ext4-)Filesystems initialisierst.


    badblocks darfst Du nie alleine verwenden! Siehe < man badblocks >: Importand note: it is strongly recommended that users not run badblocks directly


    Das Programm zum Überprüfen und reparieren eines ungemounteten EXT4-Filesystems heisst "e2fsck" bzw. "fsck.ext4"(ein Link auf e2fsck).


    Bevor ein Admin die man pages nicht gelesen und verstanden hat, soll er keine systemnahen Programme ausführen. Das betrifft auch Optionen, die der Admin nicht versteht.


    Und wenn Du fsck zum Aufruf von e2fsck (=fsck.ext4) verwendest, musst Du auch die Syntax beachten, wie die e2fsck Optionen übergeben werden. Ein < fsck -c /dev/sdb2 > gibt es laut < man fsck > nicht.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • 1. Die Karte platt machen und alles neu aufsetzen

    Dann sind alle Daten weg. Der Aufwand ist u.U. enorm. Die Karte ist nicht mehr zuverlässig.

    2. Eine neue Karte und alles neu aufsetzen

    Wie 1. Allerdings hast du dann eine neue Karte.

    <Satire> allerdings ist ne neue Karte mit 5€ nicht ganz günstig. </Satire>

    3. Die Karte reparieren

    Selbst wenn die Karte wieder laufen sollte, sehr wahrscheinlich nicht ohne Datenverlust.

    Ja, quasi schon. Ist allerdings schon 3 Monate alt... Wie gesagt, komme ich ja bis auf die ibdata1 auch so noch an alle Daten ran, also wäre zurückspielen ja eine Option.

    Aber wenn die Karte dann in ein paar Tagen wieder Probleme macht, bringt mich das auch nicht wirklich weiter.

    1. Wenn du ein Backup hast, was 3 Monate alt ist, hast du wenigstens noch einen Teil der Daten.

    2. Man kann das Backup auch auf eine neue Karte zurückspielen. Anschließend versuchen, von der alten Karte ein paar Daten zu retten.

    (Oder liegt es doch an den 5€ für eine neue Karte)


    3. In Zukunft öfter mal ein Backup machen. Geht auch vollautomatisch. (Funktioniert dann auch im Urlaub)


    Ansonsten solltest du den Beitrag #5 von RTFM beachten.



    Manchmal glaube ich, ich bin hier bei "versteckte Kamera" <SCNR>

  • Am einfachsten ware es ein zeitnahes Backup zu restoren ;) Da Du das nicht hast wuerde ich


    1) mit ddrescue die SD Karte clonen

    2) den letzten 3 Monate alten Backup restoren

    3) die wichtigsten Daten aus dem ddrestorer clone selektiv rausholen - sofern sie noch verfuegbar sind

    4) zukuenftig regelmaessig automatisch Backups erstellen ;)

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Okay, dann werd ich mir wohl mal ne neue SD Karte besorgen. Wie gesagt, bis auf die mysql Geschichte sind alle Daten noch lesbar. Die Datenbank war hauptsächlich für FreshRSS in Gebrauch. Wenn ich jetzt ein paar Tage News verpasse, ist das kein Weltuntergang, wäre aber schön gewesen, wenn ich die Feeds hätte retten können.


    Backups von wichtigen Dingen mache ich natürlich täglich, aber der ganze Systemkrempel nicht so oft. Sollte ich mir wohl mal angewöhnen. Immerhin hat die SD Karte schon >5 Jahre im Dauerbetrieb gedient.


    RTFM: Wie du richtig erkannt hast, habe ich fsck.ext4 über fsck aufgerufen. Der Aufruf 'sudo fsck.ext4 -c /dev/sdb2' bringt folglich den gleichen Output.


    Werde jetzt zusätzlich zu meinem dd-backup nochmal ein ddrescue-backup machen, falls das was anderes ist.

  • Läuft wieder alles. Mit ddrescue konnte ich alles bis auf 16 Blocks retten. War dann bisschen Arbeit, weil die neue SD Karte n paar MB kleiner ist, als die alte (mounten, partition verkleinern, truncate, schreiben, extend). Das Image auf eine neue SD Karte geschrieben lief wieder einwandfrei bis auf die mysql Datenbanken. Aber sogar die konnte ich retten indem ich die Tabellen im mysql recovery mode exportiert und dann neu erstellt habe.


    Werde mich am Wochenende mal dran machen, mein automatisches Backup ein wenig zu erweitern, sodass alles gesichert wird.


    Danke für eure Hilfe!



    Kann man die alte SD Karte noch verwenden, indem zB die defekten Blocks ausgeblendet werden? Ich erinnere mich, sowas mal bei einer Festplatte gemacht zu haben (Low Level Format Tool vom Hersteller). Gibt's da für SD Karten auch die Möglichkeit? Ist 'ne SanDisk

  • [...]


    Kann man die alte SD Karte noch verwenden, indem zB die defekten Blocks ausgeblendet werden? Ich erinnere mich, sowas mal bei einer Festplatte gemacht zu haben (Low Level Format Tool vom Hersteller). Gibt's da für SD Karten auch die Möglichkeit? Ist 'ne SanDisk

    In Anbetracht der Tatsache, dass die Speicherkarte eh schon angeschlagen ist und dass Speicherkarten fast kein Geld mehr kosten, würde ich mir so eine Arbeit nicht machen, v.a. weil es sich stark nach einer softwareseitigen Lösung anhört.

    .NET-, Unity3D-, Web-Dev.
    Mikrocomputer-Hobbyist.

  • Kann man die alte SD Karte noch verwenden, indem zB die defekten Blocks ausgeblendet werden?

    Z.B. indem Du bei der Erstellung eines EXT4 Filesystems die Option "Check the device for bad blocks before creating the file system" (am besten zweimal) verwendest. < man mke2fs > oder < man mkfs.ext4 >


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Ich wuerde generell weder bei einer Platte und noch weniger bei einer SD Karte diese noch nutzen. Ausser sie wird nur fuer Scatchdaten genutzt bei denen es egal ist wenn die Platte bzw SD Karte stirbt.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Ich wuerde generell weder bei einer Platte und noch weniger bei einer SD Karte diese noch nutzen.

    Ausser sie wird nur fuer Scatchdaten genutzt bei denen es egal ist wenn die Platte bzw SD Karte stirbt.

    Zumal eine neue Karte im Bereich von 5-10€ liegt und die alte schon > 5 Jahre alt ist.

    Da würde ich gar nichts mehr drauf speichern.

    Immerhin hat die SD Karte schon >5 Jahre im Dauerbetrieb gedient.

  • Hatte gestern gar überlesen, dass die schon 5 Jahre im Einsatz ist. Puh, dass die schon so lang im Dauerbetrieb gefahren ist ... Respekt :)

    .NET-, Unity3D-, Web-Dev.
    Mikrocomputer-Hobbyist.

  • Okay, mal schauen. Ich dachte auch nicht, die Karte noch für den Produktivbetrieb zu nutzen, höchstens für kleine Tests. Es sind ja wirklich nur ein paar KB defekt gewesen und die wundern mich auch echt nicht, weil es die FreshRSS Datenbank war und die im 10-Minuten-Takt schreibt.

  • Für ein Diagnose- und Rettungssystem reicht so eine angeknackste SD allemal.


    Servus !


    Ed: zur Verdeutlichung: Es liegen dabei keine (zu rettende) Daten auf der SD.

    Die Diagnose und Rettungs SD wird nur als "Bedienungskonsole" angeschlossener Geräte vervendet.

    RTFM = Read The Factory Manual, oder so

    Edited once, last by RTFM ().

  • Fuer Diagnose - OK - aber als Rettungssystem - nein - denn das sollte sicher funktionieren wenn es benötigt wird :shy:

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)

  • Um was für eine SD Karte handelt es sich überhaupt? Wenn es sich z.B. um eine mit 10 Jahren Garantie oder Industrial Version handelt, wäre entsorgen kein guter Rat.