fsck в корневом разделе на пользовательской плате на основе BBB
У нас есть специализированная встроенная плата Linux на базе BeagleBone Black. Он имеет Linux-3.12, 256 МБ оперативной памяти и 4 ГБ eMMC с ext4
файловая система на нем.
Иногда мы сталкиваемся с ошибками файловой системы (редко, но не невозможно). Поэтому мы хотим проверить ошибки файловой системы и исправить их при загрузке.
Очевидно, что мы не хотим, чтобы fsck или любая другая утилита уничтожала какие-либо данные в файловой системе.
У нас на основе busybox SysVinit
так /forcefsck
не работает:(Тогда я использовал /etc/fstab
(установка 5-го поля в 1) и затем работает fsck -p
от rcS
скрипт.
Эта комбинация работает для других разделов, кроме rootfs
раздел. У меня есть пара вопросов по этому поводу.
- В любом случае, бежать
fsck
наrootfs
раздел? - Можно
fsck -p
может уничтожить данные на разделе? - Есть ли лучший способ справиться с этой ситуацией, я имею в виду любой сервис, который будет проверять и исправлять ошибки файловой системы?
1 ответ
Обычный способ для настольных дистрибутивов Linux на основе SysVinit - запрашивать пароль root во время загрузки, когда он обнаруживает ошибки в корневой файловой системе. Вы можете использовать это для запуска fsck
на корне фс. Я не знаю, делает ли это ваш встроенный дистрибутив, но это определенно возможно настроить таким образом.
Если во время загрузки не обнаружено ошибок, другой вариант - войти в систему как пользователь root, остановить все, что на самом деле не нужно, перемонтировать корневую файловую систему только для чтения, а затем запустить fsck.
Это касается корневой файловой системы вашего блочного хранилища, а не rootfs. Rootfs - это минимальная файловая система на базе оперативной памяти, которая используется во время загрузки и не может быть повреждена (если только образ загрузочного ядра не поврежден или у вас не работает ОЗУ).
В принципе fsck -p
предназначен только для "безопасного" ремонта, но если вы действительно хотите убедиться, что ничего плохого не произойдет, запустите его вручную, и вам будет предложено ввести каждое действие. Если по какой-то причине в корневой файловой системе есть ценные данные (этого не должно случиться, но, возможно, вы это сделаете), сделайте резервную копию, используя dd
первый.