1

У нас есть специализированная встроенная плата Linux на базе BeagleBone Black. Он имеет Linux-3.12, 256 МБ оперативной памяти и 4 ГБ eMMC с файловой системой ext4 .

Иногда мы сталкиваемся с ошибками файловой системы (редко, но не невозможно). Поэтому мы хотим проверить ошибки файловой системы и исправить их при загрузке.
Очевидно, что мы не хотим, чтобы fsck или любая другая утилита уничтожала какие-либо данные в файловой системе.

У нас есть SysVinit на основе SysVinit поэтому /forcefsck не работает :( Затем я использовал /etc/fstab(установив 5-е поле в 1) и затем запустил fsck -p из сценария rcS .

Эта комбинация работает для разделов, отличных от раздела rootfs . У меня есть пара вопросов по этому поводу.

  1. Есть ли способ запустить fsck на разделе rootfs ?
  2. Может ли fsck -p уничтожить данные на разделе?
  3. Есть ли лучший способ справиться с этой ситуацией, я имею в виду любой сервис, который будет проверять и исправлять ошибки файловой системы?

1 ответ1

1

Обычный способ для настольных дистрибутивов Linux на основе SysVinit - запрашивать пароль root во время загрузки, когда он обнаруживает ошибки в корневой файловой системе. Затем вы можете использовать это для запуска fsck в корне fs. Я не знаю, делает ли это ваш встроенный дистрибутив, но определенно возможно настроить его таким образом.

Если во время загрузки не обнаружено ошибок, другой вариант - войти в систему как пользователь root, остановить все, что в действительности не требуется, перемонтировать корневую файловую систему только для чтения, а затем запустить fsck.

Это касается корневой файловой системы вашего блочного хранилища, а не rootfs. Rootfs - это минимальная файловая система, основанная на оперативной памяти, которая используется во время загрузки и не может быть повреждена (если только образ загрузочного ядра не поврежден или у вас не работает ОЗУ).

В принципе, fsck -p предназначен только для "безопасного" восстановления, но если вы действительно хотите убедиться, что ничего плохого не произойдет, запустите его вручную, и вам будет предложено ввести каждое действие. Если по какой-то причине в корневой файловой системе есть ценные данные (этого не должно случиться, но, возможно, вы это делаете), сначала сделайте резервную копию с помощью dd .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .