Start Linuxu Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Autor:
Základní pojmy – struktura disku Struktura Linuxového disku je podobná jako u DOSu a Windows: Master Boot Record (MBR) je standardizován a není závislý na použitém operačním systému. – Prvních 446 bytů kód startovacího programu. – Následujících 64 bytů pro uložení tabulky diskových oddílů, která obsahuje informace maximálně o 4 oddílech. Bez této tabulky nemůže být na disku žádný souborový systém - disk je bez této tabulky nepoužitelný. – Poslední 2 byty musí obsahovat speciální magické číslo (AA55). MBR, který na této pozici obsahuje jiné číslo, může být BIOSem, a některými operačními systémy, posouzen jako neplatný. Zaváděcí sektory jsou uloženy na každém diskovém oddílu jako první (výjimku tvoří rozšířené diskové oddíly, které jsou pouze kontejnery pro další oddíly). – Zaváděcí sektory na oddílech vytvořených z DOSu, OS/2, a Windows jsou velké 512 bytů, a je zde uložen kód pro spuštění operačního systému uloženého na tomto oddílu. – Po vytvoření souborového systému (v podstatě instalaci Linuxu), je zaváděcí sektor prázdný. Linuxový oddíl není schopen zavést sám sebe, i když oddíl obsahuje platný souborový systém s jádrem! – Aby bylo možné zavést z určitého oddílu Linux, musíme do zaváděcího sektoru uložit zaváděcí program dodatečně. Zaváděcí sektor s platným zaváděcím kódem obsahuje na posledních 2 bytech také magické číslo (AA55).
Struktura disku MBR Startovací programTabulka oddílůAA55 Zaváděcí sektor diskový oddíl 2 diskový oddíl 1diskový oddíl 3 diskový oddíl 4 DATA pevný disk
Zaváděcí program V Linuxu se používají dva zavaděče: – LILO – GRUB Existuje několik variant toho jak je startovat: je-li na disku jen jeden operační systém, nainstaluje se zavaděč do MBR. je-li na disku více operačních systémů: 1.Instalace zavaděče do MBR: musí jít o zavaděč, který umí spouštět různé operační systémy. Který bude spuštěn, si můžeme vybrat ve startovací nabídce. Aby došlo ke spuštění jiného systému, musí být počítač restartován. 2.Instalace zavaděče do zaváděcího sektoru: je vhodná tehdy, když zavaděč neumí spustit určitý operační systém. Pak se do příslušného diskového oddílu instaluje zavaděč, který systém v oddílu spustí. Ke spuštění zavaděče v oddílu se použije jiný zavaděč.
Vlastní start systému po zapnutí počítače převezme BIOS řízení, nastaví obrazovku a klávesnici na počáteční hodnoty a otestuje paměť. Poté načte z paměti CMOS (kde je uloženo nastavení BIOSu) současný čas a datum a informace o nejdůležitějších periferních zařízeních. Po načtení CMOS by měl BIOS rozeznat první pevný disk, odkud může začít zavádět operační systém. pak se nahraje počátečních 512 bytů z prvního segmentu pevného disku (z MBR) do paměti a spustí se kód (zavaděč), který je uložen na začátku tohoto segmentu. Ten začne nahrávat zbytek operačního systému. zavaděč nahraje jádro a ramdisk (initrd) do paměti. Linuxové jádro umožňuje zavedení malého souborového systému do paměti, ve kterém se zajistí spuštění několika programů. Pak dojde k rozbalení initrd a jeho připojení ve formě dočasného kořenové souborového systému. Initrd obsahuje minimální linuxový systém s programem linuxrc,který je spuštěn ještě před připojením skutečného kořenového systému. Po úspěšném dokončení běhu linuxrc jádro uvolní paměť zabranou initrd a spustí init. Program init inicializuje všechny další procesy, představuje tedy otce všech procesů. Mezi všemi programy má zvláštní roli: spouští ho přímo jádro a je imunní proti signálu 9, který normálně ukončí každý proces. Všechny další procesy pak program init spouští buď sám, nebo některý z jeho potomků. BIOS zavaděč jádro a initrd linuxrc init
INIT Program init se konfiguruje centrálně v souboru /etc/inittab, kde se: – definují úrovně běhu (runlevel) – určí se, které služby a démony mají být na jednotlivých úrovních k dispozici. – Podle údajů v souboru /etc/inittab pak program init spouští různé skripty, které jsou z důvodu přehlednosti umístěny ve společném adresáři /etc/init.d.
Úrovně běhu 0Stop ( System halt) 1Jednouživatelský režim ( Single user mode ) 2Lokální víceuživatelský režim bez sítě ( Local multiuser without remote network (např. NFS)) 3Plně víceuživatelský režim se sítí ( Full multiuser with network ) 4Nepoužito 5Plně víceuživatelský režim se sítí a KDM (standard), GDM nebo XDM ( Full multiuser with network and xdm ) 6Restart systému ( System reboot ) V Linuxu existují různé úrovně běhu, které definují, v jakém stavu se nachází systém.
Úrovně běhu Standardní úroveň běhu, které systém dosáhne po startu, je uvedena v souboru /etc/inittab v položce initdefault. Obvykle se používá: – úroveň 5 – základní režim práce v grafice – úroveň 3 - základní režim práce v příkazové řádce – úroveň 1 - konfigurační režim práce v příkazové řádce Úroveň běhu lze změnit zavoláním programu init s udáním požadované úrovně běhu (což je dovoleno pouze superuživateli): – init 1 systém přejde do jednouživatelského režimu single user mode. – init 5 (init 3) systém přejde opět na normální úroveň běhu, na které běží potřebné služby a kde se mohou přihlašovat uživatelé. Při změně úrovně běhu se nejprve spustí tzv. stop-skripty, které ukončí činnost některých programů současné úrovně. Dále se spustí start-skripty nové úrovně, a tím se zpravidla spustí i řada programů.
Defaultní úroveň běhu Zde se nastavuje úroveň běhu po startu (defaultní)
Speciální funkce INIT Tyto speciální funkce definují zvláštní klíčová slova ve třetím poli záznamu konfiguračního souboru. Několik příkladů: – powerwait – powerwait umožní init v případě výpadku napájení zastavit systém. Předpokládá se, že systém používá záložní zdroj UPS a software, jenž sleduje UPS a informuje init o případném výpadku napájení. – ctrlaltdel – ctrlaltdel nařizuje init znovu zavést systém, když uživatel současně zmáčkne klávesy - -. Uvědomte si, že správce systému může reakci na tuto kombinaci nastavit tak, že se místo rebootu provede nějaká jiná akce, že se například – zvláš když má k systému přístup širší veřejnost – tato klávesová zkratka ignoruje. (Nebo se spustí program nethack.) – sysinit – sysinit příkaz spouštěný při startu systému. Typicky se takto zajistí například smazání adresáře /tmp. Výše uvedený seznam klíčových slov není úplný. Další možnosti i podrobnosti týkající se těch, o kterých se zmiňujeme, uvádí manuálová stránka souboru inittab
Speciální funkce Zde jsou definovány speciální funkce)
Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Linux - Dokumentační projekt, 3. aktualizované vydání LXI1 – Linux instalace (Příručka ke školení Gopas) LXI2 – Linux administrace systému (Příručka ke školení Gopas)