Grub fallback

Материал из База знаний Etersoft
Перейти к навигацииПерейти к поиску

Обновление ядра удаленной машины

Если требуется установить новое ядро на удаленную машину и есть опасения, что оно не загрузится корректно, вот инструкция по организации механизма возврата при различных версиях загрузчика.

GRUB

Взято отсюда (выполнялся Alternative way): http://www.linuxscrew.com/2012/04/24/grub-fallback-boot-good-kernel-if-new-one-crashes/

  • Нужно добавить параметр 'panic=5' в строку загрузки тестового ядра (а лучше - всех):
title Fedora OpenVZ (2.6.32-042stab053.5)
        root (hd0,1)
        kernel /boot/vmlinuz-2.6.32-042stab053.5 ro root=UUID=6fbd...<многа_букафф> quiet crashkernel=auto panic=5
        initrd /boot/initramfs-2.6.32-042stab053.5.img
This param will make crashed kernel to reboot itself in 5 seconds.

Тогда автоматически произойдет перезагрузка через 5 секунд после возникновения kernel panic.

  • В параметрах grub'а (/boot/grub/grub.conf) указать 'default=0' - ссылка на ядро, о котором известно, что оно достоверно загрузится. Нумерация начинается с нуля !!!
  • Ввести в консоли grub (запускается одноименной командой):
# grub
 
grub> savedefault --default=1 --once
savedefault --default=1 --once
grub> quit

Где единичка - это порядковый номер тестируемого ядра.

GRUB2

Аналогичный функционал реализован по умолчанию командами grub-reboot и grub-default-set

  • Проверяем наличие опции 'panic=5' аналогично GRUB ранних версий. Для того, чтобы эта опция стала активна по умолчанию, ее следует добавить в /etc/sysconfig/grub2 (AltLinux):
 GRUB_CMDLINE_LINUX_DEFAULT=' ... panic=5 ... '

К уже имеющимся в этой строке. И, разумеется, командуем update-grub .

  • Командуем в консоли:
grub-default-set 0
grub-reboot 1

Первая команда устанавливает проверенное ядро (также порядковый номер записи в /boot/grub/grub.cfg), а вторая - установит однократно перезагрузку в выбранное ядро (тестируемое).

  • Перезагружаемся.