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 первый.