Mon appareil Linux intégré utilise une carte SD pour enregistrer certaines données de diagnostic, beaucoup trop copieuses pour le flash interne.
Le problème est que si l'appareil est éteint de manière inattendue, le système de fichiers (FAT32) sur la carte est corrompu.
Il n'y a aucun moyen d'empêcher des pannes de courant inattendues ou de l'éteindre comme ça, et l'appareil devrait être relativement sans entretien. Pire encore, les données sont écrites en continu, donc les corruptions sont très fréquentes, et Linux lors de la détection de FS défectueux les remonte en lecture seule en silence.
Quelles méthodes proposeriez-vous pour atténuer cela? L'exécution automatique de fsck.vfat au démarrage suffira-t-elle?
Quelques informations supplémentaires:
- La carte ne doit pas être considérée comme amovible par l'utilisateur. Cela doit être considéré comme un disque interne. Toutes les données qui y sont stockées seront accessibles pour téléchargement sur le réseau ou sur un lecteur USB, et le système purge automatiquement les entrées les plus anciennes. Cela signifie qu'il n'a pas besoin d'être lisible sur votre PC moyen.
- Le système prend actuellement en charge FAT, yaffs et jffs2. Ajouter d'autres systèmes de fichiers au noyau est possible mais si d'autres voies existent, nous les préférerions d'abord.
- L'écriture peut être suspendue à la demande, même pendant plusieurs minutes sans perte de données.
- une perte de données partielle ou une corruption mineure est acceptable. L'arrêt complet de la journalisation ne l'est pas.
- les événements de mise hors tension sont complètement imprévisibles la plupart du temps.
- le système fonctionne sur ARM9, 200 MHz, 64 Mo de RAM, 32 Mo de mémoire flash interne et utilise la majeure partie de la puissance du processeur pour son rôle principal. Tenez-en compte lorsque vous pensez à des solutions sophistiquées gourmandes en ressources.