fsck в корневом разделе на пользовательской плате на основе BBB

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

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

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

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

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

1 ответ

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

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

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

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

Другие вопросы по тегам