Если во время загрузки fsck обнаружит повреждение файловой системы на диске, FreeBSD остановит штатную загрузку и перейдет в однопользовательский режим. Такое поведение системы в принципе разумно, но может стать проблемой, в случае если сервер управляется удаленно.
Сократить число переходов в однопользовательский режим, можно задав параметр в /etc/rc.conf
:
fsck_y_enable="YES"
В этом случае fsck будет запущен с ключом -y и попытается исправить проблемы автоматически.
Но если на диске будет обнаружена серьезная ошибка, загрузка системы все равно будет прервана.
Более радикальный способ решения проблемы - отключение процедуры перехода в однопользовательский режим правкой rc.subr.
Открываем /etc/rc.subr
, находим процедуру stop_boot()
, и добавляем в начало процедуры return
, с записью соответствующего уведомления.
# stop_boot always
# If booting directly to multiuser or $always is enabled,
# send SIGTERM to the parent (/etc/rc) to abort the boot.
# Otherwise just exit.
#
stop_boot()
{
echo "Critical boot failure, single user prevented!"
return
local always
case $1 in
# "yes", "true", "on", or "1"
[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
always=true
;;
*)
always=false
;;
esac
if [ "$autoboot" = yes -o "$always" = true ]; then
echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!"
kill -TERM ${RC_PID}
fi
exit 1
}
После установки новой версии системы процедуру потребуется повторить.
Ваш комментарий: