Установка и настройка GRUB 0.97

GRUB - это универсальный загрузчик операционных систем для ПК, который элементарно настраивается и устанавливается.

В этом руководстве мы установим и настроим GRUB и сможем загружать:

а) ОС на первом логическом разделе основного жёсткоко диска,

б) ОС на любом разделе основного жёсткого диска,

в) ОС на любом другом жёстком диске силами GRUB и простой передачей управления загрузчику на другом диске.

Представим такую конфигурацию на ПК: диск 1 (sda) имеет 2 раздела с установленными на них ОС (sda1 = Windows, sda2=Linux), диск 2 (sdb) имеет 1 раздел с ОС Linux и диск 3 (sdc) с другой ос, но на этом диске имеется специальный для этой ОС загрузчик. Нам нужно теперь выставить в BIOS главный загрузочный жёсткий диск, установить и правильно настроить GRUB.

1. Установка

Если GRUB ещё не установлен, но уже установлены ОС Linux (в этом случае мы, скорее всего, затёрли GRUB чем-то другим), т.е. мы просто установили windows после того, как установили Linux, то загружаемся с помощью любого Linux Live CD (убунту, например :) ) и в терминале от имени root выполняем команды:

# grub
> root (hd0,0)
> find /boot/grub/stage1
> setup (hd0)
> quit

2. Настройка

Настройка загрузчика ограничивается правкой файла /boot/grub/menu.lst, который находится в разделе с установленной ОС Linux. В самом конце этого файла имеется раздел (automagic kernel list) со строками систем для загрузки. В нашем воображаемом случае мы имеем Windows на sda1 и Linux на sda2, для которых добавим строки:

 

title        Windows
root        (hd0,0)
makeactive
chainloader    +1
 
title        Linux
root        (hd0,1)
kernel        /boot/vmlinuz-2.6.22-14-generic root=/dev/sda2 ro quiet splash
initrd        /boot/initrd.img-2.6.22-14-generic
quiet

Загрузиться с основного диска мы уже сможем, но добавим теперь строки для Linux на другом диске (sdb1):

 

title        Linux 2
root        (hd1,0)
kernel        /boot/vmlinuz-2.6.22-14-generic root=/dev/sdb1 ro quiet splash
initrd        /boot/initrd.img-2.6.22-14-generic
quiet

То, что выделено жирным текстом, скорее всего, придётся править под свой конкретный случай.

И теперь разберёмся с самым интересным и, в то же время, простым случаем: передачи процесса загрузки другому загрузчику. На диске 3 у нас установлена некая специфическая система, которая имеет свой загрузчик, уже установленный на диске 3. В файл menu.lst вносим строки:

 

title        Specific OS
root        (hd2)
chainloader    +1

Правка закончена, но настройка не совсем.

3. Штрихи

Иногда GRUB ошибается, и создаёт ссылки на диски не так, как их определяет BIOS, т.е. в другой последовательности. Выражается это в том, что в некоторый раз, загрузив Linux, мы получаем сообщение, что корневой диск не найден, нажмите Ctrl+D для продолжения. Продолжив, мы не получаем свою домашнюю папку, т.к. диск был неверно определён GRUB (система ищет раздел sda2 на диске sda, а BIOS подключил при POST его вторым, что сказалось на GRUB, сделаший раздел диска sdb2). Нам такое решительно не подходит, и мы правим файл device.map

 

(hd0)   /dev/sda
(hd1)   /dev/sdb
(hd2)   /dev/sdc

На этом всё!