GRUB Příkazová řádka

  • Edit
  • Diskuze
  • Info
  • Attachments

Tento článek popisuje úpravu parametrů GRUBu (verze 1 - tzv. "Grub Legacy") pomocí Terminálu.

IconsPage/warning.pngUPOZORNĚNÍ - tento návod se stává zastaralým!

Od verze Ubuntu 9.10 (Karmic) je v nových instalacích použita nová verze GRUB2. Následující návod tudíž platí jen pro systémy starší (nebo na 9.10 aktualizované z Jaunty (9.04). Pro novější instalace hledejte informace pod heslem GRUB2.

Zvýšení doby čekání GRUBu

  • Pokud se potřebujete dostat do GRUB menu, musíte stisknout ESC poté, co nastartuje. Ve výchozím stavu musíte zmáčknout ESC velice rychle. Pro zvýšení této doby, editujte soubor /boot/grub/menu.lst, například příkazem

    gksudo gedit /boot/grub/menu.lst

    a zvyšte počet sekund na řádku se slovem timeout. Jinou možností je nechat si menu zobrazit vždy po startu počítače. To se udělá zakomentováním řádku hiddenmenu přidáním # na začátek řádku.

    IconsPage/IconNote.png Pokud instalátor Ubuntu nalezne další nainstalované operační systémy na vašem počítači během instalace, GRUB menu se bude ve výchozím stavu zobrazovat, a doba čekání bude zvýšena, takže výše uvedený krok nebude potřeba.

Změna výchozího operačního systému

  • Implicitně GRUB startuje Ubuntu jako výchozí systém. Pokud toto chcete změnit na jiný operační systém, navštivte GRUB/Změna výchozího OS

Obnova GRUBu

  • Pokud vám instalace Windows přepsala GRUB svým zavaděčem a nevidíte nyní linuxové operační systémy, čtěte GRUB/Obnova.

Přidání Windows

  • Pokud Windows nainstalujete až po Ubuntu, budete jej chtít přidat do seznamu GRUBu. Čtěte GRUB/Přidání Windows.

Seznam jader pomocí Automagic

  • Ubuntu používá nástroj jménem update-grub pro modifikaci /boot/grub/menu.lst. Automaticky detekuje všechna dostupná jádra (kernely) ve vašem adresáři /boot a aplikuje různá globální nastavení ke každému z nich. Kdykoli nainstalujete nové jádro ze zdrojů, update-grub je spuštěn aktualizaci nastavení GRUBu.

    Významné části souboru menu.lst, na které se update-grub dívá, jsou řádky mezi značkami ### BEGIN AUTOMAGIC KERNELS LIST a ### END DEBIAN AUTOMAGIC KERNELS LIST. Komentáře předcházejí alespoň dva #, např. ## toto je komentář. Globální nastavení jsou za jedním #, např. # groot=(hd0,4). Nejčastější změna je pravděpodobně změna právě groot volby. Změnte ji, pokud /boot je uložen na jiném oddílu, než /. Podívejte se na příslušnou sekci této stránku pro více informací ohledně různých /boot oddílech. Další běžnou změnou je volba kopt=, což jsou parametry jádra aplikované na všechny jádra v menu.lst.

Nastavení parametrů jádra

  • V /boot/grub/menu.lst, naleznete takovéto řádky:

      # kopt=root=/dev/sda1 ro

    Toto vypadá jako komentář, ale neodstraňujte # ze začátku.
    Warning /!\ DŮLEŽITÉ: grub vidí tento řádek jako komentář a ignoruje ho, ale je použit jako konfigurační parametr programem update-grub pro vygenerování obsahu souboru, který bude grub číst při spuštění počítače.

    Pokud potřebujete dodatečné parametry jádra (například, pokud někdo vás požádal o spuštění systému s určitými parametry pro testování problému), přidejte je na konec tohoto řádku, například přidejte noapic:

      # kopt=root=/dev/sda1 ro noapic
    Po editaci souboru, spusťte:
      sudo update-grub
    Pro zajímavost, můžete také přidat dočasně k jádru parametr také v GRUB menu, stisknutím 'e' a editováním řádku s jádrem.

Pokud /boot je na jiném oddílu

  • Pokud /boot je připojen na jiném oddílu a použijete update-grub, můžete se dostat do problémů. Jednou možností nápravy je použít grub-install, který je nezávisle na distribuci nainstaluje grub manažeru do zaváděcího sektoru disku.

      sudo grub-install --root-directory=/boot /dev/sda

    Toto je pravděpodobně méně žádoucí, protože update-grub je velmi dobrý v nastavení všeho pořádně, takže by měl být použit místo toho.

    Další možností nápravy je vytvoření symbolického odkazu /boot sám na sebe:

      cd /boot
      sudo ln -s . boot

    Vysvětlením je, že když GRUB nabíhá, kouká se na jakýkoliv oddíl, kde je nainstalován. update-grub (a grub-install) předpokládá, že vše je v /boot. Když /boot je na stejném oddílu jako /, tak je vše OK, protože menu.lst bude v /boot/grub. Když je /boot na odlišném oddílu, tak GRUB vidí /boot jako / (tudíž ono '--root-directory' výše). Přidáním symbolického odkazu, když hledá /boot/grub, tak to tam bude. Vytvořením symbolického odkazu jste zavedli smyčku v systému souborů, což může způsobovat problémy při používání určitých voleb u cp, mv, atd.

Změna disku, na který je GRUB nainstalován

  • Zvažte následující problém: Máte dva pevné disky, jeden SATA (/dev/sda), druhý PATA (/dev/hda). Váš BIOS si myslí, že PATA disky by měli vždy být upřednostněny před SATA disky, ale vy chcete zavést systém ze SATA disky. GRUB umí tento problém obejít.

Nalezení groot

  • Nejprve zjistěte, jak GRUB pojmenovává disky. Toto je uvedeno v souboru /boot/grub/device.map. Tam naleznete tabulku s jmény v GRUB-stylu (např. (hd0)) a jména v Linux-stylu (např. /dev/hda/). Také potřebujete vědět, na kterém disku a oddílu je /boot. Pro zjištění kde je /boot, použijte df:

      df /boot

    Toto vám řekne v Linux-stylu jméno oddílu kde je /boot. Poté jednoduše porovnejte se jménem v GRUB-stylu v device.map. Toto je, co by měl být groot.

Příklad:

  •   $ df /boot
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/sda5              46M   15M   30M  33% /boot
      
      $ cat /boot/grub/device.map 
      (hd0) /dev/hda
      (hd1) /dev/sda

    Takže groot by měl být (hd1,4) (všimněte si, že GRUB čísla oddílů jsou vždy o jedna menší než Linuxová čísla). Takže v /boot/grub/menu.lst,

       ## default grub root device
       ## e.g. groot=(hd0,0)
       # groot=(hd1,4)

Nalezení kořene jádra

  • Další část puzzle je nalezení, kde je /. Jednoduše zjistěte kde máte / připojené.

      df /

    Toto je, co by měl být root v kopt.

Příklad:

  •   $ df /
      Filesystem            Size  Used Avail Use% Mounted on
      /dev/sda3              14G  8.3G  5.0G  63% /

    / je na /dev/hda3. Protože toto bude předáno jádru, není tady důvod převádět to do notace GRUBu. Volba 'ro' způsobuje, že jádro připojí oddíl jen pro čtení zpočátku; později bude disk připojen i pro zápis. Toto je většinou děláno, aby fsck mohl být spuštěn na / při spouštění.

      ## default kernel options
      ## default kernel options for automagic boot options
      ## If you want special options for specifiv kernels use kopt_x_y_z
      ## where x.y.z is kernel version. Minor versions can be omitted.
      ## e.g. kopt=root=/dev/hda1 ro
      # kopt=root=/dev/sda3 ro

    Shrnuto, groot značí kde je /boot, a znamená jako co vidí GRUB tento disk. kopt=root značí kde je /, a znamená jako co vidí jádro tento disk.

Obrázek pozadí

  • GRUB dovoluje, aby byl v pozadí menu zobrazen obrázek. Můžete nějaké obrázky získat instalací balíku grub-splashimages, nebo můžete použít libovolný vlastní. Obrázky musí mít velikost 640x480 pixelů, a nesmí obsahovat více než 14 barev, a musí být v gzipovaném xpm formátu. Program GIMP může být použit na změnu velikosti (Obrázek -> Velikost obrázku...), snížení počtu barev (Obrázek -> Režim -> Indexované...), a umí ukládat do .xpm.gz souborů.

Manuální konfigurace

  • Po vytvoření obrázku, přidejte takovýto řádek
      splashimage=(hd0,4)/boot/grub/splash.xpm.gz

    do vašeho /boot/grub/menu.lst souboru. Užitečný trik je vytvořit symbolický odkaz pojmenovaný splash.xpm.gz na váš aktuální obrázek.

      cd /boot/grub
      sudo ln -s můj_obrázek.xpm.gz splash.xpm.gz 

    GRUB načte obrázek po startu z disku; není uložen v MBR. Pokud použijete symbolický odkaz, nebudete muset editovat menu.lst, pouze změníte symbolický odkaz. Ujistěte se, že symbolický odkaz neukazuje na soubor na jiném oddílu, zejména pokud máte /boot na odděleném oddílu.
    Tady je obrázek GNU (autor Peter Gerwinski): GRUB/gnu-head.xpm.gz

Obrázek pomocí update-grub

  • Příkaz update-grub automaticky vybere soubor /boot/grub/splash.xpm.gz a nastaví menu.lst soubor pro vás. Dá si pozor na správné pojmenování disku a oddílu (nepotřebujete pak psát (hd0,4)).

      sudo apt-get install grub-splashimages
      sudo ln -s /boot/grub/splashimages/můj_obrázek.xpm.gz /boot/grub/splash.xpm.gz
      sudo update-grub

    Poznámka: nahraďte můj_obrázek.xpm.gz vybraným obrázkem který chcete.

Odkazy

Vytvoření spouštěcí diskety

Spouštění systému po síti

  • Pokud používáte LTSP nebo Edubuntu, můžete chtít zavést systém přes vaši síťovou kartu.

    Specifické síťové karty potřebují specifické ROM pro spouštění. Pro zjištění kterou potřebujete, spusťte lsmod a hledejte po vaší kartě. Poté jděte na www.rom-o-matic.com a stáhněte si příslušné ROM.

    Editujte /boot/grub/menu.lst a přidejte následující před značku ### BEGIN AUTOMAGIC KERNELS LIST nebo za značku ### END DEBIAN AUTOMAGIC KERNELS LIST, jinak vaše změny budou vymazány bezpečnostními aktualizacemi, atd.

      title LTSP
      root (hd0,2)
      kernel /boot/(ROM které získáte z rom-o-matic)

Odkazy

ubuntu-cz: GRUB/Příkazová řádka (last edited 2011-04-06 15:22:19 by ip-89-103-145-181)