GRUB /Grand Unified Bootloader/ jest programem rozruchowym za pomocą, którego można uruchomić wiele systemów operacyjnych tj. Windows, Linux, FreeBSD, DOS i inne.


GRUB odczytuje różne systemy plików zarówno FAT jak i ext2, MINIX, FAT, FFS, ReiserFS, XFS i JFS. Dzięki temu istnieje możliwość wczytania jądra danego systemu operacyjnego.
GRUB posiada możliwość ładowania systemu bezpośrednio z danego urządzenia, współpracuje z zabezpieczeniami (hasła do systemów) oraz ma możliwość uruchomienia powłoki (Linux).
Obecnie w fazie rozwoju znajduje się jego 2 wersja. Zmiany dotyczą m.in. takich obszarów jak:
Dużą zaletą GRUB-a jest możliwość zmiany konfiguracji startowej z poziomu działającego bootloadera. Po uruchomieniu bootloadera wystarczy przejść w tryb edycji (klawisz E). Za pomocą edytora można dokonywać odpowiednich zmian i uruchomić system.
GRUB za pomocą Biosu sprawdza dostępne dyski i numeruje je zaczynając od 0 czyli mając dwa lub więcej dysków otrzymujemy takie nazwy jak hd0, hd1,hd2,0,hd2,1 …
Druga liczba po przecinku to partycja występująca na dysku.
Konfigurację Gruba przeprowadzamy w pliku zlokalizowanym w /boot/grub/menu.lst. Ważne jest, aby po jego każdej zmianie dokonać jego reinstalacji w MBR/bootsektorze dysku poleceniem sudo update-grub.
Konfiguracja GRUB-a dzielimy na:
Poniżej przedstawiona została przykładowa konfiguracja:
(Pogrubioną czcionką wyróżniliśmy sekcję główną)
default=0
timeout 15
title Linux System Operacyjny
root (hd0,0)
kernel /boot/vmlinuz root=/dev/hda1
initrd /boot/initrd
savedefault
timeout w sekcji głównej to czas w sekundach oczekiwania na reakcję/wybór systemu przez użytkownika.
W przypadku kilku obrazów pierwszy obraz wymieniony w pliku jest domyślny. Aby to zmienić wystarczy dopisać np. default 0 (pamiętaj o numeracji od 0 !).
title to jego etykieta, nazwa systemu wyświetlana w menu managera. Możemy używać polskich znaków gdyż nie wpływa to na działanie programu.
root(hd0,0) wskazuje partycję, na której GRUB będzie szukał swoich plików konfiguracyjnych ( katalog /boot). Co ważne – nie zawsz jest to partycja główna !
kernel i initrd to ścieżki dostępu do plików jąda i ramdysku uruchamianego przy starcie (brak wskazania konkretnej partycji oznacza odwołanie do hd0,0).
savedefault jest opcją zapamietania wyboru i automatycznego podświetlenia przy następnym uruchomieniu.
Aby zainstalować Grub (system Linux) musimy uruchomić program grub, wskazać lokalizację plików Gruba (root) a następnie wydać polecenie setup z właściwym parametrem np. setup (hd0)
Jak dodać inne systemy operacyjne do menu Gruba?
Jeżeli mamy zainstalowany drugi system operacyjny np. Windows na 2 partycji dysku to do pliku /boot/grub/menu.lst dopisujemy:
title WindowsXP/drugisystem
rootnoverify (hd0,1)
chainloader +1
W przypadku dodawania systemów operacyjnych Windows nie należy określać lokalizacji jądra systemu tylko partycję z windowsowym programem bootującym.
Istnieje możliwość pracy konsoli w większej rozdzielczości. Zmiany takiej dokonujemy wprowadzając parametr vga=0x303 (numer trybu graficznego dla danej rozdzielczości i głębi koloru) do linii dotyczącej kernela. Poniżej tabela z wykazem dostępnych opcji.
| Głębia koloru | 640x480 | 800x600 | 1024x768 | 1280x1024 |
| 256 (8 bit) | 0x301 | 0x303 | 0x305 | 0x307 |
| 32k (15 bit) | 0x310 |
0x313 | 0x316 | 0x319 |
| 65k (16 bit) | 0x311 | 0x314 | 0x317 |
0x31A |
| 16M (24 bit) | 0x312 | 0x315 | 0x318 |
0x31B |
Wpisując vga=ask jądro podczas startu pozwala wybrać jeden w dostępnych trybów poprzez wyświetlenie listy.
Przykładowy pełny plik konfiguracyjny:
default=0
timeout 15
title Linux, kernel 2.4.2-1-386
root (hd1,0)
kernel /boot/vmlinuz-2.4.2-1-386 root=/dev/sda1
initrd /boot/initrd.img-2.4.2-1-386
savedefault
boot
title WindowsXP/drugisystem
rootnoverify (hd1,1)
chainloader +1
Gdy Grub nie działa prawidłowo i udostępniona jest tylko linia komend można wydać polecenie:
boot rootnoverify (hd1,1) chainloader +1 boot
Gdy na dysku mamy Windows oraz Linux i ponownie zainstalujemy Windowsa to nie będziemy mogli uruchomić Gruba, gdyż MBR został zajęty przez bootloader windowsowy.
Ważne ! Nie oznacza to, że system Linux został skasowany.
Aby przywrócić menu managera należy uruchomić Linux z płyty instalacyjnej i gdy wystaruje wpisać linux rescue. Następnie należy wpisać poniższe polecenia:
1) chroot /mnt/sysimage
2) grub-install /dev/hd0 <- za hd0 należy podać dysk z plikami Gruba
3) exit
4) exit