Úvod
GRUB (Grand Unified Bootloader) je nástroj pro zavádění a načítání jader operačního systému a výchozí zavaděč pro systémy založené na jádře Linuxu. I když běží jako první, když je počítač zapnutý, běžní uživatelé vidí GRUB v akci jen zřídka. Funguje automaticky a nevyžaduje žádný zásah uživatele.
Při pokusu o zavedení jiného operačního systému vedle Linuxu na stejném počítači však zavaděč jiného systému může přepsat GRUB, což má za následek nemožnost spuštění systému Linux.
Tento článek vám ukáže, jak opravit selhání spouštění systému Linux pomocí příkazů GRUB Rescue a nástroje Boot Repair.
Předpoklady
- Účet s právy sudo.
- Přístup k příkazovému řádku.
Problémy se zaváděním GRUB
Nejčastějším důvodem, proč GRUB nenabootuje do operačního systému, je zavaděč jiného OS, který přepíše konfiguraci spouštění GRUB. Problém nastává při pokusu o duální spouštění s existující instalací Linuxu. Dalším důvodem je náhodné odstranění konfiguračních souborů GRUB.
Když GRUB není schopen zavést systém, objeví se výzva GRUB Rescue.
Výše uvedený příklad ukazuje, že GRUB zobrazuje chybu „žádný takový oddíl“ před zobrazením grub rescue
výzva. Další běžnou chybou GRUB je „neznámý souborový systém“, po kterém následuje stejná výzva.
Někdy se na obrazovce může zobrazit grub
pouze výzva.
Příkazy záchrany GRUB
Níže je uveden seznam běžně používaných příkazů GRUB Rescue. Použijte příkazy ve výzvách zmíněných v předchozí části.
Příkaz | Popis | Příklad |
---|---|---|
boot | Spusťte bootování (klávesové zkratky:F10 , CTRL + x ). | Příkaz je zadán bez argumentů. |
cat | Zapište obsah souboru na standardní výstup. | cat (hd0,1)/boot/grub/grub.cfg |
configfile | Načtěte konfigurační soubor. | configfile (hd0,1)/boot/grub/grub.cfg |
initrd | Načtěte soubor initrd.img. | initrd (hd0,1)/initrd.img |
insmod | Načíst modul. | insmod (hd0,1)/boot/grub/normal.mod |
loopback | Připojte soubor obrázku jako zařízení. | loopback loop0 (hd0,1)/iso/image.iso |
ls | Zobrazí obsah adresáře nebo oddílu. | ls (hd0,1) |
lsmod | Zobrazit seznam načtených modulů. | Příkaz je zadán bez argumentů. |
normal | Aktivujte normální modul. | Příkaz je zadán bez argumentů. |
search | Vyhledejte zařízení. Možnost --file vyhledává soubory, --label vyhledává štítky, --fs-uuid hledá UUID souborového systému. | search -file [filename] |
set | Nastavte proměnnou prostředí. Pokud je zadán bez argumentů, příkaz vypíše seznam všech proměnných prostředí a jejich hodnot. | set [variable-name]=[value] |
Oprava selhání spouštění
Tento návod popisuje dva způsoby řešení problémů se zaváděním GRUB pomocí výzvy GRUB Rescue a Nástroj pro opravu spouštění .
Přes terminál Grub
1. Pro zobrazení proměnných prostředí použijte příkaz set bez argumentů:
set
Příklad výstupu ukazuje, že GRUB je nastaven tak, aby se spouštěl z (hd0,msdos3)
oddíl:
2. Příkaz ls zobrazí seznam dostupných oddílů na disku.
ls
Výstup zobrazuje seznam oddílů.
Použijte ls
k nalezení oddílu obsahujícího boot
adresář.
ls [partition-name]
Příklad ukazuje boot
adresář v (hd0,msdos1)
oddíl.
3. Nastavte spouštěcí oddíl jako hodnotu root
variabilní. V příkladu je použit oddíl s názvem (hd0,msdos1)
.
set root=(hd0,msdos1)
4. Načtěte normal
spouštěcí režim.
insmod normal
5. Spusťte normal
spouštěcí režim.
normal
normal
režim umožňuje zadávat složitější příkazy.
6. Načtěte linuxové jádro pomocí linux
příkaz.
linux /boot/vmlinuz-4.2.0-16-generic root=/dev/sda1 ro
7. Spusťte boot
příkaz.
boot
Systém se nyní spustí správně.
Prostřednictvím živého obrazu
Dalším způsobem, jak vyřešit problémy se zaváděním GRUBu, je použít živý obraz Linuxu ke spuštění z externího zařízení.
1. Stáhněte si živý instalační program Linuxu. Tento příklad používá obraz ISO Ubuntu 20.04.
2. Pomocí nástroje, jako je Etcher, zapište obraz Linuxu na SD kartu nebo USB flash disk.
3. Vložte spouštěcí zařízení a spusťte počítač.
4. Vyberte Vyzkoušet Ubuntu na uvítací obrazovce.
5. Když se živý systém spustí, připojte se k internetu.
6. Otevřete terminál a zadejte následující příkaz pro přidání úložiště pro nástroj Boot Repair.
sudo add-apt-repository ppa:yannubuntu/boot-repair
Stiskněte Enter a počkejte, až bude úložiště přidáno.
7. Aktualizujte úložiště.
sudo apt update
8. Nainstalujte nástroj Boot Repair.
sudo apt install boot-repair
9. Spusťte nástroj Boot Repair přes terminál.
boot-repair
10. Vyberte Doporučená oprava .
Počkejte, až nástroj dokončí opravu bootloaderu.
Aktualizace konfiguračního souboru GRUB
Když se systém úspěšně spustí, ujistěte se, že konfigurace GRUB je aktuální.
Spusťte tento příkaz:
update-grub
Přeinstalování GRUB
Chcete-li znovu nainstalovat GRUB na váš systém Linux, postupujte podle následujících kroků.
1. Připojte oddíl obsahující instalaci OS. Příklad připojí /dev/sda1
oddíl na /mnt
adresář.
sudo mount /dev/sda1 /mnt
2. Svažte /dev
, /dev/pts
, /proc
a /sys
adresářů do odpovídajících adresářů v /mnt
složka.
sudo mount --bind /dev /mnt/dev &&
sudo mount --bind /dev/pts /mnt/dev/pts &&
sudo mount --bind /proc /mnt/proc &&
sudo mount --bind /sys /mnt/sys
3. Nainstalujte GRUB.
sudo grub-install -root-directory=/mnt/ /dev/sda
4. Po úspěšném dokončení instalace odpojte adresáře.
sudo umount /mnt/sys &&
sudo umount /mnt/proc &&
sudo umount /mnt/dev/pts &&
sudo umount /mnt/dev &&
sudo umount /mnt