GRUB2 - Grand Unified Bootloader

Создан: 20.02.2009
Модиф: 26.08.2013
Иванов Аркадий

 

Тут я для себя чисто заметки делаю, поскольку на GRUB2 внятной документации не нашёл, а затем прочитал, что разработчики скромно её и не делали.

 

====================================================================

Неожиданно мне понадобился GRUB, поскольку у LILO были явные проблемы с установкой на деградированный RAID1.
В гугле при описании подобных систем все указывали только GRUB.
Последняя версия GRUB (0.97) к сожалению, просто умирала на моей неполноценной двухдисковой конфигурации RAID-1.

Итак, задача: поставить загрузчик с /dev/md0 на диск /dev/sda и диск /dev/sdb.

 

Установил GRUB2 версии 1.96 из исходников с сайта.

  1. Сделал каталог /boot/grub
  2. Запуск grub-mkdevicemap. Получил /boot/grub/device.map
  3. Стёр из этого файла упоминание о /dev/fd0. Иначе остальные утилиты работают очень тоскливо.
  4. Делаю grub.cfg  с помощью grub-mkconfig
  5. Устанавливаю загрузчики на оба диска:

       grub-install /dev/sda
       grub-install /dev/sdb
 

 

======================================================================

 

При загрузке можно нажать клавишу 'c' и перейти в режим команд GRUB2.

Полезными командами оказались выбор ядра загрузки и его initrd:

> linux  /boot/vmlinuz-2.6.28  root=/dev/md0

> initrd /boot/initrd-2.6.28.img

> boot

 

==================================================================================================

GRUB2 в Ubuntu:

  • Чтобы сделать в GRUB2 файл /boot/grub/grub.cfg, надо дать команду:
    grub-mkconfig >/boot/grub/grub.cfg
  • То же самое делается командой:
    update-grub

Менять содержимое grub.cfg следует не прямым редактированием, а изменением файлов, из которых он делается. Они расположены в каталоге /etc/grub.d и в файле /etc/default/grub 

 

==================================================================================================

Чтобы выбрать ядро для автоматической загрузки из перечня известных GRUBу,

указываю номер ядра в начале grub.cfg, например:

default=1

Счёт идёт с 0, поэтому запись с единицей указывает на второе ядро в grub.cfg.