Мое встроенное устройство Linux использует SD-карту для сохранения определенных диагностических данных, слишком много для внутренней флэш-памяти.
Проблема в том, что если устройство неожиданно выключилось, файловая система (FAT32) на карте повреждена.
Не существует способа предотвратить непредвиденные перебои с питанием или отключение пользователем таким образом, и устройство должно быть относительно необслуживаемым. Хуже того, данные записываются непрерывно, поэтому повреждения происходят очень часто, и Linux, обнаружив неисправный FS, автоматически перезаписывает его только для чтения.
Какие методы вы бы предложили, чтобы смягчить это? Будет ли достаточно запуска fsck.vfat при запуске?
Еще немного информации:
- Карта не должна считаться удаляемой пользователем. Это следует рассматривать как внутренний диск. Любые данные, хранящиеся на нем, будут доступны для загрузки по сети или на USB-накопитель, и система автоматически удалит самые старые записи. Это означает, что он не должен быть читаемым на вашем обычном ПК.
- В настоящее время система поддерживает FAT, yaffs и jffs2. Добавление других файловых систем в ядро возможно, но если существуют другие возможности, мы бы предпочли их в первую очередь.
- Запись может быть приостановлена по требованию даже на несколько минут без потери данных.
- частичная потеря данных или незначительное повреждение допустимы. Полной остановки регистрации нет.
- события отключения питания в большинстве случаев совершенно непредсказуемы.
- система работает на ARM9, 200 МГц, 64 МБ ОЗУ, 32 МБ встроенной флэш-памяти и использует большую часть ресурсов процессора для выполнения своей основной роли. Примите это во внимание, думая о причудливых ресурсоемких решениях.