Mein Embedded Linux-Gerät verwendet eine SD-Karte zum Speichern bestimmter Diagnosedaten, die für internen Flash viel zu umfangreich ist.
Das Problem ist, wenn das Gerät unerwartet ausgeschaltet wird, das Dateisystem (FAT32) auf der Karte beschädigt ist.
Es gibt keine Möglichkeit, unerwartete Stromausfälle oder das Ausschalten durch den Benutzer zu verhindern, und das Gerät sollte relativ wartungsfrei sein. Schlimmer noch, die Daten werden kontinuierlich geschrieben, so dass die Beschädigungen sehr häufig sind, und Linux stellt sie nach dem Erkennen eines fehlerhaften FS schreibgeschützt wieder bereit.
Welche Methoden würden Sie vorschlagen, um dies zu mildern? Wird es ausreichen, fsck.vfat beim Start automatisch auszuführen?
Noch ein paar Infos:
- Die Karte ist vom Benutzer nicht als entfernbar anzusehen. Es ist als interne Festplatte zu verstehen. Alle darauf gespeicherten Daten können über das Netzwerk oder ein USB-Laufwerk heruntergeladen werden, und das System löscht automatisch die ältesten Einträge. Das bedeutet, dass es in einem durchschnittlichen PC nicht lesbar sein muss.
- Das System unterstützt derzeit FAT, Yaffs und Jffs2. Das Hinzufügen anderer Dateisysteme zum Kernel ist möglich, aber wenn andere Möglichkeiten vorhanden sind, würden wir sie zuerst bevorzugen.
- Das Schreiben kann bei Bedarf auch für einige Minuten ohne Datenverlust unterbrochen werden.
- Teilweiser Datenverlust oder geringfügige Beschädigung sind akzeptabel. Ein vollständiges Stoppen der Protokollierung ist nicht möglich.
- Die Ausschaltereignisse sind die meiste Zeit völlig unvorhersehbar.
- Das System läuft mit ARM9, 200 MHz, 64 MB RAM und 32 MB internem Flash und verbraucht den größten Teil der CPU-Leistung für seine primäre Rolle. Berücksichtigen Sie dies, wenn Sie an ausgefallene ressourcenintensive Lösungen denken.