Недавно мы столкнулись с проблемой (плохие блоки) с компактной флеш-картой в формате ext3, работающей со встроенной системой Linux. При запуске запускалась проверка корневой файловой системы, но казалось, что она зависла, так как на это ушло намного больше времени, чем обычно. Позже я подключил карту к другому компьютеру и обнаружил сбойные блоки. Теперь я задаюсь вопросом, нашла бы ли первоначальная проверка корневой файловой системы и отремонтированные блоки, если бы я достаточно долго ждал. Чтобы узнать это, я проверил страницы руководства tune2fs и e2fsck, но не смог найти ответов на свои вопросы:
Могу ли я повлиять на проверки / исправления, выполняемые с помощью этих автоматических проверок корневой файловой системы? Если да, то как его настроить?
Если невозможно настроить: что именно проверяется или ремонтируется, каковы настройки по умолчанию, какие флаги используются для автоматической проверки?
если бы при первоначальной проверке корневой файловой системы были обнаружены исправленные блоки
ОС будет запускать автоматический, полный fsck в ext3 только в том случае, если в файловой системе не включено ведение журнала и в системе произошел сбой. или достигнут предел повторного подключения. Он обнаружил бы плохие блоки, если бы вы попытались их записать или прочитать - но это не вызвало бы автоматический fsck - он либо перемонтировал бы диск в режиме только для чтения, либо вызвал панику ядра в зависимости от того, как он был настроен.
Предполагая, что он настроен на ведение журнала, тогда тесты, выполняемые при монтировании, проверяют только те операции журнала, которые, возможно, придется откатить.
Я проверил tune2fs
Вы видели, что делают флаги -i, -C и -c? (обратите внимание, что они запускают fsck только при какой-то будущей перезагрузке - невозможно запланировать корневой fsck в работающей системе).
Технология CF становится довольно долгой и относительно дорогой по сравнению с другими форматами - возникает вопрос, сколько лет этой карте и стоит ли пытаться ее сохранить. Хотя вполне возможно запустить операционную систему на таких устройствах, они на самом деле не предназначены для этой цели - флеш-накопители с подключением SATA и nand становятся обычным явлением, но причина, по которой они стоят намного дороже, чем, скажем, SD-карты, заключается в том, что они содержат много умов для управления хранилищем и работы с плохими блоками.
К сожалению, нет файловой системы, способной управлять базовыми устройствами хранения с ограничением записи, подключенными через IDE / SCSI / USB (JFFS2 использует прямой доступ к базовому хранилищу, то есть устройствам, подключенным к шине PCIe).
Это, безусловно, очень хорошая идея - ожидать, что устройство CF будет вести себя как обычный диск - взгляните на puppy - он делает очень умные вещи с наложениями, чтобы уменьшить количество записей на диск, хотя можно сделать много настройка всех файловых систем для уменьшения частоты записи - ознакомьтесь с рекомендациями по настройке Linux на ноутбуках для уменьшения количества операций ввода-вывода.