В Ubuntu есть проблема - в случае нештатного отключения компьютера (вырубили свет, потом включили) GRUB2 доходит до меню и ждет выбора. Хотелось, чтобы компьютер рестартовал сам при включении света. Как оказалось за это отвечает переменная recordfail, которая по умолчанию выставляется recordfail=1, а после успешной загрузки системы она обнуляется через init.d скрипт /etc/init.d/grub-common.
При загрузке GRUB2 в файле /boot/grub/grub.cfg идет проверка:
Прямое редактирование /boot/grub/grub.cfg смысла не имеет, т.к. все изменения затрутся, при запуске команды update-grub, поиск по скриптам GRUB2 показал, что в файле /etc/grub.d/00_header есть описание функции recordfail:
1. правильное выключение + GRUB2 отключить подтверждение при перезагрузке
2. recordfail в grub2 [РЕШЕНО]
При загрузке GRUB2 в файле /boot/grub/grub.cfg идет проверка:
if [ ${recordfail} = 1 ]; then set timeout=-1 else set timeout=0Таким образом GRUB2 в случае если система была выключена не штатно принудительно выводит меню загрузки и ждет пока администратор в ручную выберет что грузить. Это делается для предотвращения зацикливания загрузки системы, если там что-то серьезно навернулось.
Прямое редактирование /boot/grub/grub.cfg смысла не имеет, т.к. все изменения затрутся, при запуске команды update-grub, поиск по скриптам GRUB2 показал, что в файле /etc/grub.d/00_header есть описание функции recordfail:
function recordfail { set recordfail=1 EOF FS="$(grub-probe --target=fs "${grubdir}")" case "$FS" in btrfs | cpiofs | newc | odc | romfs | squash4 | tarfs | zfs) cat <<EOF # GRUB lacks write support for $FS, so recordfail support is disabled. EOF ;; *) cat <<EOF if [ -n "\${have_grubenv}" ]; then if [ -z "\${boot_once}" ]; then save_env recordfail; fi; fi EOF esac cat <<EOF }Затем ниже проверка значения переменной recordfail:
make_timeout () { cat << EOF if [ "\${recordfail}" = 1 ] ; then set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1} else EOFРешение проблемы напрашивается сам собой - установить переменную GRUB_RECORDFAIL_TIMEOUT (таймаут при срабатывании recordfail) в конфигурационном файле GRUB2 /etc/default/grub:
GRUB_RECORDFAIL_TIMEOUT=15После чего выполнить обновление конфигурации командой:
root@Ubuntu# update-grub
1. правильное выключение + GRUB2 отключить подтверждение при перезагрузке
2. recordfail в grub2 [РЕШЕНО]
Комментариев нет:
Отправить комментарий