Настройка загрузчика GRUB
Введение
Здесь описан надёжный способ настроить GRUB так, чтобы при перезагрузке система стартовала с только что установленного ядра. Подход ориентирован на системы SUSE/OpenSUSE, где доступен YaST, но также разобраны ручные альтернативы и диагностика.
Что нужно иметь под рукой
- Доступ с правами root или sudo.
- Новое ядро и initrd в каталоге /boot (обычно файлы начинаются с vmlinuz-… и initrd-…).
- Резервная рабочая конфигурация GRUB (существующая запись для ранее работавшего ядра).
Шаги: настройка через YaST (рекомендуется)
- Запустите YaST в терминале:
yast- Откройте System → Boot Loader.

- На экране записей GRUB нажмите Add, чтобы добавить новую запись.

- Выберите Clone Selected Section, чтобы клонировать одну из рабочих записей GRUB.

- Введите понятное имя для новой записи, например SUSE Linux 10.1 - 2.6.18.2, затем в Kernel → Browse выберите файл ядра в /boot (vmlinuz-…):

- В разделе Initial RAM Disk → Browse выберите соответствующий initrd (initrd-…).

- Нажмите OK, чтобы сохранить запись.

- В списке записей найдите новую запись, поместите её первой (кнопка Up) и нажмите Set as Default.


- Нажмите Finish, затем Quit, чтобы выйти из YaST.


- Теперь можно проверить файл /boot/grub/menu.lst — в нём должна появиться новая секция для вашего ядра. Откройте файл любым редактором:
vi /boot/grub/menu.lstПример содержимого menu.lst, созданного YaST:
# Modified by YaST2. Last modification on Wed Nov 15 14:37:56 CET 2006
color white/blue black/light-gray
default 0
timeout 8
title SUSE Linux 10.1 - 2.6.18.2
root (hd0,0)
kernel /vmlinuz-2.6.18.2-default root=/dev/sda3 vga=0x314 resume=/dev/sda2 splash=silent showopts
initrd /initrd-2.6.18.2-default
###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE Linux 10.1
root (hd0,0)
kernel /vmlinuz root=/dev/sda3 vga=0x314 resume=/dev/sda2 splash=silent showopts
initrd /initrd
###Don't change this comment - YaST2 identifier: Original name: floppy###
title Floppy
chainloader (fd0)+1
###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE Linux 10.1
root (hd0,0)
kernel /vmlinuz root=/dev/sda3 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
initrd /initrd- Перезагрузите систему:
shutdown -r now- После загрузки проверьте текущее ядро:
uname -rОжидаемый вывод (пример):
2.6.18.2-defaultЕсли система не загружается с новым ядром (диагностика)
- При загрузке в меню GRUB выберите старую (рабочую) запись и запустите систему.

- Убедитесь, что выбранные вами vmlinuz и initrd соответствуют версии ядра.
- Проверьте корректность параметра root= и других опций в stanza.
- Удалите или исправьте проблемную запись в /boot/grub/menu.lst, если ядро не работоспособно.
Важно: не удаляйте рабочие записи, пока не убедитесь, что новое ядро стабильно загружается.
Альтернативный (ручной) способ: правка /boot/grub/menu.lst
Если вы предпочитаете консоль, вы можете добавить stanza вручную в начало /boot/grub/menu.lst с помощью vi, nano или другого редактора. Пример записи для вставки:
title SUSE Linux 10.1 - 2.6.18.2
root (hd0,0)
kernel /vmlinuz-2.6.18.2-default root=/dev/sda3 vga=0x314 resume=/dev/sda2 splash=silent showopts
initrd /initrd-2.6.18.2-defaultСовет: перед правкой сделайте резервную копию:
cp /boot/grub/menu.lst /boot/grub/menu.lst.bakЧтобы найти доступные файлы ядра и initrd используйте:
ls -l /bootЧек-лист по ролям
Системный администратор:
- Проверил наличие vmlinuz и initrd в /boot.
- Скопировал рабочую запись или создал новую через YaST.
- Сделал резервную копию /boot/grub/menu.lst.
- Перезагрузил сервер и проверил uname -r.
Оператор/инженер DevOps:
- Обновил/откатил запись в случае ошибки.
- Документировал изменения и время модификации.
Когда этот метод не сработает (контрпримеры)
- Если загрузчик был заменён на GRUB2, конфигурация и файлы отличаются (grub.cfg, update-grub).
- Если корневой раздел указан неправильно, ядро не сможет смонтировать rootfs.
- При несовместимости модулей или initrd с новым ядром возникнут паники ядра.
Мини-методология: быстрый алгоритм действий
- Найдите файлы ядра и initrd в /boot.
- Клонируйте рабочую запись через YaST или вручную вставьте stanza в menu.lst.
- Поместите новую запись первой и сделайте её по умолчанию.
- Перезагрузитесь и проверьте uname -r.
- В случае ошибки загрузитесь со старого ядра и исправьте запись.
Краткий словарь
- vmlinuz — сжатый бинарник ядра Linux.
- initrd — образ initial ramdisk, нужен для загрузки модулей до монтирования корня.
- stanza — блок конфигурации для одной записи GRUB.
Резюме
- YaST упрощает добавление нового ядра в GRUB и уменьшает риск ошибок в синтаксисе.
- Всегда сохраняйте рабочую запись и делайте резервную копию menu.lst перед правками.
- При проблемах используйте выбор старого ядра в меню GRUB, проверьте файлы в /boot и корректность опций.
Источники и ссылки:
- OpenSuSE: http://www.opensuse.org
- The Linux Kernel Archives: http://www.kernel.org
Автор
Редакция
Похожие материалы
Программное обеспечение
Несколько аккаунтов Skype: Multi Skype Launcher
Productivity
Журнал для работы: повысить продуктивность
Android.
Персональные звуки уведомлений на Android
Стриминг
Скачивание шоу Hulu для офлайн‑просмотра
Новости
Microsoft Start: персонализированная новостная лента
Гайды