7.5. Konfiguracja GRUB-a

GRUB (GRand Unified Bootloader) jest stosunkowo nowym menadżerem bootowania (ang. bootmanager) o znacznie większych możliwościach niż program LILO (LILO opisuje Sekcja 7.7). Dość wspomnieć, że wszystkie opcje bootowania można zmodyfikować ręcznie w trakcie procesu bootowania (GRUB ma własną prostą "powłokę" dostępną w trakcie bootowania), oraz możliwe jest (i stosunkowo łatwe) robienie rzeczy niestandardowych (typu migracja z jednego dysku na inny, przełączanie z mastera na slave'a itd.). Ponadto, GRUB jest dobrze udokumentowany - opis systemu jest standardowo obecny we współczesnych dystrybucjach w postaci texinfo (można więc wydać komendę: info grub, żeby dowiedzieć się czegoś więcej o systemie). Również w sieci nie brakuje interesujących dokumentów. Przykłady to m.in.: Multiboot with GRUB Mini-HOWTO oraz Linux+Win9x+Grub HOWTO.

Podobnie jak w systemie LILO, na działanie GRUB-a można wpływać modyfikując pliki konfiguracyjne. W przeciwieństwie do LILO jednak, pliki te odczytywane są każdorazowo z dysku, a nie instalowane do bootsectora zawsze, gdy zmieniane jest cokolwiek w konfiguracji (tak, tak - oznacza to, że GRUB potrafi "zajrzeć" wewnątrz systemu plików). Z tego powodu pliki konfiguracyjne GRUB-a znajdują się w katalogu /boot.

Najbardziej istotnym plikiem konfiguracyjnym systemu GRUB jest /boot/grub/menu.lst. To tu opisane są wszystkie systemy operacyjne uruchamiane przez GRUB-a. Pierwsza część pliku to opcje globalne - w tej części nie należy zwykle nic zmieniać. W drugiej części pliku opisane są systemy operacyjne, które pojawią się w menu menadżera bootowania po uruchomieniu komputera. Każda z sekcji rozpoczyna się od słowa title. Kolejność sekcji jest istotna - wpływa na kolejność wierszy w menu menadżera bootowania. Przykładowa sekcja ma postać jak poniżej:

title           Debian GNU/Linux, kernel 2.6.2-1-686
 root            (hd0,0)
 kernel          /boot/vmlinuz-2.6.2-1-686 root=/dev/sda1 ro
 initrd          /boot/initrd.img-2.6.2-1-686
 savedefault
 boot
W lewej kolumnie są zmienne (title, root, kernel itd.), a w prawej kolumnie ich wartości. Znaczenie poszczególnych zmiennych jest następujące:

W przypadku dodawania systemów operacyjnych Windows nie określamy lokalizacji jądra systemu, a partycję z lokalnym windowsowym programem bootującym (umieszczonym w bootsektorze partycji). Program ten następnie uruchamia jądro Windowsa i resztę systemu. Poniżej pokazano konfigurację GRUB-a dla Windowsa zainstalowanego na trzeciej partycji pierwszego dysku:
title Windows 9x
 rootnoverify (hd0,2)
 chainloader +1
Uwaga! Jeżeli GRUB nie był wcześniej instalowany na danej maszynie (w sytuacji, gdy np. przechodzimy z systemu LILO na system GRUB) to należy GRUB-a zainstalować. Robi się to przez wydanie komendy grub-install <partycja do zainstalowania>, np. grub-install /dev/hda.

Uwaga(2)! W celu konfiguracji GRUB-a w Debianie można się posłużyć skryptem do generowania pliku menu.lst. Opis znajduje się tutaj.