Moje wbudowane urządzenie linux korzysta z karty SD do zapisywania niektórych danych diagnostycznych, co jest zdecydowanie zbyt obszerne, aby możliwe było użycie wewnętrznej pamięci flash.
Problem polega na tym, że jeśli urządzenie zostanie nieoczekiwanie wyłączone, system plików (FAT32) na karcie jest uszkodzony.
Nie ma sposobu, aby zapobiec nieoczekiwanym przerwom w zasilaniu lub takiemu wyłączeniu przez użytkownika, a urządzenie powinno być względnie bezobsługowe. Co gorsza, dane są zapisywane w sposób ciągły, więc uszkodzenia są bardzo częste, a Linux po wykryciu wadliwego systemu FS instaluje je tylko do odczytu w trybie cichym.
Jakie metody byś to złagodził? Czy uruchomienie fsck.vfat automatycznie przy starcie wystarczy?
Więcej informacji:
- Karty nie należy uważać za wyjmowaną przez użytkownika. Należy to traktować jako dysk wewnętrzny. Wszelkie przechowywane na nim dane będą dostępne do pobrania przez sieć lub dysk USB, a system automatycznie usunie najstarsze wpisy. Oznacza to, że nie musi być czytelny na przeciętnym komputerze.
- System obsługuje obecnie FAT, yaffs i jffs2. Dodanie innych systemów plików do jądra jest możliwe, ale jeśli istnieją inne ścieżki, wolelibyśmy je najpierw.
- Zapis może zostać zawieszony na żądanie nawet na kilka minut bez utraty danych.
- dopuszczalna jest częściowa utrata danych lub niewielkie uszkodzenie. Całkowite zatrzymanie rejestrowania nie jest.
- zdarzenia wyłączenia są przez większość czasu całkowicie nieprzewidywalne.
- system działa na ARM9, 200 MHz, 64 MB pamięci RAM, 32 MB wewnętrznej pamięci flash i zużywa większość mocy procesora do swojej podstawowej roli. Weź to pod uwagę, myśląc o fantazyjnych rozwiązaniach wymagających dużych zasobów.