GRUB2 — загрузка системы без участия пользователя после нештатного выключения

выбор режима загрузкиПри нештатном отключении компьютера (нажали кнопку reset, пропадало электричество) GRUB бесконечно ждал от пользователя выбора режима загрузки операционной системы, в моём случае Ubuntu Server, но написанное ниже гипотетически подходит и для других операционных систем которые загружаются GRUBом. Это напрягало многие годы, но когда мне для загрузки сервера (шлюз для раздачи интернета) приходилось доставать с погреба лестницу и лезть на чердак для того чтобы лишь клацнуть по Enter, решил разобраться.

Для отслеживания нештатного завершения работы операционной системы в механизме работы GRUB есть переменная recordfail, при установке которой значения устанавливается бесконечная задержка
/boot/grub/grub.cfg


1
2
3
4
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=0

Можно вместо -1 задать 10 и GRUB будет ожидать 10 секунд и продолжать загрузку. Но после выполнения команды update-grub файл /boot/grub/grub.cfg будет перезаписан. Чтобы предотвратить это нужно в файле задать /etc/default/grub добавить переменную GRUB_RECORDFAIL_TIMEOUT присвоив ей кол-во секунд, которое бы вы хотели чтобы GRUB ожидал выбора от пользователя режима загрузки.

После чего нужно обновить конфигурацию GRUB командой update-grub и проверить результат

 cat /boot/grub/grub.cfg | grep -C 3 terminal_output
 set lang=ru_RU
 insmod gettext
 fi
 terminal_output gfxterm
 if [ "${recordfail}" = 1 ] ; then
  set timeout=10
 else

Без лирики:

1
2
3
4
5
6
7
8
9
10
11
# проверяем конфиг grub
cat /boot/grub/grub.cfg | grep -C 3 terminal_output
# если в выводе будет строчка set timeout=-1 стоит продолжать
cat  /etc/default/grub | grep  GRUB_RECORDFAIL_TIMEOUT
# если команда ни чего не вернёт тогда продолжаем
sudo sh -c "echo 'GRUB_RECORDFAIL_TIMEOUT=10' >> /etc/default/grub"
# обновляем конфигурацию grub
sudo update-grub
# снова проверяем конфиг grub
cat /boot/grub/grub.cfg | grep -C 3 terminal_output
# если set timeout=10 тогда все прошло успешно

Удачных вам перезагрузок!

Один комментарий на “GRUB2 — загрузка системы без участия пользователя после нештатного выключения

  1. Всё это может помочь при настройке и восстановлении системы, однако те же самые инструменты существенно облегчают любому посетителю взлом системы. Изменение параметров ядра может быть использовано для получения полномочий root без ввода пароля, а загрузка с внешнего носителя – для получения полного доступа ко всем незашифрованным данным.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *