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 bootW lewej kolumnie są zmienne (title, root, kernel itd.), a w prawej kolumnie ich wartości. Znaczenie poszczególnych zmiennych jest następujące:
title jest tekstem, który pojawi się z menu wyboru menadżera bootowania. Ponieważ tekst ów nie wpływa na funkcjonalność systemu, może być dowolnym ciągiem znaków (np. "Moj ulubiony system - Debian", "RedHat Aurox, jadro 2.6.2" itp.). Warto jednak, szczególnie przy rozbudowanych menu, żeby poszczególne wiersze były łatwo rozróżnialne.
root opisuje dysk i partycję, na której znajduje się katalog /boot/ z konfiguracją systemu GRUB (uwaga! Niekoniecznie będzie to główna partycja systemu plików).
Należy zwrócić uwagę na to, że GRUB korzysta ze specyficznego nazewnictwa dla dysków i ich partycji. Kolejne dyski są oznaczane jako hd<numer>, gdzie <numer> to indeks twardego dysku (uwaga! Indeksujemy od zera!), np.: hd0 to linuksowy /dev/hda, hd1 to linuksowy /dev/hdb itd. Grub nie rozróżnia dysków ATA/SATA/SCSI - wszystkie są nazywane hdX. Do dyskietek odwołujemy się przez fd0.
Druga liczba (ta po przecinku) to oznaczenie numeru partycji (również liczone od zera). W przykładzie powyżej (dysk oznaczony jako (hd0,0)) odwołujemy się do pierwszego dysku i jego pierwszej partycji (w standardowym linuksowym systemie plików do partycji tej odwoływalibyśmy się poprzez /dev/hda1).
Uwaga! Dyski z rozszerzonych partycji numerowane są od czwórki - czyli pierwszą partycją extended będzie (hd0,4).
kernel to ścieżka do pliku z jądrem systemu operacyjnego.
initrd to ścieżka do ramdysku ładowanego przy starcie systemu (Uwaga! Ramdysk musi być w 100% kompatybilny z jądrem).
savedefault to opcja oznaczająca, że dla tego systemu operacyjnego nasz wybór zostanie zapamiętamy i automatycznie podświetlony następnym razem (Uwaga! Żeby ten mechanizm zadziałał wymagana jest globalna opcja default saved).
title Windows 9x rootnoverify (hd0,2) chainloader +1Uwaga! 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.
Poprzedni | Spis treści | Następny |
Szablony katalogów domowych (/etc/skel) | Początek rozdziału | Przywracanie GRUB'a po instalacji Windows |