Když jsem před mnoha lety začínal s Linuxem, mojí černou můrou se na nějakou dobu stala černá přihlašovací obrazovka, která si po mně žádala uživatelské jméno. Já jsem tehdy dobře věděl, že do grafického prostředí se v tu chvíli už nedostanu. Po několika bláhových a neúspěšných restartech jsem sáhl po instalačním CD a systém raději nainstaloval znovu.
Právě proto jsem se velmi záhy naučil dávat /home na samostatný oddíl. Nebavilo mě totiž neustále obnovovat data ze zálohy. Časem jsem ale zjistil, že podobné situace nemusí být pověstným strašákem pod postelí a že se s nimi dá docela dobře poradit. S čím jsem si naopak neporadil ještě dlouho potom, bylo, když můj systém skončil už na příkazové řádce GRUBu a drze na mě pomrkával svým kurzorem. A teď, babo, raď.
Inu, panáčku, co bych neporadila?
(Baba Jaga při rozhovoru s Ivanem, 18. století, Sibiř)
Jak tohohle strašáka vymést zpod postele, se podíváme v tomto článku. Nejprve si krátce ukážeme, jak provést drobné kosmetické úpravy parametrů jádra u funkčního zavaděče. Poté se zaměříme na ruční zavedení systému pomocí GRUB CLI v případě, že je instalace v pořádku, ale automatické zavádění selže.
Vymetení strašáka rozbité instalace jako takové není tématem tohoto článku. V takovém případě si budete si muset počkat, až se odtamtud vymete sám.
Úpravy parametrů jádra
Většina distribucí se snaží vytvářet co nejuniverzálnější jádro, které poběží na co nejširším spektru hardwaru. Neexistuje ale kernel, který by se zalíbil všem strojům. Někdy je proto potřeba jeho chování při startu upravit.
Velmi častým případem je potřeba zobrazit ladicí výpisy jádra. Ty jsou v moderních distribucích obvykle skryté za grafickou oponou tzv. „quiet bootu“. Jednoduchou úpravou parametrů lze grafické zavádění vypnout a nechat si zprávy jádra zobrazit přímo.
Následující postup například ukazuje, jak vypnout grafické zavádění:
- Nastartujeme počítač do GRUB menu. Na Fedoře je GRUB ve výchozím stavu skrytý, ale lze se do něj snadno dostat. Z běžícího systému můžeme restartovat přímo do nabídky zavaděče příkazem:
sudo systemctl reboot --boot-loader-menu=1
Pokud systém neběží a GRUB se při startu nezobrazuje, stačí nechat počítač naběhnout až k přihlašovací obrazovce a ihned jej restartovat. V krajním případě lze během zavádění použít Ctrl-Alt-Del.
- Vybereme jádro, které chceme upravit. Pomocí kurzorových kláves se přesuneme na požadovanou položku. Standardně je nahoře nejnovější nainstalované jádro, orientovat se můžeme podle jeho verze.
- Stiskneme klávesu
Ea otevře se jednoduchý textový editor. - Najdeme řádek začínající slovem linux.
- Odstraníme parametry rhgb quiet z konce řádku. Pokud se spletete, stiskem Esc úpravy zrušíte. V editoru se pohybujeme pomocí šipek nebo kláves Home a End.
- Změny potvrdíme klávesou F10 nebo Ctrl-X. Systém se zavede bez grafického splash screenu a výpisy jádra budou viditelné.
Tento postup se hodí v situacích, kdy systém normálně startuje, ale potřebujeme ovlivnit chování jádra nebo získat více informací o průběhu zavádění.
Rozsáhlý přehled kernelových parametrů najdete v oficiální dokumentaci.
Příprava pro manuální zavádění
Jiná situace nastane tehdy, když se systém nezavede vůbec a místo nabídky GRUBu skončíme přímo na jeho příkazové řádce. To může způsobit nervozitu, paniku nebo dokonce mdloby.
S trochou klidu a základní orientací se ale nejedná o neřešitelný problém. Zhluboka se nadechneme a jdeme na to.
- Rozhlédneme se kolem.
Nejprve zjistíme, jaké disky a oddíly má GRUB k dispozici:ls
Typický výpis na Fedoře Workstation může vypadat takto:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd0,gpt3)
- Najdeme oddíl se zaváděcími soubory.
Postupně zkoušíme jednotlivé oddíly:ls (hd0,gpt1)/
Pokud GRUB hlásí neznámý souborový systém, zkoušíme další oddíl.
- Hledáme správný obsah. Správný oddíl obvykle obsahuje soubory
vmlinuz-*,initramfs-*a adresářegrub2neboefi. - Nastavíme kořenový oddíl:
set root=(hd0,gpt2)
- Identifikujeme oddíl s instalací systému. U Fedory Workstation se obvykle jedná o Btrfs oddíl se subvolume
rootahome. U jiných typů instalací se rozložení může lišit.
Jakmile víme, kde se nachází jádro, initramfs a kořenový souborový systém, můžeme přistoupit k manuálnímu zavedení.
Manuální zavedení jádra
GRUBu musíme explicitně sdělit, kde leží jádro (vmlinuz), kde initramfs a jaké parametry má jádru předat. Zásadní je parametr root= a režim připojení disku (doporučuje se ro, tedy read-only).
Výběr root zařízení podle typu instalace
Btrfs (Workstation, KDE, Everything)
root=/dev/vda3 ro rootflags=subvol=root
LVM (Server)
root=/dev/mapper/fedora-root ro rd.lvm.lv=fedora/root
Klasické rozdělení
root=/dev/vda3 ro
Samotné zavedení systému
- Načteme jádro:
linux /vmlinuz-6.17.1-300.fc43.x86_64 root=/dev/vda3 ro rootflags=subvol=root
- Načteme initramfs:
initrd /initramfs-6.17.1-300.fc43.x86_64.img
- Spustíme boot:
boot
Atomické desktopy: Silverblue a Kinoite
U atomických variant Fedory je ruční skládání parametrů komplikované. Místo toho lze jednoduše načíst existující konfiguraci:
configfile /grub2/grub.cfg
GRUB tím převezme konfiguraci z disku a zobrazí standardní nabídku.
Časté problémy
- File not found – zkontrolujte
set roota cesty k souborům. - Kernel nenajde root – špatný parametr
root=nebo další chybějící parametry. - Tab nedoplňuje – pravděpodobně jste na špatném oddílu.
- Více jader – vyberte konkrétní verzi.
Závěr
Manuální zavádění systému pomocí GRUB CLI není dovednost, kterou by člověk používal denně. O to cennější ale je, když se v krizové situaci nezmění v paniku, ale v klidný a racionální postup.
Stačí vědět, kde hledat jádro, initramfs a kořenový souborový systém, a GRUB se z nepřítele promění v ochotného spojence. Až se příště ocitnete na jeho příkazové řádce, možná už si místo reinstalace jen pomyslíte: „Dobře, tak pojďme na to.“
A strašák pod postelí? Ten si může jít hledat jinou adresu.
Napsat komentář