Nebojte se Slackwaru (3)

Ve třetí části seriálu věnovanému distribuci Slackware Linux se budeme zabývat konfigurací Linuxového zaváděče LiLo, konfigurací sítě a upgradem již nainstalovaných balíčků.

14.3.2004 13:00 | o.k. | přečteno 14622×

Konfigurace zaváděče LiLo

S konfigurací zavaděče LiLo (dále budu používat jenom zkrácený název LiLo) jsme se již částečně setkali v minulé části a to konkrétně při dokončování instalace. Tady bych rád poznamenal, že nástroje se kterými jsme se setkali při dokončování instalace lze samozřejmě použít kdykoliv - tyto nástroje jsou nedílnou součástí systému. Jsou to vlastně jediné systémové konfigurační nástroje, které ve Slackwaru jsou. Všechny tyto nástroje využívají pro zobrazování výstupu program dialog, který je napsán s využitím knihovny ncurses. Má to tu výhodu, že tyto nástroje můžeme spustit jak ve virtuální konsoli, tak i v grafickém prostředí, například v programu xterm nebo konsole. Změny v systému pomocí těchto nástrojů může provádět pouze uživatel root.

Vraťme se ale zpět k LiLu. V minulé části jsme pro konfiguraci a zapsání LiLa použili pro jednoduchost autodetekci a nechali vše plně v rukou systému. Někomu z vás se tak mohlo stát, že po ukončení instalačního procesu a následném restartu systému s hrůzou zjistil, že se systém nechová tak jak by měl. Třeba nabootoval Linux, ale nejde nabootovat do Windows nebo počítač nebootoval vůbec. Jak toto vyřešit? Nic není ztraceno, pokud vám systém vůbec nenabootoval budete muset nabootovat z prvního instalačního CD Slackwaru nebo z disket, pokud vaše mechanika CD-ROM neumí bootovat. Oba dva postupy bootování (z CD nebo z disket) jsou uvedeny v první části seriálu. Tentokrát je však výhodné připojit si hned při bootu kořenový souborový systém a to příkazem

bare.i root=/dev/hda1 noinitrd

Pokud se vám toto z nějakého důvodu nedaří, tak nabootujte normálně jako při instalaci a po úspěšném nabootování se přihlašte jako root, čímž se dostanete do příkazového řádku. Zde musíte připojit váš disk s oddílem obsahujícím kořenový adresář. V mém případě je to /dev/hda1 a disk připojím příkazem

mount /dev/hda1 /mnt

Nyní použiji příkaz chroot a to následujícím způsobem:

chroot /mnt

Tento program mně umožní spouštět příkazy v mém připojeném systémovém oddílu disku tak jako kdybych byl nabootovaný přímo v tomto systému. Zde již můžu spustit například příkaz pkgtool (viz obr.) nebo jednodušeji liloconfig a mohu se pustit do opravy LiLa. Spustíme tedy pkgtool a vybereme volbu Setup, v ní označíme mezerníkem položku liloconfig (viz obr.) a potvrdíme tlačítkem OK. Dostaneme se do nám již známého menu, kterým jsme procházeli minule při dokončování samotné instalace Slackwaru. Teď narozdíl od minule zvolíme volbu expert místo simple (viz obr.).

Menu pro expertní instalaci LiLa (viz obr.) vypadá o něco složitěji než pro volbu simple, ale nemusíte se nijak bát, zase o tolik složitější to není - uvidíte sami. Začneme hned první položkou, tedy volbou Begin. Tato volba (viz obr.) nám umožní při bootu vložit do jádra spoustu různých parametrů. Jednotlivé parametry se oddělují mezerou, já je zde nebudu podrobně rozebírat a odkáži vás pouze na dokumentaci. Já zde jako parametr používám například

hdc=ide-scsi

což umožňuje emulovat CD-RW zařízení (leží na druhém kanálu IDE a je jako master zařízení) jako SCSI zařízení, což je potřeba v jádrech řady 2.4.x pro vypalování. Po zapsání parametrů můžeme pokračovat dále a dostaneme se k výběru umožňujícím nastavení frame bufferu v konsoli (viz obr.). Zde nastavuji standardní konsoli, tedy bez framebufferu. Přijdu tím sice o tučňáka v levém horním rohu, ale to oželím :-) Dostáváme se k výběru umístění primárního zavaděče, zde zvolím volbu MBR tedy Master Boot Record (viz obr.). Tímto se primární zavaděč nainstaluje do bootovací stopy primárního pevného disku (tedy pokud v následující volbě nezvolíte jiný disk). Pokud používáte již nějaký ten zavaděč, třeba Boot Manager, tak zvolte volbu Root. Následuje volba ve které můžete určit kam se bude primární zavaděč instalovat (viz obr.). U starších počítačů bych jednoznačně doporučil ponechat tuto volbu defaultní, protože při zadání jiné volby byste pak už pravděpodobně z disku nenabootovali a museli byste tento postup opakovat. Novější desky (BIOS) umožňují bootovat z libovolného disku. Následuje volba (viz obr.) v níž můžeme nastavit časový interval v průběhu něhož bude systém očekávat změnu požadavku na bootování jiného systému než defaultního. Protože zatím předpokládám jenom jeden systém (Linux) zadám volbu None, aby bootování automaticky pokračovalo v co možná nejkratším čase. Tímto jsme nastavili základní chování zavaděče a nyní je načase nastavit systémy, které budeme díky LiLu chtít zavádět.

V hlavní nabídce jsou dvě možnosti díky kterým můžeme do LiLa přidávat jednotlivé systémy, které chceme pomocí LiLa zavádět. Jsou to položky Linux a DOS. Začneme položkou Linux (viz obr.), systém nám nabídne všechny oddíly na nichž nalezne (přečte z tabulky oddílů) Linuxový systém. Napíšeme zde tedy jeden z nabídnutých oddílů a to konkrétně ten, který obsahuje kořenový (root) systém oddílů (v mém případě /dev/hda1). Dále musíme specifikovat jak se tato naše vytvořená položka bude jmenovat (viz obr.). Název by měl být jednoznačný bez speciálních znaků a rozhodně bez mezer (tedy třeba slack nebo slack-2.4.24). Pokud máte více Linuxových distribucí, tak tento krok podle potřeby zopakujte. Pokud máte na počítači ještě operační systém DOS nebo Windows (doufám, že ne :-)), tak v hlavním menu zvolte položku DOS a zadejte zde opět oddíl na kterém se tento nepřívětivý systém nachází a opět nezapomeňte tuto volbu nějak pojmenovat (třeba DOS nebo Win).

Zatím jsme provedli pouze editaci souboru /etc/lilo.conf. Pokud jste si jisti správností své konfigurace můžete bez obav v hlavním menu přejít na položku Install, která provede zapsání konfigurace do MBR disku. Pokud se něco nepovedlo zopakujte výše uvedený postup a případně se podívejte do souboru /etc/lilo.conf a pokuste se nalézt chybu. Pokud po instalaci Linuxu provádíte instalaci Windows je možné, že vám tento systém přepíše váš MBR, pak stačí nabootovat do Linuxu (pomocí CD, diskety), nastavit LiLo a zapsat jej.

Pro ilustraci zde ještě přikládám výpis mého souboru /etc/lilo.conf. Je částečně okomentován a okleštěn pro jednoduchost o některé položky.

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
append="hdc=ide-scsi"   # emulace vypalovacky jako SCSI 
                        # (zarizeni je sekundarni master)
boot = /dev/hda         # MBR je primarni master disk
#prompt                 # vypis promptu pri bootu 
                        # (jinak bootoje bez promptu defaultni jadro)
default=slack           # system, ktery se bude defaultne zavadet   
#timeout = 50           # doba prodlevy (v milisekundach)
# Normal VGA console
vga = normal            # nepouzivam frame buffer
# ramdisk = 0           # paranoia setting
# End LILO global section
# Linux bootable partition config begins
image = /boot/vmlinuz   # umisteni jadra Linuxu
  root = /dev/hda1      # korenovy souborovy system
  label = slack         # popiska 
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
# Linux bootable partition config ends

Jak vidíte výše, není to vůbec nic složitého a klidně můžete soubor /etc/lilo.conf editovat ručně bez použití nástroje liloconfig. Pro zapsání nové konfigurace nezapomeňte zadat příkaz lilo, na to se velice často zapomíná :-)

Myslím si, že pro začátek to bylo celkem osvětlující a pro další informace můžete sáhnout do manuálových stránek: man lilo a především man lilo.conf nebo se zeptat ne některé detaily přímo v diskuzi pod článkem.

Konfigurace sítě

Síť je možné stejně tak jako zavaděč LiLo konfigurovat buď pomocí grafického nástroje netconfig nebo pomocí ruční editace příslušných souborů. Já zde pro větší názornost použiji paralelně oba způsoby nastavení, tedy veškeré kroky co provedu v programu netconfig budu zároveň provádět i ruční editací, aby bylo názorně vidět, jak pracuje program netconfig. Nikoho nenutím nastavovat síť pomocí ruční editace souborů, ale je dobré si uvědomit, že zvládnutí ruční konfigurace sítě vám umožní tuto potom provádět v jakékoliv Linuxové distribuci bez znalosti konkrétních grafických konfiguračních nástrojů pro tuto distribuci vlastních a v neposlední řadě vám i pomůže lépe pochopit funkci systému.

Nuže, spusťme tedy konfigurační nástroj netconfig a to za použití stejného příkazu (nezapomeňte, že musíte být přihlášeni jako uživatel root).

V prvním kroku konfigurace musíme zadat jméno našeho počítače (viz obr.). Toto jméno se zadává ve zkrácené formě bez doménové části (ta se bude zadávat v následujícím kroku). Pokud bude náš počítač součástí pouze nějaké malé lokální sítě s občasným připojením na Internet přes modem nebo klasickou síť, tak je prakticky možné zvolit toto jméno libovolně. Pozor však na to, že se bude toto jméno objevovat i navenek (v síti Internet) a to díky službám typu smtp, http,..., které toto jméno využívají pro identifikaci počítače.

Další položkou, kterou budeme nastavovat je nastavení doménového jména. Zde platí stejná pravidla jako jsem již uvedl výše. Pokud leží váš počítač v síti, která je součástí nějaké domény (většinou tomu tak je), tak je vhodné jako doménové jméno samozřejmě zvolit název této domény (viz obr.).

Ruční editací dosáhneme změny v nastavení jména počítače buď příkazem

hostname jmeno_naseho_pc

nebo editací souboru /etc/HOSTNAME do něhož zapíšeme naše jméno (a to i s doménovou částí).

hatatitla.example.net

Toto jméno by mělo být samozřejmě bez diakritiky, mezer a zvláštních znaků. Kontrolu našeho nastavení můžeme provést příkazem hostname -f. Dále je potřeba editovat soubor /etc/hosts

192.168.1.2    hatatitla.example.net   hatatitla

Po nastavení doménového jména se dostaneme k zajímavější a důležitější části nastavování a to konkrétně k nastavení IP adresy. V mé malé síti neleží žádný DHCP server, který by mně přiděloval IP adresy, takže použiji statické nastavení IP adresy mého počítače (viz obr.). Protože jsem v lokální síti, nastavuji zde lokální IP adresu (tedy neveřejnou), konkrétně pak 192.168.1.2 (viz obr.). Síťovou masku ponechávám nastavenou systémem, protože je správně (viz obr.). Bránu do další sítě (třeba do Internetu) nastavuji 192.168.1.1 (viz obr.) a jmenný server mám umístěn na tomtéž stroji, takže IP adresu ponechávám stejnou, systémem automaticky již navolenou (viz obr.). Tímto je veškerá konfigurace skončena a výsledek si ještě můžete zkontrolovat v závěrečném okně (viz obr.) a buď nastavení akceptovat nebo udělat ještě případné změny v nastavení.

Pokud provádíte nastavení ručně, tak výše uvedené kroky nastavení IP adresy a brány se provádí (nově od verze Slackwaru 9.1) v souboru /etc/rc.d/rc.inet1.conf, jehož obsah nepotřebuje žádný další komentář.

# Config information for eth0:
IPADDR[0]="192.168.1.2"
NETMASK[0]="255.255.255.0"
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Default gateway IP address:
GATEWAY="192.168.1.1"

Nastavení jmenného serveru (tedy služby zajišťující překlad jmenných názvů adres na IP adresy) se provádí v souboru /etc/resolv.conf.

search example.net
nameserver 192.168.1.1

Pro aktivaci tohoto vašeho ručního nastavení stačí spustit skript /etc/rc.d/rc.inet1 start, případně /etc/rc.d/rc.inet1 restart, pokud již běžel.

Ještě zde zmíním jednu možnost konfigurace sítě, která se hodí v případě, že si chcete někde jenom krátkodobě připojit do sítě váš počítač. Pokud již máte nastavenou nějakou adresu (to zjistíte příkazem ifconfig), tak je zapotřebí toto nastavení rozhraní mající přiřazenou síťovou adresu (tedy pokud není vhodná i pro připojení v nové dočasné síti) zrušit a to příkazem ifconfig eth0 down. Pozor, možná vás napadlo proč to nezrušit příkazem /etc/rc.d/rc.inet1 stop. To není dobrý nápad, protože tím si zrušíte i loopback zařízení, které je potřeba. Nové dočasné nastavení sítě nastartujeme těmito dvěma příkazy

ifconfig eth0 192.168.2.250 netmask 255.255.255.0
route add default gw 192.168.2.1

a případně ještě přenastavíme soubor /etc/resolv.conf na adresu jmenného serveru dané sítě. K původnímu nastavení sítě se dostaneme jednoduše tím, že restartujeme síťové rozhraní, opět příkazem /etc/rc.d/rc.inet1 restart. Jednoduché, že :-)

Upgrade balíčků

Protože již uplynul nějaký ten pátek od doby, kdy byla verze 9.1 vypuštěna oficiálně do světa existuje již i spousta oprav některých balíčků, ať již oprav bezpečnostních chyb nebo oprav v chybách funkčnosti. Tyto opravené balíčky je možné nalézt na ftp serverech mirrorů Slackwaru (seznam těchto mirrorů naleznete na adrese http://www.slackware.com/getslack/) a to konkrétně v adresáři patches/packages/. Změny v balíčcích a důvody oprav naleznete v souboru patches/ChangeLog.txt.

Pokud v této kolekci nalezneme některé z balíčků, které v systému máme nainstalované, tak si je stáhneme někam na lokální disk do vhodného adresáře (třeba /usr/src nebo /usr/local/src). Ještě před samotným upgradem je dobré se přepnout do úrovně běhu systému 1 ve kterém máme jistotu, že nám běží pouze základní služby a tedy je spuštěn minimální počet procesů a přihlášen je pouze jeden uživatel (root) a ani síťové připojení není k dispozici. Přepnutí do úrovně běhu systému 1 provedeme příkazem (samozřejmě jako uživatel root)

telinit 1

Samotný upgrade potom provedeme příkazem

upgradepkg nazev_upgradovaneho_balicku

Pokud balíček, který chcete upgradovat v systému není, tak systém upgradování přeruší. Poté co jsme provedli upgrade všech potřebných balíčků, tak se přepneme zase zpátky do normální úrovně běhu systému

telinit 3

Pokud máte nějaké náměty nebo nápady, tak neváhejte a napište je do diskuze pod článkem.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=75