2.3 2005-04-07
Vyberte si Úvod

Po kompilaci jádra, instalaci nezbytných systémových nástrojů a další konfiguraci nastal nyní čas nainstalovat program, který po startu systému jádro načítá, tzv. bootloader (zavaděč). Pro architekturu x86 poskytuje Gentoo Linux GRUB a LILO. Než jeden z těchto zavaděčů nainstalujete, ukážeme si, jak nastavit tzv. framebuffer, díky kterému můžete spustit linuxovou příkazovou řádku s (omezenými) grafickými prvky, jako je např. hezká spouštěcí obrazovka, bootsplash. Tento krok je samozřejmě volitelný.

Volitelně: framebuffer

Pokud jste v jádře povolili podporu framebufferu nebo jste použili výchozí konfiguraci skriptu genkernel, můžete framebuffer aktivovat přidáním voleb vga nebo video do konfigurace zavaděče.

Ze všeho nejdříve musíte vědět, jaký typ framebufferového zařízení používáte. Jestliže jste si vybrali opatchované jádro Gentoo (jako např. gentoo-sources), byla výchozí hodnota typu ovladače VESA vesafb-tng; jestliže jste ji tak ponechali, nemusíte zadávat údaj vga. V opačném případě užíváte ovladač vesafb a údaj vga zadat musíte.

Parametr vga řídí rozlišení a barevnou hloubku obrazovky framebufferu pro vesafb. Jak je popsáno v dokumentu /usr/src/linux/Documentation/fb/vesafb.txt nainstalovaném spolu se zdrojovými kódy jádra, musíte zadat číslo VESA módu odpovídající požadovanému rozlišení a barevné hloubce.

Následující tabulka uvádí kombinace dostupných rozlišení a barevné hloubky spolu s odpovídajícími hodnotami, které musíte zadat s údajem vga.

0x3010x3030x3050x3070x3100x3130x3160x3190x3110x3140x3170x31A0x3120x3150x3180x31B
640x480 800x600 1024x768 1280x1024
256
32 tisíc
64 tisíc
16 milionů

Volba video nastavuje parametry framebufferového displeje. Je třeba uvést ovladač (pro jádra řady 2.6 vesafb, pro řadu 2.4 vesa) následovaný řídícími údaji podle Vašeho uvážení. Všechny možné volby jsou uvedeny v dokumentu /usr/src/linux/Documentation/fb/vesafb.txt, zde ukážeme tři nejužívanější možnosti:

ywrap předpokládá, že grafická karta dokáže přetočit paměť (tj. pokračovat znovu od začátku, když dosáhla konce) mtrr nastaví MTRR registry mode (pouze vesafb-tng)
nastaví rozlišení, barevnou hloubku a obnovovací frekvenci, např. 1024x768-32@85 ro rozlišení 1024x768, 32 bitovou barevnou hloubku a obnovovací frekvenci 85 Hz
Parametr Popis

Tyto dva údaje by mohly vypadat přibližně jako vga=0x318 video=vesafb:mtrr,ywrap nebo video=vesafb:mtrr,ywrap,1024x768-32@85. Zanedlouho budou potřeba, proto si je poznamenejte.

Pokračujeme instalací GRUBu nebo LILa.

Výchozí: použití GRUBu Orientace v terminologii GRUBu

Abychom porozuměli GRUBu, je velmi důležité pochopit způsob, jakým odkazuje na pevné disky a diskové oddíly. Tak např. linuxový oddíl /dev/hda1 se v GRUBu bude velmi pravděpodobně nazývat (hd0,0). Všimněte si kulatých závorek kolem hd0,0, jsou bezpodmínečně nutné.

Pořadí pevných disků se počítá od nuly, ne od "a", označení diskových oddílů začíná rovněž na nule, ne na jedničce. Dejte také pozor na to, že do "hd" se započítávají pouze pevné disky, nikoliv ostatní zařízení ATAPI-IDE, jako jsou CDROM mechaniky nebo vypalovačky. To samé platí pro SCSI zařízení. (Obvykle obdrží vyšší čísla než IDE disky, kromě případu, kdy je BIOS konfigurován tak, aby bootoval ze SCSI zařízení.) Nastavíte-li BIOS, aby bootoval z jiného pevného disku (např. ze druhého zařízení na prvním kanálu - primary slave), bude takový disk označen za hd0.

Dejme tomu, že máte první pevný disk na /dev/hda, CD-ROM mechaniku na /dev/hdb, vypalovačku na /dev/hdc, druhý pevný disk na /dev/hdd a v systému není žádný SCSI disk. V takovém případě si GRUB přeloží /dev/hdd7 jako (hd1,6). Možná to vypadá na první pohled zmateně, ale jak uvidíte, GRUB nabízí funkci automatického doplňování pomocí klávesy TAB, která Vám pomůže, když by hrozilo, že se v tomto číselném schématu ztratíte.

Jestli jste to už strávili, dejme se do instalace GRUBu.

Instalace GRUB

Jako první krok zadáme příkaz emerge:

# emerge grub

GRUB je nyní sice nainstalován, je však ještě potřeba pro něj napsat konfigurační soubor a zapsat GRUB do MBR pevného disku, aby mohl automaticky zavést nové jádro. Spusťte svůj oblíbený editor (pro potřeby tohoto návodu používáme nano) a vutvořte v něm soubor /boot/grub/grub.conf:

# nano -w /boot/grub/grub.conf

Nyní se chystáte vytvořit konfigurační soubor grub.conf. Níže najdete příklady dvou možných podob grub.conf pro ukázkové rozdělení disků použité jako příklad pro účely tohoto návodu, s obrazem jádra kernel-2.6.11-gentoo-r3. Podrobně komentován je pouze první grub.conf. Ujistěte se, že zadáváte název svého obrazu jádra, a pokud je třeba, i svého initrd obrazu.

  • první grub.conf je pro uživatele, jejichž jádro není sestavené příkazem genkernel
  • druhý grub.conf pak pro ty, kdo pro sestavení svého jádra použili genkernel
Je-li Váš kořenový souborový systém typu JFS, musíte přidat "ro" k řádce kernel, protože JFS potřebuje přehrát svůj záznam dříve, než dovolí připojit disk v režimu pro čtení i zápis.
# určuje, který systém se zavádí jako výchozí (default), 0 znamená první, 1 druhý atd.
default 0
# kolik sekund čekat před zavedením výchozího systémů
timeout 30
# pěkný obrázek, aby při bootvání nebyla nuda :-)
# zakomentujte, pokud nemáte nainstalovanou grafickou kartu
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.11-r3
# oddíl, na kterém je umístěn obraz jádra nebo operační systém
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/hda3

# Následující čtyři řádky jsou třeba pouze pro duální boot se systémem Windows
# v tomto příkladu jsou Windows nainstalovány na
/dev/hda6
title=Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1
default 0
timeout 30
splashimage=(hd0,0)/grub/splash.xpm.gz

title=Gentoo Linux 2.6.11-r3
root (hd0,0)
kernel /kernel-2.6.11-gentoo-r3 root=/dev/ram0 init=/linuxrc ramdisk=8192
real_root=/dev/hda3 udev
initrd /initrd-2.6.11-gentoo-r3

# pouze v případě, že chcete dual-boot
title=Windows XP
root (hd0,5)
makeactive
chainloader +1
Údaj udev na konci řádky, která definuje umístění jádra, je nutný k opravě chyby v některých verzích genkernelu v případě, že používáte primárně udev, což je standardní nastavení. Pokud jste zvolili jiné rozdělení oddílů nebo obrazy jádra, musíte údaje náležitě upravit. Dbejte zejména na to, aby všechny odkazy za určením zařízení podle GRUBu (jako např. (hd0,0)) byly uvedeny relativně vzhledem k bodu připojení (mountpoint), nikoliv ke kořenovému adresáři (root). Jinými slovy, (hd0,0)/grub/splash.xpm.gz je ve skutečnosti /boot/grub/splash.xpm.gz, protože (hd0,0) je /boot.

Chcete-li jádru předat nějaké dodatečné volby, jednoduše je zapište na konec řádku příkazu kernel. Už jste zadali jeden parametr (root=/dev/hda3, případně real_root=/dev/hda3), ale můžete připsat i další, jako třeba video nebo vga pro framebuffer, viz výše.

Používáte-li jádro ve verzi 2.6.7 nebo vyšší a nastavili jste svůj disk, aby ohlašoval menší velikost, protože Váš BIOS neumí zacházet s velkými disky, musíte přidat hdx=stroke.

Jestliže jste použili genkernel, měli byste vědět, že Vaše jádro používá tytéž bootovací příkazy jako instalační CD, proto například máte-li SCSI zařízení, měli byste přidat jako volbu jádra parametr doscsi.

Nyní uložte soubor grub.conf a ukončete editor. Stále je ještě potřeba nainstalovat GRUB do MBR (Master Boot Record), aby byl GRUB automaticky zaveden, když spustíte počítač.

Vývojáři GRUBu doporučují použít k instalaci nástroj grub-install. Kdyby však z nějakého důvodu nepracoval správně, máte stále možnost nainstalovat GRUB ručně.

Pokračujte buď částí výchozí: nastavení GRUBu pomocí grub-install anebo sekcí alternativní: ruční nastavení GRUBu.

Výchozí: nastavení GRUBu pomocí grub-install

Instalaci GRUBu provedete příkazem grub-install, který by však nyní ještě nefungoval, neboť jste stále v chrootovaném prostředí. Nejprve tedy musíte zaktualizovat /etc/mtab, soubor s informacemi o všech připojených souborových systémech. Naštěstí existuje jednoduchý způsob, jak to provést - jednoduše zkopírujete /proc/mounts do /etc/mtab:

# cp /proc/mounts /etc/mtab

Nyní už můžete nainstalovat GRUB pomocí grub-install:

# grub-install --root-directory=/boot /dev/hda

Máte-li další otázky týkající se GRUBu, konzultujte prosím GRUB FAQ nebo GRUB Manuál (obojí anglicky).

Pokračujte rebootem systému.

Alternativní: ruční nastavení GRUBu

Konfiguraci GRUBu zahájíte příkazem grub. Objeví se příkazový řádek GRUBu grub>. Nyní musíte zadat správné příkazy, abyste nainstalovali bootovací záznam GRUBu na pevný disk.

# grub
Nemá-li Váš systém disketovou jednotku, přidejte k výše uvedenému příkazu volbu --no-floppy, abyste zabránili GRUBu testovat (neexistující) disketové jednotky.

V tomto příkladu chceme nainstalovat GRUB tak, aby načítal informace z bootovacího (zaváděcího) oddílu /dev/hda1 a nainstaloval svůj bootovací záznam do MBR (Master Boot Record) pevného disku, aby se po zapnutí počítače jako první objevila výzva GRUBu. Nezapomeňte upravit zadávané příkazy podle své konfigurace, pokud jste se rozhodli pro jiné rozdělení disků.

V příkazové řádce GRUBu můžete používat automatické doplňování pomocí klávesy TAB. Např. když zadáte "root (" a stisknete klávesu TAB, zobrazí se vám seznam dostupných zařízení (jako např. hd0). Napíšete-li "root (hd0," a stisknete klávesu TAB, zobrazí se seznam dostupných oddílů, ze kterých si můžete vybrat, jako například hd0,0.

S pomocí tohoto automatického doplňování by neměla být instalace GRUBu tak obtížná. Tak jdeme na to, ne? :-)

grub> root (hd0,0)          (zadejte umístění oddílu /boot)
grub> setup (hd0)           (nainstalujte GRUB do MBR)
grub> quit                  (a ukončete příkazovou řádku GRUBu)
Chcete-li nainstalovat GRUB namísto do MBR na nějaký jiný oddíl, musíte změnit příkaz setup tak, aby na příslušný oddíl odkazoval. Například pokud chcete nainstalovat GRUB na /dev/hda3, bude mít příkaz podobu setup (hd0,2). To se však týká jen mála uživatelů.

Máte-li další otázky týkající se GRUBu, konzultujte prosím GRUB FAQ nebo GRUB Manuál (obojí anglicky).

Až budete aktualizovat jádro, nemusíte kopírovat žádné další soubory, pouze po kompilaci spustíte make install; tento příkaz sám nakopíruje potřebné soubory a upraví konfiguraci GRUBu.

Pokračujte restartem systému.

Alternativní: použití LILO Instalace LILO

LILO, LInuxLOader, je ověřený a opravdový pracant mezi zavaděči, postrádá však některé možnosti, které GRUB umí, což je také důvod, proč popularita GRUBu nyní roste. LILO se však stále používá, a to proto, že existují systémy, kde GRUB nefunguje, zatímco LILO ano, a samozřejmě i kvůli tomu, že někteří lidé LILO dobře znají a chtějí ho používat i nadále. Buď jak buď, Gentoo podporuje oba zavaděče, a jak je vidět, Vy jste se rozhodli pro LILO.

Instalace LILO je hračka - použijte emerge:

# emerge --usepkg lilo
Konfigurace LILO

Ke konfiguraci LILO musíte vytvořit soubor /etc/lilo.conf. Spusťte svůj oblíbený editor (v tomto návodu používáme nano) a vytvořte tento soubor.

# nano -w /etc/lilo.conf

V jedné z předešlých kapitol jsme vás žádali, abyste si zapamatovali název obrazu jádra (kernel-image), který jste vytvořili. V následujícím příkladu souboru lilo.conf budeme předpokládat, že toto jméno je kernel-2.6.11-gentoo-r3. Rovněž použijeme naše ukázkové schéma rozdělení disku. Následující lilo.conf obsahuje dvě samostatné části:

  • jednu pro ty, kdo sestavili své jádro bez použití skriptu genkernel
  • druhou pro ty, kdo si nechali jádro vytvořit skriptem genkernel

Ujistěte se, že používáte jméno svého image jádra a pokud je to nutné i svůj název souboru s initrd.

Je-li Váš kořenový souborový systém typu JFS, musíte přidat "ro" k řádce kernel, protože JFS potřebuje přehrát svůj záznam dříve, než dovolí připojit disk v režimu pro čtení i zápis.
boot=/dev/hda             # nainstaluje LILO na MBR
prompt                    # umožní uživateli vybrat jiný systém
timeout=50                # před spuštením výchozí volby počkat pět sekund
default=gentoo            # a po vypršení této doby spustit systém "gentoo"

# Pro ty, kdo nepoužili genkernel
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo            # jméno sekce
  read-only               # startuje kořenový adresář s parametrem read-only (pouze čtení) - neměnit!
  root=/dev/hda3          # určuje umístění kořenového souborového systému

# Pro uživatele genrkernelu
image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo
  read-only
  root=/dev/ram0
  append="init=/linuxrc ramdisk=8192 real_root=/dev/hda3 udev"
  initrd=/boot/initrd-2.6.11-gentoo-r3

# Následující dva řádky platí, když chcete dual-boot se systémem Windows
# v tomto příkladu jsou Windows nainstalovány v /dev/hda6.
other=/dev/hda6
  label=windows
Údaj udev na konci řádky, která definuje umístění jádra, je nutný k opravě chyby v některých verzích genkernelu v případě, že používáte primárně udev, což je standardní nastavení. Používáte-li jiné rozdělení disku nebo jiný obraz jádra, příkazy patřičně upravte.

Chcete-li zadat nějaký dodatečný parametr jádra, přidejte k sekci příkaz append. V našem příkladu přidáme volbu video, abychom povolili framebuffer:

image=/boot/kernel-2.6.11-gentoo-r3
  label=gentoo
  read-only
  root=/dev/hda3
  append="video=vesafb:mtrr,ywrap,1024x768-32@85"

Používáte-li jádro ve verzi 2.6.7 nebo vyšší a nastavili jste svůj disk, aby ohlašoval menší velikost, protože Váš BIOS neumí zacházet s velkými disky, musíte přidat hdx=stroke.

Jestliže jste použili genkernel, měli byste vědět, že Vaše jádro používá tytéž bootovací příkazy jako instalační CD, proto například máte-li SCSI zařízení, měli byste přidat jako volbu jádra parametr doscsi.

Nyní uložte soubor a ukončete editor. Pro dokončení ještě musíte spustit /sbin/lilo, aby LILO mohlo aplikovat nastavení z /etc/lilo.conf, tj. zapsat samo sebe na disk. Zapamatujte si, že musíte tento příkaz spustit pokaždé, když instalujete nové jádro nebo provádíte jakékoli změny v menu.

# /sbin/lilo
Až budete aktualizovat jádro, nemusíte kopírovat žádné další soubory, pouze spustíte po kompilaci make install; tento příkaz sám nakopíruje potřebné soubory a upraví konfiguraci LILO.

Nyní můžete pokračovat restartem systému.

Restart systému

Opusťte chrootované prostředí a odpojte všechny připojené oddíly. Pak zadejte onen magický příkaz, na který jste tolik čekali: reboot.

# exit
cdimage ~# cd
cdimage ~# umount /mnt/gentoo/boot /mnt/gentoo/proc /mnt/gentoo
cdimage ~# reboot

Nezapomeňte vyjmout bootovací CD, nebo vám místo vašeho nového systému Gentoo naběhne znovu jen CD.

Až se nově nainstalovaný systém Gentoo spustí, pokračujte dokončením instalace.