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

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

У нас есть кастомная плата Embedded 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, предназначено для выполнения только "безопасных" ремонтов, но если вы действительно хотите быть уверены, что ничего плохого не произойдет, запустите его вручную, чтобы вам предлагалось выполнить каждое действие. Если по какой-то причине в корневой файловой системе есть ценные данные (так быть не должно, но, возможно, они есть), сделайте резервную копию с помощью ddfirst.

Связанный контент