Отключение перехода в однопользовательский режим в FreeBSD

Если во время загрузки 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
}

После установки новой версии системы процедуру потребуется повторить.

 

Ваш комментарий:


Вы не бот: