Kapitola 4. Konfigurácia systému

Obsah
Prehľad systému
Vyberanie jadra
Zhrnutie

Pred tým, než môžete nakonfigurovať zložitejšie časti svojho systému, je vhodné sa naučiť ako je systém organizovaný a ktoré príkazy môžete použiť na hľadanie súborov a programov. Je tiež dobré vedieť, či potrebujete skompilovať jadro na mieru a akými krokmi to urobíte. Táto kapitola vás oboznámi s organizáciu systému a konfiguračnými súbormi. Potom sa môžeme pohnúť ďalej ku konfigurácii zložitejších častí systému.

Prehľad systému

Je dôležité chápať ako je Linuxový systém usporiadaný pred tým, ako sa zahĺbime do rôznych konfiguračných aspektov. Linux-ový systém je značne odlišný od systému DOS alebo Windows (alebo dokonca Macintosh). Ale tieto odstavce vám pomôžu oboznámiť sa s jeho usporiadaním tak, aby ste si mohli nakonfigurovať systém podľa vlastných predstáv a potrieb.

Usporiadanie súborového systému

Prvý viditeľný rozdiel medzi Slackware Linux-om a DOS-om alebo Windowsovým systémom je súborový systém. Pre začiatočníkov: nepoužívame písmená na označenie rôznych partícií. Pod Linux-om existuje jediný hlavný adresár. Môžete ho prirovnať k disku C: pod DOS-om. Každá partícia na vašom systéme môže byť namontovaná do nejakého podadresára hlavného adresára. Je to niečo na spôsob stále sa rozširujúceho disku.

Hlavný adresár voláme root adresár a označuje sa jednoduchým lomítkom. (/). Tento koncept môže vyzerať čudne, ale v skutočnosti vám uľahčuje život keď potrebujete pridať viac diskového priestoru. Napríklad si predstavte, že sa vám minulo miesto na disku, ktorý má na sebe /home. Väčšina ľudí inštaluje Slackware na jeden veľký root disk. Nuž, pretože partícia môže byť pripojená do ľubovoľného adresára, môžete jednoducho ísť do obchodu, kúpiť disk a namontovť ho do /home. Teraz ste “transplantovali” viac miesta do svojho systému a to bez toho, aby ste museli presúvať veci hore-dole.

Nižšie nájdete popisy adresárov na najvyššej úrovni v systéme Slackware.

/bin

Najpodstatnejšie programy sú uložené tu. Predstavujú holú minimálnu množinu programov potrebných pre užívateľa na používanie systému. Veci ako je shell a príkazy na prácu so súborovým systémom (ls, cp, a tak ďalej) sú uložené tu./bin adresár zvyčajne už nebýva modifikovný po nainštalovaní. Ak predsa, tak zvyčajne vo forme upgradu, ktorý poskytujeme.

/boot

Súbory, ktoré používa Linux Loader (LILO). Tento adresár tiež nebýva po nainštalovaní modifikovaný.

/cdrom

Pamätáte sa, že všetky disky musia byť namontované do podadresárov hlavného root adresára? Nuž, /cdrom je poskytovaný ako pripájací bod pre vašu CD-ROM mechaniku.

/dev

V Linux-e je všetko považované za súbor, dokonca aj hardwarové zariadenia ako sú sériové porty, disky a skenery. Aby ste mohli pristupovať k týmto zariadeniam, musia existovať špeciálne súbory zvané device node. Všetky device node sú uložené v adresári /dev. Zistíte, že toto platí na mnohých operačných systémoch podobných UNIX-u.

/etc

Tento adresár uchováva systémové konfiguračné súbory. Všetko od konfiguračných súborov X Windows, cez databázu užívateľov až po štartovacie skripty. Systémový administrátor sa časom s týmto adresárom celkom dobre oboznámi.

/home

Linux je mnohoužívateľský operačný systém. Každý užívateľ na systéme dostane konto a vlastný adresár pre osobné súbory. Tento adresár sa nazýva užívateľov “domovský” adresár. Adresár /home je poskytovaný ako defaultné miesto pre užívateľské domovské adresáre.

/lib

Systémové knižnice potrebné pre základné operácie sú uložené tu. Okrem iného sú tu uložené C knižnica, dynamický loader, knižnica ncurses a moduly jadra.

/lost+found

Keď system bootuje, vykonáva sa kontrola súborových systémov V prípade, že sa zistia nejaké chyby, rozbehne sa program fsck, aby zistil či môžu byť opravené. Opravené časti súborového systému sa zapíšu do adresára /lost+found.

/mnt

Tento adresár je poskytovaný ako montovací adresár pre dočasné montovanie pevných alebo výmenných diskov.

/opt

Voliteľné softwarové balíky. Úmysel, ktorý sa skrýva za /opt je to, že každý softwarový balík sa inštaluje do /opt/<softwarový balik>, čo uľahčuje jeho prípadné odinštalovanie neskôr. Slackware distribuuje niektoré veci do /opt (ako napríklad KDE v /opt/kde), ale kľudne pridajte čokoľvek iné do /opt.

/proc

Toto je zvláštny adresár. V skutočnosti to nie je časť súborového systému, ale virtuálny súborový systém, ktorý poskytuje prístup k informáciám jadra. Rôzne informácie, o ktorých vás jadro chce informovať sú poskytované prostredníctvom “súborov” v adresári /proc. Cez niektoré z týchto “súborov” možno posielať informácie jadru. Skúste urobiť cat /proc/cpuinfo.

/root

Systémový administrátor je na systéme známy ako “root”. Rootov domovský adresár je uložený v /root namiesto /home/root. Dôvod je jednoduchý. Čo ak /home je na inej partícii ako / a nemohlo byť namontované? root by sa prirodzne chcel prihlásiť a opraviť problém. Ak by jeho domovský adresár bol na zničenom súborovom systéme, sťažilo by to jeho prihlasovanie.

/sbin

Podstatné programy, ktoré sú spúšťané root-om a počas bootovania systému sú uložené tu. Normálni užívatelia nebudú spúšťať programy z tohto adresára.

/tmp

Je miesto dočasného úložiska. Všetci užívatelia majú právo čítať a zapisovať do tohto adresára.

/usr

Toto je veľký adresár Linux-ového systému. Všetko ostatné pôjde sem programy, dokumentácia, zdrojový kód jadra a X window systém. Toto je adresár, do ktorého budete najpravdepodobnejšie inštalovať programy.

/var

Tu sú uložené súbory systémových logov, údaje vyrovnávacích pamätí a zamykacie súbory programov. Tento adresár je určený pre často sa meniace dáta.

Teraz by ste mali mať dobrú predstavu o tom, čo ktoré adresáre v súborovom systéme obsahujú. Nasledujúce odstavce vám pomôžu jednoducho nájsť súbory, ktoré potrebujete tak, aby ste to nemuseli robiť ručne.

Hľadanie súborov

Viete, čo každý z hlavných adresárov obsahuje, ale to ešte stále nestačí na to, aby ste našli, čo potrebujete. Chcem povedať, mohli by ste prechádzať cez adresáre, ale existujú rýchlejšie spôsoby. V Slackware-i xistujú štyri hlavné príkazy na vyhľadávanie súborov.

which

Prvý z nich je príkaz which(1). which sa používa na rýchle zistenie, kde sa program nachádza. Tento príkaz prehľadáva adresáre vymenované v PATH a vráti prvý výskyt, ktorý nájde a cestu k jeho adresáru. Predstavte si napríklad toto:

   $ which bash
   /bin/bash

Z toho vidn, že bash je v adresári /bin. Toto je veľmi jednoduchý príkaz na hľadanie, pretože hľadá len podľa PATH.

whereis

Príkaz whereis(1) pracuje podobne ako which, ale hľadá tiež manuálové stránky a súbory zdrojového kódu. whereis vyhľadávanie pre bash by malo vrátiť toto:

   $ whereis bash
   bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Tento príkaz nám povedal nielen to, kde je samotný program, ale aj kde je uložená online dokumentácia. Ale aj tento príkaz je obmedzený. Čo ak chcete hľadať nejaký špecifický konfiguračný súbor? Nemôžete na to použiť which alebo whereis.

find

Príkaz find(1) hľadá čokoľvek. Chcem hľadať na celom systéme defaultný súbor xinitrc.

   $ find / -name xinitrc
   ./var/X11R6/lib/xinit/xinitrc

find-u trvá nejakú dobu než zbehne, pretože musí prehľadať celý adresárový strom. A navyše, ak tento príkaz spustíte ako normálny užívateľ, pravdepodbone dostanete chybové hlásenia o odopretom prístupe pre adresáre, do ktorých sa môže pozerať iba root. Ale find našiel hľadaný súbor a to je dobre. Keby to len šlo trocha rýchlejšie...

locate

Príkaz locate(1) prehľadáva celý súborový systém podobne ako príkaz find, ale prehľadáva len databázu, namiesto skutočného súborového systému. Databáza sa automaticky obnovuje o 4:40 ráno, takže môže obsahovať vcelku čerstvý zoznam súborov na vašom systéme. Môžete ručne spustiť updatedb(1), aby sa obnovila databáza, ktorú používa locate (pred ručným spustením updatedb musíte najprv urobiť su na užívateľa nobody). Tu je príklad príkazu locate v akcii:

   $ locate xinitrc   # we don't have to go to the root
   /var/X11R6/lib/xinit/xinitrc
   /var/X11R6/lib/xinit/xinitrc.fvwm2
   /var/X11R6/lib/xinit/xinitrc.openwin
   /var/X11R6/lib/xinit/xinitrc.twm

Dostali sme viac, než sme chceli nájsť a navyše rýchlo. S týmito príkazmi, by ste mali byť schopný nájsť čokovek, čo potrebujete na vašom Linux-ovom systéme.

Adresár /etc/rc.d

Inicializačné súbory systému sú uložené v adresári /etc/rc.d. Slackware používa podobný štýl usporiadania inicializačných súborov ako BSD. Každá úloha alebo úroveň má svoj vlastný rc súbor. To umožňuje organizovanú štruktúru, ktorá sa veľmi ľahko udržiava.

Existuje niekoľko kategórií inicializačných súborov. Sú to spúšťanie systému, úrovne behu, inicializácia siete a kompatibilita so Systémom V. Kvôli tradícii všetko ostatné hodíme do kategórie “ostatné”.

Spúšťanie systému

Prvý program, ktorý sa rozbieha pod Slackware-om, okrem jadra, je init(8). Tento program číta súbor /etc/inittab(5), aby sa z neho dozvedel ako má rozbehnúť systém. Init spúšťa skript /etc/rc.d/rc.S, aby pripravil systém na prechod do želanej úrovne behu. Súbor rc.S povoľuje virtuálnu pamäť, primontuje súborové systémy, čistí niektoré adresáre s logmi, inicializuje Plug and Play zariadenia, nahráva moduly jadra, konfiguruje PCMCIA zariadenia, nastavuje sériové porty a spúšťa inicializačné skripty Systému V (ak ich nájde). Prirodzene rc.S má toho na práci veľa, ale má na pomoc niektoré skripty v /etc/rc.d, ktoré rc.S bude volať aby dokončili jeho prácu:

rc.S

Toto je skutočný skript inicializujúci systém.

rc.modules

Nahráva moduly jadra. Tu sa nahrávajú drajvery pre vašu sieťovú kartu, podporu PPP, a iné podobné veci. Ak tento skript nájde rc.netdevice, spustí ho tiež.

rc.pcmcia

Testuje prítomnosť a konfiguruje PCMCIA zariadenia, ktoré môžete mať na svojom systéme. Toto je najužitočnejšie pre užívateľov laptopov, ktorí pravdepodobne majú PCMCIA modem alebo sieťovú kartu.

rc.serial

Konfiguruje vaše sériové porty spúšťaním príslušných príkazov setserial.

rc.sysvinit

Hľadá inicializačné skripty pre Systém V pre zvolenú úroveň behu a spúšťa ich. Podorobnosti sa dočítate nižšie.

Inicializačné skripty úrovne behu

Po tom ako skončí inicializácia systému, init začne inicializáciu úrovne behu. Úroveň behu popisuje stav, v ktorom váš stroj bude bežať. Znie to nadbytočne? Nuž, úroveň behu hovorí init-u či systém nabehne do mnohoužívateľského alebo jednoužívateľského režimu, či chcete sieťové služby alebo nie, a či budete používať Systém X Window alebo agetty(8) na spracovanie prihlásení. Súbory popísané nižšie definujú rôzne úrovne behu v Slackware Linux-e.

rc.0

Zastaviť systém(úroveň behu 0). Za normálnych okolností je to symbolická linka na rc.6.

rc.4

Štartovanie do mnohoužívateľského režimu (úroveň behu 4), v X11 s loginovacím manažerom KDM, GDM, alebo XDM.

rc.6

Reboot systému (úroveň behu 6).

rc.K

Štartovanie do jednoužívateľského režimu (úroveň behu 1).

rc.M

Mnohoužívateľský režíim (úrovňe behu 2 a 3), ale so štandartným textovým login-om. Toto je defaultná úroveň behu v Slackware-i.

Inicializácia siete

Úrovne behu 2, 3, a 4 naštartujú sieťové služby. Nasledujúce súbory sú zodpovedné za inicalizáciu siete:

rc.inet1

Vytvorený pomocou programu netconfig, tento súbor je zodpovedný za konfigurovanie samotného sieťového rozhrania.

rc.inet2

Sa spúšťa po rc.inet1 a štartuje základné sieťové služby.

rc.atalk

Štartuje služby AppleTalk.

rc.httpd

Štartuje web server Apache.

rc.samba

Štartuje služby pre zdieľanie súborov a tlačiarní pre Windows.

rc.news

Štartuje news server.

Kompatibilita so Systémom V

Kompatibilita init-u so Systémom V bola zavedená v Slackware 7.0. Mnoho iných Linux-ových distribúcií používa tento štýl namiesto BSD štýlu. V podstate, každá úroveň behu má svoj pod-adresár pre inicializačné skripty, zatial čo BSD štýl má jeden inicalizačný skript pre každú úroveň behu.

The rc.sysvinit skript bude hľadať akékoľvek inicializačné skripty Systému V ktoré máte v adresári /etc/rc.d a spúšťa ich ak zodpovedajú pre danú úroveň behu. Toto je užitočné pre niektoré balíky komerčného softwaru, ktoré inštalujú inicializačné skripty Systému V a skripty v štýle inicializácie BSD.

Iné súbory

Skripty opísané nižšie sú ostatné inicializačné skripty. Tieto sú typicky spúšťané z jedného z hlavných skriptov spomínaných vyššie, takže jediné čo, potrebujete je editovať ich obsah.

rc.cdrom

Ak je to povolené, tento skript bude hľadať CD-ROM v mechanike a ak ho nájde, pripojí ho pod /cdrom.

rc.gpm

Štartuje všeobecný driver pre myš. Dovoľuje kopírovať a prilepiť text na Linux-ovej konzole.

rc.ibcs2

Štartuje podporu pre Intel Binárnu Kompatibilitu. Toto je potrebné len ak plánujete spúšťanie programov kompilovaných pre SCO UNIX, alebo iné druhy komečných Intel UNIX-ov. Nie je nutný na bežanie Linux-ových programov.

rc.font

Nahráva zvláštne fonty pre obrazovku konzoly.

rc.local

Obsahuje akékoľvek špecifické príkazy pre štartovanie vášho systému. Tento súbor je po čerstvej inštalácii prázdny, pretože je rezervovaný pre lokálnych administrátorov. Tento skript sa spúšťa po tom, ako sa vykonala všetka ostatná inicializácia.

Na povolenie skriptu, mu potrebujete len pridať práva na spúšťanie pomocou príkazu chmod. Na zakázanie skriptu, zrušte mu práva na vykonávanie. Podrobnejšie informácie o príkaze chmod, nájdete v sekcii nazvanej Prístupové práva v Kapitole 9.