Přejít na obsah

Když Linux startuje: GRUB, nabídka systémů a záchrana po problému - LINUX PRO DOMÁCNOST - vzdělávací hub pro Linux a open-source svět

Přeskočit menu
Přeskočit menu
Přeskočit menu

Když Linux startuje: GRUB, nabídka systémů a záchrana po problému

26.03.2026

Co je GRUB a proč je „zásadní“

GRUB (GNU GRand Unified Bootloader) je zavaděč – malý program, který se spustí ještě dřív než Linux samotný a jeho úkolem je:
  • nabídnout výběr systému (Linux / Windows / jiný OS),
  • nabídnout výběr jádra Linuxu (např. nové vs. starší, „záchranné“),
  • předat řízení jádru Linuxu a initramfs (startovací „balíček“ pro načtení systému),
  • v praxi často zachránit situaci, když po změně disku, aktualizaci nebo instalaci Windows systém nenaběhne.

V praxi se při práci s GRUBem často setkáte s adresářem /boot, kde bývají uložené soubory potřebné pro start systému (například jádro Linuxu a initramfs) a také soubory související se zavaděčem. Někdy je /boot jen běžná složka uvnitř kořenového systému, jindy může být na samostatném oddílu (podobně jako /boot/efi u UEFI). Širší souvislosti, kde se v Linuxu obvykle nacházejí systémové soubory a proč, jsou vysvětleny v seriálu:

Poznámka (zkratky):
  • OS = operační systém.
  • UEFI/BIOS = firmware základní desky (nejnižší softwarová vrstva, která spustí boot).
  • ESP = EFI System Partition (oddíl pro UEFI zavaděče, typicky FAT32).
  • initramfs = úvodní „mini-systém“ v paměti, který pomůže Linuxu naběhnout (ovladače disků, šifrování, LVM ap.).
  • chroot = „přepnutí kořene“ – z live média se dočasně přepnete do prostředí nainstalovaného systému, jako byste v něm běželi přímo (hodí se pro opravy).

Ilustrační motiv k tématu GRUB: nabídka pro výběr systému (např. Linux a Windows) a nástroje symbolizující opravu startu počítače, když systém po problému nenaběhne.



1) Jak vypadá start počítače (zjednodušeně)

  1. UEFI/BIOS najde „co spustit“ (z disku/ESP nebo z MBR).
  2. Spustí se bootloader (typicky GRUB).
  3. GRUB vybere a spustí jádro Linuxu + initramfs.
  4. Linux převezme řízení a spustí uživatelský prostor (např. systemd).

Poznámka (uživatelský prostor / user space):
„Uživatelský prostor“ je část systému, která běží nad jádrem (kernelem) – tedy všechny běžné programy a služby, které používáte a které nejsou součástí jádra. Jakmile jádro inicializuje hardware a připojí kořenový souborový systém, spustí první proces (typicky systemd jako PID 1), který následně spouští další služby, přihlašování a případně grafické prostředí.



2) GRUB umí nabídnout i Windows a jiné systémy

GRUB umí do nabídky přidat i jiné OS (typicky Windows) tak, že při instalaci / aktualizaci konfigurace „prohledá“ disky a najde další zavaděče. V Linuxu to často zajišťuje nástroj os-prober a navazující skripty GRUBu.

Poznámka: Některé distribuce mají detekci jiných OS z bezpečnostních důvodů omezenou nebo vypnutou – pak je potřeba ji cíleně povolit (podle distribuce), případně přidat položku ručně.



3) Odkud GRUB bere konfiguraci (a co neupravovat)

Typicky platí:
  • Nastavení: /etc/default/grub
  • Skripty a šablony: /etc/grub.d/
  • Vygenerovaná finální konfigurace: grub.cfg (umístění se liší dle distribuce)

Důležité: grub.cfg se obvykle negeneruje ručně, ale pomocí nástrojů typu update-grub / grub-mkconfig / grub2-mkconfig. Fedora/Red Hat dokumentují, že grub.cfg vzniká z /etc/grub.d/ a /etc/default/grub.



4) Základní úpravy nabídky (prakticky pro začátečníka)

Běžné požadavky:
  • nastavit čas zobrazení menu (timeout),
  • nastavit výchozí položku,
  • přidat parametry jádra (např. když zlobí grafika).
  • Typicky se upravuje /etc/default/grub, poté se spustí regenerace konfigurace.

Poznámka (parametry jádra):
Parametry typu nomodeset, quiet, splash jsou „přepínače“ pro start Linuxu. Např. nomodeset se někdy používá, když po instalaci nenabíhá grafika.



5) Jak (bezpečně) regenerovat konfiguraci (liší se podle distribuce)

  • Debian/Ubuntu: často update-grub (interně volá grub-mkconfig)
  • Fedora/RHEL: typicky grub2-mkconfig -o … (cesta se liší pro BIOS vs UEFI)
  • Obecně existuje grub-mkconfig a související manpage.

Poznámka: Přesný příkaz a cesta pro výstupní grub.cfg se liší, proto je dobré držet se dokumentace Vaší distribuce.



6) GRUB na UEFI vs. BIOS (proč jsou opravy někdy jiné)

UEFI
  • Zavaděče jsou soubory na oddílu ESP (FAT32), typicky ve struktuře EFI/<distro>/....
  • UEFI si drží záznamy o bootu (lze spravovat i z Linuxu).

BIOS (Legacy)
  • Start je tradičně navázaný na MBR/boot sektor disku a další části zavaděče.

Poznámka: Na moderních počítačích je dnes nejčastější UEFI. U dual-bootu s Windows 10/11 je UEFI velmi běžné.


Infobox: UEFI záznamy o startu (Boot entries) – správa z Linuxu
UEFI si ukládá do své NVRAM paměti seznam „boot položek“ (např. Windows Boot Manager, Linux/GRUB) a jejich pořadí (BootOrder). Z Linuxu je můžete vypsat a upravit pomocí nástroje efibootmgr.
Příklady:
bash

						sudo efibootmgr -v
						  
(vypíše boot položky a jejich cesty na ESP, např. \EFI\Microsoft\... a \EFI\ubuntu\...)

Uvidíte něco jako:
  • Boot0001* Windows Boot Manager  HD(...) File(\EFI\Microsoft\Boot\bootmgfw.efi)
  • Boot0002* ubuntu  HD(...) File(\EFI\ubuntu\grubx64.efi)
  • BootOrder: 0001,0002
bash

						sudo efibootmgr -o 0002,0001
						  
(změní pořadí bootování – nejdřív položka 0002, pak 0001)
bash

						sudo efibootmgr -n 0001
						  
(nastaví jednorázové bootování – při příštím startu se použije položka 0001)
Poznámka: Funguje pouze pokud je systém spuštěný v režimu UEFI (ne v Legacy/BIOS).


Odebrání boot záznamu (nejjednodušší)
Než záznam smažete, ověřte si, že máte funkční alternativu (např. Windows Boot Manager nebo GRUB) a že soubor na ESP opravdu existuje.
  • (1) Nejprve si zjistíte číslo záznamu:
bash

						sudo efibootmgr -v
						  
Např. uvidíte Boot0007* ubuntu ...
  • (2) Smazání záznamu:
bash

						sudo efibootmgr -b 0007 -B
						  
  • -b 0007 = vybere záznam Boot0007
  • -B = smaže ho
Poznámka: Tím smažete jen UEFI záznam v NVRAM, ne soubory na disku.


    Přidání boot záznamu (UEFI entry)
    Musíte znát:
  • disk, kde je ESP (např. /dev/nvme0n1)
  • oddíl ESP (např. 1)
  • EFI soubor na ESP (cesta ve tvaru UEFI, s backslashi \)
    Příklad: přidat záznam pro GRUB (Ubuntu/Zorin)
bash

						sudo efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Zorin (GRUB)" -l '\EFI\ubuntu\grubx64.efi'
						  
Význam:
  • -c vytvoří nový záznam
  • -d disk s ESP
  • -p číslo oddílu ESP
  • -L popisek v UEFI menu
  • -l cesta k EFI souboru na ESP


Jak zjistit správný ESP oddíl
bash

						lsblk -f
						  
ESP bývá FAT32 a mívá mountpoint /boot/efi.

Důležitá upozornění (krátce)
  • Cesta u -l je UEFI cesta: backslash \, typicky začíná \EFI\...
  • Musíte běžet v režimu UEFI (jinak efibootmgr NVRAM neupraví)
  • Názvy adresářů na ESP závisí na distribuci (Ubuntu často \EFI\ubuntu\..., Fedora \EFI\fedora\..., Windows \EFI\Microsoft\...)



7) Oprava a obnova GRUBu – krok za krokem (pro začátečníky)

Níže jsou nejčastější scénáře. Vždy platí: pracujte pomalu, čtěte, co systém píše, a nepřepisujte naslepo zařízení /dev/sdX (např. /dev/sda, /dev/nvme0n1).


Scénář A: Po instalaci Windows Linux nenabíhá (GRUB zmizel)
Typické příznaky: Po zapnutí se rovnou spustí Windows a nabídka GRUBu se vůbec neukáže. V UEFI/BIOS je jako první možnost startu nastaven „Windows Boot Manager“.

Postup (obecný, funguje pro většinu distribucí)
  • (1) Nabootujte live USB (ideálně stejné distribuce nebo aspoň kompatibilní).
  • (2) Otevřete terminál a zjistěte disky/oddíly:
bash

						lsblk -f
						  
  • (3) Najděte:
    • kořenový oddíl Linuxu (často ext4, btrfs), např. /dev/nvme0n1p2
    • případně zvlášť /boot
    • u UEFI také ESP (FAT32), např. /dev/nvme0n1p1

STOP – ověřte si, že připojujete správný oddíl
:
Než spustíte mount, zkontrolujte v lsblk -f, že připojujete opravdu kořenový oddíl Linuxu (mountpoint /) a případně samostatné /boot a ESP (/boot/efi). Pokud připojíte jiný oddíl, následné kroky (chroot, instalace GRUBu) se provedou do špatného místa.

  • (4) Připojte systém (příklad – upravte dle sebe):
bash

						sudo mount /dev/nvme0n1p2 /mnt
						# pokud máte zvlášť /boot: 
						sudo mount /dev/nvme0n1pX /mnt/boot 
						# Poznámka: X nahraďte číslem oddílu /boot
						# u UEFI připojte ESP: 
						sudo mount /dev/nvme0n1p1 /mnt/boot/efi
						  
Příklad, když je /boot na samostatném diskovém oddílu:
  • /dev/nvme0n1p2 = / (kořen)
  • /dev/nvme0n1p1 = ESP (UEFI oddíl)
  • /dev/nvme0n1p3 = /boot

Pak by to v live systému typicky bylo:
  • sudo mount /dev/nvme0n1p2 /mnt
  • sudo mount /dev/nvme0n1p3 /mnt/boot
  • sudo mount /dev/nvme0n1p1 /mnt/boot/efi

Praktické pravidlo (srozumitelně):
  • Vždy připojte root (/) do /mnt.
  • Pokud máte samostatný /boot oddíl, připojte ho do /mnt/boot.
  • Pokud jste v UEFI, připojte ESP do /mnt/boot/efi.

A ověřit se to dá předem přes lsblk -f (uvidíte mountpointy a typy FS) nebo příkazem lsblk -p viz obrázek.
bash

						lsblk -p
						  
Ukázka rozdělení disku se samostatným /boot: Oddíl ESP (/boot/efi) slouží pro UEFI zavaděče, oddíl /boot je samostatně kvůli souborům potřebným pro start (jádra, initramfs, GRUB). Kořenový systém / je v tomto příkladu uložen až na třetím oddílu, který je navíc šifrovaný (crypt) a uvnitř používá LVM.

Výpis lsblk ukazuje disk /dev/nvme0n1 se samostatnými oddíly: p1 připojený jako /boot/efi (ESP), p2 jako /boot a p3 šifrovaný (crypt) s LVM, kde je kořenový systém / a swap.
  • (5) Připravte „chroot“ prostředí:
bash

						sudo mkdir -p /mnt/dev /mnt/proc /mnt/sys
						sudo mount --bind /dev /mnt/dev
						sudo mount --bind /proc /mnt/proc
						sudo mount --bind /sys /mnt/sys
						sudo chroot /mnt
						  
Poznámka:
    • Ve většině instalací už tyto adresáře v připojeném systému existují. Pokud ne, vytvořte je pomocí „mkdir -p“.
    • --bind zpřístupní existující strom /dev (stejně tak /proc a /sys) i uvnitř připojeného systému, aby chroot měl přístup k zařízením a informacím z běžícího jádra. Bez --bind by mount selhal a opravy v chrootu často nefungují.
    • chroot /mnt dočasně nastaví /mnt jako nový kořenový adresář (/) a spustí shell „uvnitř“ nainstalovaného systému; předchozí cd /mnt není potřeba, protože chroot pracuje s cestou, kterou mu předáte.

  • (6) Znovu nainstalujte GRUB a vygenerujte konfiguraci:
      • STOP – ještě jednou ověřte, že jste v chrootu správného systému. Před grub-install si ověřte, že ls / ukazuje strukturu nainstalovaného systému a že máte správně připojené /boot a (u UEFI) /boot/efi.
    • Debian/Ubuntu (UEFI typicky):
bash

						grub-install
						  
    • Parametry se mohou lišit dle distribuce/instalace. Na UEFI často použijte rychlý postup ve Scénáři C níže.
bash

						update-grub
						# (nebo grub-mkconfig -o ...)
						  
    • Fedora/RHEL: držte se fedora dokumentace pro grub2 (instalace/konfigurace) a generování grub.cfg.

  • (7) Ukončete chroot a odpojte:
bash

						exit
						sudo umount -R /mnt
						  
  • (8) Restartujte a v UEFI nastavte, aby se bootovalo správné „Linux“/distro položky.
    • Poznámka: Pokud GRUB po opravě nenajde Windows, bývá potřeba doinstalovat/povolit detekci dalších systémů (os-prober) a znovu vygenerovat konfiguraci. Podrobný postup je uveden níže v bodě 9.


Scénář B: Po aktualizaci / změně disku skončíte na „grub rescue>“
Typické příznaky: Místo nabídky GRUBu se zobrazí černá obrazovka s textem grub rescue> nebo hlášky typu „no such partition / unknown filesystem“. Systém se dál nespustí.

Rychlá záchrana přímo z GRUB konzole (nouzové nabootování)
Cíl: najít oddíl s /boot nebo se systémem, ručně ukázat GRUBu cestu a nabootovat.

1) V konzoli napište:
bash

						ls
						  
  • Uvidíte seznam zařízení/oddílů typu (hd0,gpt1) (hd0,gpt2) ...

2) Zkoušejte vypsat obsah oddílů:
bash

						ls (hd0,gpt2)/
						  
  • Hledejte složky jako boot, grub, vmlinuz, initrd ap.

3) Pokud najdete GRUB adresář (např. /boot/grub), nastavte:
bash

						set root=(hd0,gpt2)
						set prefix=(hd0,gpt2)/boot/grub
						insmod normal
						normal
						  
Tím se často vrátíte do normálního menu. Pak proveďte „trvalou“ opravu podle scénáře A (chroot + reinstall + regenerace).

Poznámka: Přesné cesty se liší podle toho, zda máte zvlášť /boot, zda používáte Btrfs subvolume ap.

Poznámka: Označení typu (hd0,gpt1) je způsob, jak GRUB pojmenovává disky a oddíly. Nezáleží na tom, zda jde o HDD, SSD nebo NVMe – NVMe disk (/dev/nvme0n1) se v GRUBu také zobrazí jako (hd0) a jeho oddíly jako gpt1, gpt2 atd. Pořadí (hd0), (hd1) přitom nemusí vždy odpovídat tomu, jak disky vidí Linux, proto je nejjistější oddíl poznat podle jeho obsahu pomocí ls (hdX,gptY)/.

Z historického hlediska se můžete setkat i s označením msdos1, msdos2 ap. – to znamená, že disk používá starší tabulku oddílů MBR (v nástrojích se často zobrazuje jako „msdos“). Dnes je u moderních počítačů s UEFI běžnější GPT, ale MBR není jen historie: stále se s ním můžete potkat u starších strojů (Legacy BIOS), u starších instalací Linuxu/Windows, nebo u některých USB disků.


Scénář C: UEFI nabíhá, ale „Linux položka“ zmizela (nebo je špatně)
Typické příznaky: Po zapnutí UEFI nabídne jen Windows Boot Manager, případně hlásí „No bootable device / Missing operating system“. Linux je na disku stále přítomný, ale UEFI na něj neukazuje správným záznamem.

Obecný postup:
  1. Z live systému připojte ESP (FAT32) a zkontrolujte, zda tam existují soubory EFI/<distro>/...
  2. Pak v chrootu proveďte reinstall GRUBu pro UEFI a regeneraci konfigurace (viz scénář A).

Poznámka (ESP): ESP je „boot oddíl“ pro UEFI. Když se přepíše/poškodí, systém může být funkční, ale UEFI nemá co spustit.

Rychlý postup (Debian/Ubuntu/Zorin, UEFI):
(Předpoklad: jste v prostředí chroot /mnt a máte připojené /boot/efi podle Scénáře A. Detaily jednotlivých kroků viz Scénář A.)
bash

						grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
						update-grub
						  
Poznámka: Pokud používáte Secure Boot nebo máte nestandardní instalaci, může se postup lišit; v takovém případě se držte vysvětlení a kontrolních kroků ve Scénáři A.



8) Mini „tahák“ (co si odnést)




9) GRUB nenajde Windows: os-prober a obnova položky v nabídce (krok za krokem)

Pokud Linux po opravě GRUBu normálně naběhne, ale v nabídce GRUBu chybí položka pro Windows, bývá příčina v tom, že je vypnutá detekce dalších operačních systémů nebo chybí nástroj os-prober. Následující postup ukazuje typické řešení na Debian/Ubuntu/Zorin.

  • (1) Ověřte, že je Windows oddíl vidět (jen kontrola):
bash

						sudo lsblk -f
						  
  • (2) Doinstalujte os-prober (pokud chybí):
bash

						sudo apt update
						sudo apt install os-prober
						  
  • (3) Povolte detekci dalších OS v GRUBu (pokud je vypnutá):
    • otevřete soubor:
bash

						sudo nano /etc/default/grub
						  
    • přidejte nebo upravte řádek:
bash

						GRUB_DISABLE_OS_PROBER=false
						  
  • (4) Nechte znovu vygenerovat konfiguraci GRUBu:
bash

						sudo update-grub
						  
  • (5) Restartujte počítač a zkontrolujte, zda se Windows v nabídce objevilo.

  • Poznámka: Na některých distribucích může být detekce jiných OS záměrně vypnutá z bezpečnostních důvodů. Pokud Windows stejně nenajde, bývá příčina v tom, že Windows a Linux nejsou nainstalované ve stejném režimu bootu (UEFI vs. Legacy/BIOS), nebo je Windows boot záznam v UEFI poškozený.

    Upozornění: Soubor /etc/default/grub upravujte opatrně. Dbejte na správnou syntaxi (uvozovky, žádné překlepy) a měňte jen řádky, kterým rozumíte. Po úpravě vždy vygenerujte novou konfiguraci GRUBu (např. sudo update-grub). Pokud si nejste jistí, udělejte si před změnou zálohu:
bash

						sudo cp /etc/default/grub /etc/default/grub.bak
						  
Nezapomeňte, že změny se projeví až po regeneraci konfigurace a restartu.

Související článek:
Pokud právě řešíte hlavně to, jak nabídku GRUB na svém počítači vyvolat, podívejte se také na samostatný návod „Jak se dostat do GRUBu: všechny praktické cesty z Linuxu, z BIOSu/UEFI i při problému“. Najdete v něm přehled nejběžnějších možností, jako jsou klávesy Esc, Shift nebo F4, trvalé zapnutí nabídky GRUB z Linuxu i praktické poznámky k situacím, kdy se místo GRUBu otevře BIOS/UEFI.



Zdroje:



PODPOŘTE OTEVŘENÉ NÁVODY A DALŠÍ ROZVOJ WEBU LINUX PRO DOMÁCNOST:

Věřím v otevřené znalosti. Každý návod = rešerše, testování na reálném nebo virtuálním počítači a různých Linux distribucích (např.: Rocky / Debian / Zorin / a další), psaní krok za krokem a finální kontrola — typicky několik hodin až několik dnů práce. Web držím bez reklam i trackingu a chci, aby tak zůstal.

Pokud vám jakýkoli článek ušetří čas nebo nervy, budu rád za dobrovolnou podporu (částku si určíte sami). Prosím, do zprávy pro příjemce napište: NA KAFE / Linux-doma.cz, pomůže mi to přehledně zaúčtovat měsíční souhrn. Děkuji!

A pokud se Vám web líbí a chcete se stát pravidelným sponzorem, podívejte se prosím na stránku "SPONZOŘI".
BANKOVNÍ PŘEVOD /
QR PLATBA (bez částky)

QR platba (bez částky) – bankovní převod – Linux-doma.cz

  • Číslo účtu (CZK): 2000197842 / 2010
  • IBAN: CZ41 2010 0000 0020 0019 7842
  • BIC/SWIFT: FIOBCZPPXXX
  • Zpráva pro příjemce: NA KAFE / Linux-doma.cz

BITLIFI / QR PLATBA (bez částky)

QR platba (bez částky) – Bitlifi – Linux-doma.cz

  • Uživatel: +420607271333@bitlifi.com
  • Poznámka: NA KAFE / Linux-doma.cz
© 2025–2026 Miroslav Zakřevský / LINUX PRO DOMÁCNOST (linux-doma.cz). Všechna práva vyhrazena. Citace povoleny s uvedením zdroje.
Návrat na obsah