GNU GRUB (zkráceně „GRUB“) je zavaděč z projektu GNU. GRUB je hlavním příkladem specifikace Multiboot, která umožňuje uživateli mít v počítači více operačních systémů najednou a vybrat si, který z nich se spustí při startu počítače. GRUB lze použít k výběru z různých obrazů jádra dostupných na oddílech určitého operačního systému a také k předávání parametrů při zavádění těmto jádrům.
Co je Multiboot a jak s ním GRUB pracuje
Multiboot je specifikace, která definuje, jak zavaděč předá řízení jádru operačního systému. GRUB implementuje tuto specifikaci (Multiboot a Multiboot2) a umí tak přímo zavádět jádra, která jsou s těmito specifikacemi kompatibilní, nebo použít tzv. chainloading k předání řízení jinému zavaděči (např. Windows bootloaderu). Díky tomu je GRUB oblíbený při provozu více operačních systémů na jednom stroji.
Kde a jak se GRUB instaluje
- V klasickém BIOS/MBR režimu se GRUB obvykle instaluje do MBR nebo do oblasti po MBR (post-MBR gap) a nahrává tzv. stage komponenty na disk.
- V UEFI režimu se GRUB instaluje jako spustitelný soubor (např. /boot/efi/EFI/
/grubx64.efi) v EFI System Partition (ESP). - Instalace se provádí nástroji grub-install (pro instalaci) a grub-mkconfig nebo distribučně specifickými skripty (např. update-grub v Debian/Ubuntu) pro vytvoření konfiguračního souboru.
Konfigurace GRUBu
Konfigurační soubor GRUBu bývá obvykle generovaný a jeho hlavní výstupní soubor je /boot/grub/grub.cfg. Tento soubor se často nevytváří přímo ručně, ale pomocí skriptů v adresáři /etc/grub.d/ a nastavení v /etc/default/grub. Základní workflow:
- Upravíte /etc/default/grub (časový limit, výchozí položka, možnosti jádra apod.).
- Přidáte vlastní položky do /etc/grub.d/40_custom nebo vytvoříte vlastní skript.
- Spustíte grub-mkconfig -o /boot/grub/grub.cfg nebo distribučně: update-grub.
Položky menu (menuentry) odkazují na jádro a initramfs, případně používají chainloading pro jiné bootloadery. GRUB podporuje proměnné, podmínky a vlastní příkazy v cfg souboru.
Hlavní funkce a možnosti
- Multiboot: zavádění různých jáder a OS.
- Chainloading: předání spouštění jinému zavaděči (užitečné pro Windows).
- Podpora souborových systémů: ext2/3/4, Btrfs, XFS, FAT, NTFS (omezeně), a další — GRUB dokáže načíst jádra přímo z oddílu.
- Moduly: GRUB má modulární architekturu (např. cryptodisk, lvm, raid), které se načítají podle potřeby.
- Grafické menu a témata: podpora témat, obrázkového pozadí a rozvržení menu.
- Zabezpečení: možnost nastavit hesla pro editaci nebo zavádění položek (pomocí grub-mkpasswd-pbkdf2 a direktiv set superusers).
- Podpora šifrovaných disků: pomocí modulu cryptodisk může GRUB načíst jádro z LUKS-zašifrovaného oddílu (omezeně, závisí na verzi).
Záchranný režim a řešení problémů
Pokud GRUB selže nebo se zobrazí prompt (grub rescue nebo grub>), lze často obnovit boot takto:
- Spustit počítač z live média (Live CD/USB), připojit root oddíl a znovu spustit grub-install a grub-mkconfig / update-grub.
- V režimu grub> lze přímo zadat příkazy pro nastavení root, načtení modulu a spuštění kernelu (set root=(hd0,1); linux /vmlinuz root=/dev/sda1; initrd /initrd.img; boot).
- V případě chybově generovaného grub.cfg je vhodné zkontrolovat skripty v /etc/grub.d a /etc/default/grub.
Nejčastěji používané příkazy
- grub-install <device> — nainstaluje GRUB na specifikované zařízení (např. /dev/sda nebo EFI partition).
- grub-mkconfig -o /boot/grub/grub.cfg — vygeneruje konfigurační soubor.
- update-grub — zástupný skript na Debian/Ubuntu, volá grub-mkconfig.
- V interaktivním režimu: ls, set, insmod, linux, initrd, boot.
UEFI, Secure Boot a kompatibilita
V UEFI režimu se GRUB spouští jako EFI aplikace. Na systémech s Secure Boot může být potřeba podpis GRUBu a modulů — distribuce obvykle dodávají podepsané verze (grubx64.efi) nebo používají shim. Uživatelé, kteří instalují vlastní GRUB, mohou Secure Boot vypnout nebo nahradit podpis podle potřeby.
Tipy pro více operačních systémů (Multiboot)
- Při instalaci Windows i Linuxu instalujte Windows nejprve, poté Linux; GRUB obvykle správně detekuje Windows a přidá položku do menu.
- Pokud používáte LVM nebo RAID, ujistěte se, že GRUB podporuje danou konfiguraci (nainstalujte modul lvm/raid před generováním konfigurace).
- Pro speciální položky (starší jádra, recovery) přidejte vlastní menuentry do /etc/grub.d/40_custom.
GRUB je mocný a flexibilní nástroj pro správu spuštění systému. Pro běžné použití vystačí s automaticky generovanými konfiguracemi distribuce, ale má i bohaté možnosti pro pokročilé scenáře — od zavádění více jáder až po šifrované nebo LVM/RAID konfigurace.



