GNU GRUB: Přehled zavaděče a Multibootu pro více OS
GNU GRUB — srozumitelný přehled zavaděče a Multibootu: jak spravovat více OS, volit jádra a předávat boot parametry pro bezpečné a flexibilní spuštění.
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.
Funkčnost
Po zapnutí počítače systém BIOS vyhledá primární zaváděcí zařízení (obvykle pevný disk počítače) a načte počáteční zaváděcí program z hlavního zaváděcího záznamu (MBR), prvních 512 bajtů pevného disku, a poté přenese řízení na tento kód.
MBR obsahuje GRUB ve fázi 1. Vzhledem k malé velikosti MBR načte fáze 1 pouze další fázi GRUBu (která může být fyzicky jinde na disku). Fáze 1 může načíst buď přímo fázi 2, nebo fázi 1.5: Fáze 1.5 systému GRUB se nachází v prvních 30 kilobajtech pevného disku bezprostředně za MBR. Stupeň 1.5 načte stupeň 2.
Když systém GRUB Stage 2 získá kontrolu, nabídne uživateli rozhraní pro výběr operačního systému, který se má spustit. To má obvykle podobu grafické nabídky, pokud však není k dispozici nebo si uživatel přeje další kontrolu, má GRUB vlastní příkazový řádek, kde může uživatel ručně zadat parametry spouštění. GRUB lze také nastavit tak, aby po uplynutí časového limitu automaticky načetl určité jádro.
Po výběru možností spouštění načte GRUB vybrané jádro do paměti a předá řízení jádru, které pak pokračuje ve spouštění. V této fázi může GRUB také předat řízení zaváděcího procesu jinému zavaděči pomocí řetězového načítání pro operační systémy, jako je Windows, které nepodporují standard Multiboot. V tomto případě byly do systému GRUB uloženy kopie zaváděcích programů jiného systému; místo jádra se načte jiný systém, jako by byl spuštěn z MBR. Může se jednat o dalšího správce zavádění, například o zaváděcí nabídku společnosti Microsoft, která umožňuje další výběr operačních systémů, které nejsou v systému Multiboot. (Toto chování je často automatické, když jsou moderní distribuce Linuxu instalovány "nad" stávajícími systémy Windows, což uživateli umožňuje zachovat původní operační systém beze změn, včetně systémů, které obsahují více verzí Windows).

GNU GRUB na pevných discích s oddílem MBR

GNU GRUB na pevných discích s oddíly GPT

Soubor boot.img má přesnou velikost 446 bajtů a je zapsán do MBR (sektor 0). core.img je zapsán do prázdných sektorů mezi MBR a prvním oddílem, pokud jsou k dispozici (ze starších důvodů začíná první oddíl v sektoru 63 místo v sektoru 1, ale není to povinné). Adresář /boot/grub může být umístěn na samostatném oddílu nebo na oddílu /.
Související stránky
- Porovnání zavaděčů
- bootman
- Das U-Boot Univerzální zavaděč
- EasyBCD
- elilo
- GRLDR
- LILO
- Balíček Ncurses a Ncurses pro Windows v GnuWin32
- NTLDR
- SILO
- BCD
- xOSL Extended Operating System Loader
Otázky a odpovědi
Otázka: Co je GNU GRUB?
Odpověď: GNU GRUB je balíček zavaděče z projektu GNU.
Otázka: Co znamená GRUB?
A: GRUB znamená "GNU GRUB".
Otázka: Co umožňuje uživateli specifikace Multiboot?
Odpověď: Specifikace Multiboot 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 spuštění počítače.
Otázka: K čemu lze GRUB použít?
Odpověď: GRUB lze použít k výběru z různých obrazů jader 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.
Otázka: Je GRUB jediným dostupným balíčkem zavaděče?
Odpověď: Ne, k dispozici jsou i další balíčky zavaděčů.
Otázka: Lze GRUB používat pouze s jedním operačním systémem v počítači?
Odpověď: Ano, GRUB lze v počítači používat pouze s jedním operačním systémem.
Otázka: Jaká je hlavní výhoda používání systému GRUB?
Odpověď: Hlavní výhodou použití systému GRUB je, že umožňuje uživateli mít v počítači více operačních systémů a vybrat si, který z nich se spustí při spuštění počítače.
Vyhledávání