У нас есть ряд встроенных систем, для которых требуется прямой доступ к файловой системе, которая находится на флэш-памяти с эмуляцией блочного устройства. Наша самая старая платформа работает на компактной флеш-памяти, и эти системы использовались более 3 лет без запуска ни одной fsck во время загрузки, и до сих пор у нас нет сбоев, связанных с файловой системой или CF.
На нашей новейшей платформе мы использовали USB-flash для первоначального производства и сейчас переходим на Disk-on-Module для чтения / записи. Некоторое время назад у нас были проблемы с файловой системой на многих устройствах, работающих на USB-накопителе, поэтому я включил e2fsck, чтобы посмотреть, поможет ли это. Как выяснилось, мы получили партию плохих флэш-памяти, поэтому после их замены проблема исчезла. С тех пор я отключил e2fsck, поскольку у нас не было никаких указаний на то, что он сделал систему более надежной, и исторически мы прекрасно обходились без нее.
Теперь, когда мы начали вставлять модули Disk-on-Module, я снова стал замечать ошибки файловой системы. Внезапно система не может читать / записывать определенные файлы, и если я пытаюсь получить доступ к файлу из аварийной консоли, я просто получаю «Ошибка ввода / вывода». Я снова включил e2fsck, и все файлы были исправлены.
О'Рейли в статье «Создание встроенных систем Linux» рекомендует запускать e2fsck в файловых системах ext2, но не упоминает об этом в отношении ext3, поэтому я немного не понимаю, следует ли мне его включать.
Что вы думаете о запуске fsck во встроенной системе? Мы рассматриваем возможность размещения двоичных файлов в разделе ar / o и только тех файлов, которые должны быть изменены в разделе ar / w на том же флеш-устройстве, чтобы fsck никогда не мог случайно удалить важные системные двоичные файлы, есть ли у кого-нибудь опыт такой настройки (хорошо плохо)?