Moje vlastní neschopnost dokončit miniseriál instalace mě už dohnala k šílenství, takže když už v pondělní večer zevluju u počítače, tak můžu přece taky dělat něco užitečného. Zde je posledních pár tipů, týkajících se jádra a grubu, jejichž výsledkem by měl být funkční systém.

Předem upozorňuju, že jelikož jsem musel nutně dokončit instalaci Gentoo ve virtuálním stroji, tak následující věci jsem během psaní nezkoušel. Pokud se v nich objeví chyba, tak mě prosím nekamenujte.

Jádro

Ještě před samotnou instalací jádra si emergneme grub, za chvilku uvidíte proč. Zatím není potřeba ho nijak konfigurovat, pouze pustit emerge:

# emerge grub

Před stažením zdrojáků jádra doporučuju nastavit flag symlink, který vám při každé nové verzi aktualizuje symbolický odkaz /usr/src/linux:

# echo ‘sys-kernel/gentoo-sources symlink’ >> /etc/portage/package.use

Jenom na to později nesmíte zapomenout, není ale nic jednoduššího, než si všechny nové verze jádra dát do /etc/portage/package.mask a posouvat je pouze když budete opravdu chtít. Ušetříte si tím navíc něco místa na disku, jednotlivé rozbalené verze jádra jsou poměrně macaté.

U konfigurace jádra se můžete pořádně vyřádit. Osobně instaluji jádro bez podpory modulů, o něco to ztíží instalaci rootkitů a restart při rekompilaci je vcelku snesitelný, pokud se zrovna nehoníte za uptimem. Nakonfigurovat opravdu lightweight jádro, které obsahuje přesně co potřebujete a nic víc je vždycky příjemný výsledek i delšího úsilí.

Ovladač DMA

Bez nich systém poběží, ale třeba mě osobně překvapilo, jak jsou disky pomalé. Přesně tak, bez správného DMA ovladače to nepůjde, disky poběží v PIO módu a dají vám tak přičichnout k dřevním dobám, kdy „640kB paměti stačilo všem“ (Bill Gates tohle prý nikdy neřekl, ale myslím, že si tím nebudeme kazit jeho jinak pěknou pověst úžasného vizionáře).

Moduly pro RAID

Pokud instalujete Gentoo do SW RAIDU, tak nesmíte zapomenout na správné moduly jádra (systém vám jinak dá přičichnout pro změnu ke kernel panic).

Device Drivers —>
Multi-device support (RAID and LVM) —>
[*] Multiple devices driver support (RAID and LVM)
[*] RAID support
[*] RAID-1 (mirroring) mode

I pokud byste měli povolené moduly v jádru, tak podpora pro RAID nesmí být v žádném případě zkompilována jako modul, je to stejný problém jako s podporou souborových systémů (samozřejmě by to šlo, pokud by /boot a / nebylo na RAID).

Kompilace

Jestli si chcete ušetřit trochu práce, tak můžete místo kopírování bzImage, System.map a přemýšlením kde jste udělali překlep použít:

# make && make install

Když make install nalezne zavaděč (už víte proč nejdřív grub a teprve potom jádro?), tak zkopíruje výsledné soubory do /boot a tam na ně vytvoří symlinky. A pokud už tam nějaké soubory jádra ve stejné verzi existují, tak je přejmenuje na .old.

Výsledek tedy vypadá po několika kompilacích nového jádra zhruba takhle:

gentoo / # ls -la /boot/
total 8538
drwxr-xr-x 4 root root 1024 Jan 23 21:07 .
drwxr-xr-x 17 root root 4096 Mar 5 13:21 ..
-rw-r–r– 1 root root 0 Dec 4 04:25 .keep
lrwxrwxrwx 1 root root 27 Jan 23 21:07 System.map -> System.map-2.6.15-gentoo-r1
-rw-r–r– 1 root root 698819 Oct 7 10:54 System.map-2.6.13-gentoo-r3
-rw-r–r– 1 root root 456086 Dec 4 12:06 System.map-2.6.14-gentoo-r2
-rw-r–r– 1 root root 463992 Nov 13 12:15 System.map-2.6.14-gentoo-r2.old
-rw-r–r– 1 root root 464746 Jan 23 21:07 System.map-2.6.15-gentoo-r1
lrwxrwxrwx 1 root root 27 Dec 4 12:06 System.map.old -> System.map-2.6.14-gentoo-r2
lrwxrwxrwx 1 root root 1 Aug 4 2005 boot -> .
lrwxrwxrwx 1 root root 23 Jan 23 21:07 config -> config-2.6.15-gentoo-r1
-rw-r–r– 1 root root 20320 Oct 7 10:54 config-2.6.13-gentoo-r3
-rw-r–r– 1 root root 21082 Dec 4 12:06 config-2.6.14-gentoo-r2
-rw-r–r– 1 root root 21082 Nov 13 12:15 config-2.6.14-gentoo-r2.old
-rw-r–r– 1 root root 21584 Jan 23 21:07 config-2.6.15-gentoo-r1
lrwxrwxrwx 1 root root 23 Dec 4 12:06 config.old -> config-2.6.14-gentoo-r2
drwxr-xr-x 2 root root 1024 Dec 4 06:31 grub
drwx—— 2 root root 12288 Aug 4 2005 lost+found
lrwxrwxrwx 1 root root 24 Jan 23 21:07 vmlinuz -> vmlinuz-2.6.15-gentoo-r1
-rw-r–r– 1 root root 1727967 Oct 7 10:54 vmlinuz-2.6.13-gentoo-r3
-rw-r–r– 1 root root 1640889 Dec 4 12:06 vmlinuz-2.6.14-gentoo-r2
-rw-r–r– 1 root root 1666147 Nov 13 12:15 vmlinuz-2.6.14-gentoo-r2.old
-rw-r–r– 1 root root 1465977 Jan 23 21:07 vmlinuz-2.6.15-gentoo-r1
lrwxrwxrwx 1 root root 24 Dec 4 12:06 vmlinuz.old -> vmlinuz-2.6.14-gentoo-r2

Grub

V /boot/grub/grub.conf udejte jako kernel /boot/vmlinuz, jenom nezapomeňte, že po každém make && make install jádra bude tento symlink okamžitě nastaven na nové jádro. Opět pokud používáte SW RAID, tak jako root už uvádějte odpovídající MD device (například /dev/md2 podle předchozího rozdělení). Výsledek tedy vypadá například takto:

# Which listing to boot as default. 0 is the first, 1 the second etc.
default 0
# How many seconds to wait before the default listing is booted.
timeout 5

title=Gentoo Linux
# Partition where the kernel image (or operating system) is located
root (hd0,0)
kernel /boot/vmlinuz root=/dev/md2

Instalace grubu pro RAID je trochu složitější a nejlépe jí udělat přímo z jeho příkazového řádku:

# grub

A potom:

grub>device (hd0) /dev/hda
grub>root (hd0,0)
grub>setup (hd0

grub>device (hd1) /dev/hdbgrub>root (hd1,0)grub>setup (hd1)

Chápavější asi pochopili, že pro RAID je potřeba pracovat i s /etc/fstab stejným způsobem jako s grub.conf. Kdo ne, tak příklad je zde:

/dev/md0 /boot ext2 defaults,noatime 1 2
/dev/md1 none swap sw,pri=0 0 0
/dev/md2 / xfs noatime 0 1
/dev/md3 /tmp xfs noatime 0 0
/dev/md4 /usr xfs noatime 0 0
/dev/md5 /var xfs noatime 0 0
/dev/md6 /home xfs noatime,noexec,nosuid 0 0

A co když se to pokazí?

Reboot, chvilka napětí……. a nic…. nebo kernel panic. Naštěstí ale nemusíte panikařit, stačí nabootovat z CD, případně chrootnout se nového prostředí a vrátit se tam, kde jste udělali chybu. Pár věcí, které se tak namátkou můžou pokazit jsou:

Špatný /etc/fstab

Tady nemusíte ani chrootovat, stačí přimountovat root partition a opravit.

Nenainstalovaný grub

I to se může stát, nevím jak, ale prostě může. Snad asi tak, že při instalaci nového serveru musíte úplně naprosto okamžitě odejít pomoci šéfovi (nebo ještě hůř sekretářce) naučit Excel sčítat sloupec podivných čísel. Potom se vrátíte, nevíte kde jste skončili, jenom že něco s Grubem. Chvilku přemýšlíte, ale potom musíte jít pomoci šéfovi (sekretářce) naučit Excel, aby neodstraňoval nulu na počátku telefoních čísel, IČ apod. (tohle je velice častý požadavek na IT oddělení). To už si říkáte, že tohle je vlastně tajný způsob, jakým Microsoft bojuje s Open Source systémy (nebo spíš něco o potřebě nahnat celou firmu včetně uklízeček na školení Excelu) a vymýšlíte strašlivou pomstu, která bude zahrnovat ruční vyplňování každé jednotlivé buňky v Excelu, zatímco hodiny budou odtikávat čas, za který dojde ke smazání všech vtipů z e-mailové schránky dotyčného.

V každém případě na CD se grub nenachází, takže nový systém budete muset taky přinejmenším přimountovat.

Nenastavené root heslo

To se prostě stane, sedíte před hotovým systémem a zuřivě zkoušíte svoje všechna možná hesla, od toho k internetovému bankovnictví až ke kartičce do videopůjčovny.

Zde je potřeba chroot do nového prostředí a jednoduše změnit root heslo:

# passwd

Potíže + RAID

Tohle může být trochu nepříjemné, protože RAID pole existuje, ale není nastartované. Řešení ale rozhodně není začít od začátku, pouze opět natáhněte md modul, vytvořte /dev/mdX devices a pro každé pole spusťe:

# mdadm –assemble /dev/mdX /dev/hdaX /dev/hdbX

Něco jiného?

Nejjednodušší je zkopírovat chybovou hlášku do hledání v Gentoo fóru. Divili byste se, ale ostatní uživatelé jsou také vynalézaví a často ještě mnohem víc.

Závěr

Doufám, že výsledkem je už funkční systém. Ve verzi 2006.0 neobsahuje Gentoo stages pro jednotlivé subarchitektury x86, není ale nic jednoduššího, než v čerstvě nainstalovaném systému spustit

# emerge –sync && emerge -e system && emerge -e world

Výsledkem bude systém zkompilovaný podle aktuálního /etc/make.conf, takže se všemi optimalizacemi pro váš procesor atd. Jediný problém je, že proces bude chvilku trvat, ideální je ho například spustit přes noc. Pokud na to ale nemáte náladu, tak se vůbec nic nestane a rozdíl určitě běžným způsobem nepoznáte.

Zanechej komentář

K zanechání komentáře ke článku musíte být přihlášen. Přihlásit »