Il mio dispositivo Linux incorporato utilizza una scheda SD per il salvataggio di alcuni dati di diagnostica, troppo abbondante per il flash interno.
Il problema è se il dispositivo viene spento in modo imprevisto, il filesystem (FAT32) sulla scheda è danneggiato.
Non c'è modo di prevenire interruzioni di corrente impreviste o di spegnerlo in questo modo e il dispositivo dovrebbe essere relativamente esente da manutenzione. Peggio ancora, i dati vengono scritti continuamente, quindi le corruzioni sono molto frequenti e Linux, rilevando FS difettoso, lo rimonta in sola lettura silenziosamente.
Quali metodi suggeriresti per mitigarlo? Sarà sufficiente eseguire fsck.vfat automaticamente all'avvio?
Qualche informazione in più:
- La scheda non deve essere considerata rimovibile dall'utente. Deve essere pensato come un disco interno. Tutti i dati memorizzati su di esso saranno accessibili per il download sulla rete o su un'unità USB e il sistema elimina automaticamente le voci più vecchie. Ciò significa che non deve essere leggibile sul tuo PC medio.
- Il sistema attualmente supporta FAT, yaffs e jffs2. È possibile aggiungere altri filesystem al kernel, ma se esistono altri percorsi, li preferiremmo prima.
- La scrittura può essere sospesa su richiesta anche per diversi minuti senza perdita di dati.
- la perdita parziale di dati o la corruzione minore è accettabile. L'arresto completo della registrazione non lo è.
- gli eventi di spegnimento sono completamente imprevedibili per la maggior parte del tempo.
- il sistema funziona su ARM9, 200MHZ, 64 MB di RAM, 32 MB di memoria flash interna e utilizza la maggior parte della potenza della CPU per il suo ruolo principale. Prendi in considerazione ciò mentre pensi a fantasiose soluzioni ricche di risorse.