Загрузить ядро Linux единожды, проверить стабильность работы ядра, выбрать ядро для постоянной загрузки (grub) по умолчанию. Обновление ядра задача ответственная и когда обновление выполняется с официальных репозиториев производителя ОС, то обычно проблем не бывает.
Так или иначе 100%-ой гарантии старта ОС с новым ядром никто дать не сможет. Хорошо когда под руками есть физическая консоль сервера и мы можем перезагрузив линукс в меню GRUB выбрать работоспособное ядро, но в случае с виртуальными частными серверами у клиента его купившего нет такой возможности.
После установки/обновления ядра, в большинстве ОС Linux, оно попадает в файл /etc/grub.conf, где также прописано загружаемое по умолчанию ядро (kernel). Файл /etc/grub.conf выглядит примерно следующим образом:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
# ядро под номером "0"
title CentOS (2.6.18-348.4.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-348.4.1.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-348.4.1.el5.img
# ядро под номером "1"
title CentOS (2.6.18-348.3.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-348.3.1.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-348.3.1.el5.img
# ядро под номером "2"
title CentOS (2.6.18-348.1.1.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-348.1.1.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-348.1.1.el5.img
# ядро под номером "3"
title CentOS (2.6.18-348.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-348.el5 ro root=/dev/VolGroup00/LogVol00
initrd /initrd-2.6.18-348.el5.imgВ примере выше при старте ОС всегда по умолчанию используется ядро под номером "0" (default=0). Для выбора ядра загружаемого единожды при старте Linux нужно выполнить одну из перечисленных ниже команд:
[root@remoteshaman ~]# echo "savedefault --default=1 --once" | grub --batch Probing devices to guess BIOS drives. This may take a long time. Unknown partition table signature GNU GRUB version 0.97 (640K lower / 3072K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename.] grub> savedefault --default=1 --once grub> [root@remoteshaman ~]# # или... echo "savedefault --default=1 --once" | grub && reboot
После выполнения команды наш линух должен будет уйти на перезагрузку (reboot) и стартонуть с ядром под номером "1" (2.6.18-348.3.1.el5) и если ядро окажется кривое и старт накроется медным тазом, то при следующем старте/рестарте будет выбрано ядро по умолчанию под номером "0" и Linux будет успешно запущен.
После старта проверяем версию ядра uname -a и если там указана именно та версия которую мы выбрали для загрузки единожды, то в файле vi /etc/grub.conf выбираем ядро для загрузки по умолчанию под нашим номером "1" (ака default=1), а если же сервер остался недоступен, то его нужно запустить/перезагрузить удалённо (через веб консоль) или локально (на физической консоли).
Подобные манипуляции помогут максимально безопасно удаленно сменить ядро Linux по умолчанию предварительно проверив его нормальную работу.

