Я собираюсь встраивать Ubuntu на встроенное устройство. Я использую комбинацию aufs и root только для чтения, чтобы гарантировать, что мой root fs не будет поврежден. Однако я хочу иметь возможность хранить логи, поэтому я делаю специальный раздел rw для /var/log
. Устройство будет подвергаться сотням сбоев питания.
В случае, если раздел поврежден из-за сбоя питания, я все равно хочу, чтобы система работала правильно. Я бы хотел, чтобы раздел автоматически переформатировался в случае повреждения. Есть ли простой способ настроить это?
Запустите fsck
с набором опций, которые не определяют взаимодействие с пользователем. Проверьте возвращаемое значение , чтобы увидеть, сможет ли оно восстановить файловую систему: возвращаемое значение будет 0, если ошибок не было, 1, если были исправимые ошибки, и большее значение, если произошло что-то плохое. Например, с ext [234], запустите e2fsck -p
.
e2fsck -p /dev/disk/by-label/logs
if [ $? -ge 1 ]; then
mke2fs -L logs /dev/disk/by-label/logs
fi
Если ваша рабочая среда разрешает это, рассмотрите возможность входа через сеть (вам нужно подключение по IP). Даже Busybox может это сделать:
syslogd -R logserver
klogd
На сервере журналов прослушивайте UDP-порт 514. Вы можете просто сбросить все, что поступает в файл, или добавить отметки о происхождении и дате в каждой строке, или вы можете запустить системный журнал локально.
Просто используйте файловую систему, которая не повреждена при сбоях питания, например ext3 или 4.