BIOS - 3. díl: Advanced CMOS Setup - bootujeme napoprvé
21.7.2008, Petr Stránský, článek
V minulém díle jsem říkal něco o tom, že Standard CMOS Setup je pouhým základem, v němž žádné velké věci nikdy nevykouzlíte. Následující nabídka (Advanced BIOS Features) nám již ale poskytne mnohem větší možnosti a pole působnosti.
Kapitoly článku:
- BIOS - 3. díl: Advanced CMOS Setup - bootujeme napoprvé
- Bootujeme z čehokoliv
- Bootování potřetí, aneb jak to vlastně nastavit?
- HT aneb Když dva dělají totéž, není to totéž
Jak již bylo v tomto seriálu několikrát zmíněno, názvy jednotlivých menu či dokonce vlastních konfiguračních položek se mohou výrazně lišit. Nejinak je tomu i v případě právě probíraného menu, a proto vězte, že u BIOSů jiných výrobců můžete stejné položky nalézt v menu Advanced BIOS Setup. Pokud základ vašeho počítače běží na tzv. svislé verzi BIOSu, bude většina voleb přítomna v nabídce Boot.
Advanced BIOS Features, jak jej možná neznáte
V této chvíli vás jistě napadla otázka: Proč vlastně Boot? Jak již všichni jistě dobře víte, bootování znamená zavádění operačního systému z nějakého diskového subsystému. A je přitom jedno, zda se bude jednat o kompaktní CD-ROM s Live distribucí Linuxu, USB flashdisk či pevný disk, z něhož také bývá zaváděno nejčastěji. Odpověď na výše položenou otázku je pak nasnadě, pokud si uvědomíme, že proces závádění lze do nejmenších podrobností nastavit právě v tomto systémovém menu.
Mezi další rozhodnutí, která zde můžete provést, patří také možnost zapnutí popř. vypnutí vyrovnávacích pamětí cache L1/L2 na procesoru. Ano, říkám vypnutí. I takovouto nesmyslnost, která sníží výkon vašeho počítače snad až na úroveň prvních Pentií, tady dokážete. Z tohoto také vyplývá mé doporučení - nebojte se si veškeré měněné položky někam zapisovat. Jsme lidé, žádné stroje a zapomínat je přeci lidské. V případě výskytu jakýchkoliv problémů vám pak nebude jejich náprava činit žádné potíže. Dále je ale mou povinností vám říci, že veškeré prováděné úpravy děláte na své riziko. Pokud si však budete počínat obezřetně, zcela určitě vás nic nepříjemného nikdy nepřekvapí.
Připravit, pozor, bootujeme!
Tuto část programu Setup jistě všichni zcela určitě znáte. Protože změna pořadí jednotek, z kterých se bude BIOS pokoušet zavést instalovaný operační systém, patří téměř k základním znalostem a dovednostem většiny uživatelů počítače. Pokud jste však o procesu bootování ještě nikdy neslyšeli, nemáte se za nic co stydět. Až se vás příště někdo zeptá, zcela jistě mu odpovíte správně.
u svislého typu Setupu se setkáme naopak s menu Boot
BIOS, jakožto základní stavební kámen celého počítače, je propojen s ostatními komponentami už na té nejnižší a nejzákladnější hardwarové úrovni, a jen díky tomu dokáže zajistit bezproblémovou funkčnost počítače jako celku. Díky této spolupráci dokáže také zjistit, kde na disku je umístěn zavaděč OS a následně jej i zavést. Pojďme se však nejprve podívat, jak to vlastně ten "divnej" BIOS vlastně dělá?
Podrobnou funkčnost pevných disků, jejich rozhraní či specifikace, jsme dopodrobna rozebrali již dříve. Tady také naleznete popis jednotlivých struktur, které naleznete na pevném disku - mezi ně se řadí též tzv. sektory, mezi které se Boot sektor právem řadí. Pro úplnost je ještě třeba říci, že ač sektory jako takové považujeme za nejmenší adresovatelnou jednotku pevného disku, pro operační systémy je důležitý až tzv. cluster. Tento pojem pouze označuje určité uskupení sektorů, na která jsou již vlastní data konečně ukládána. Proč tomu tak je, zjistíte též po klepnutí na výše zmíněný odkaz, a to včetně mnoha dalších zajímavostí a informací ze světa pevných disků.
Jak již bylo řečeno, boot sektor (u jiných než IBM kompatibilních počítačů také nazýván jako Boot Block) je stejně jako jeho další sektoroví bratříčci nejmenší adresovatelná jednotka pevného disku. Jeho umístění je ale velmi specifické. Tak i obsah, jenž slouží k načtení různých operačních systémů, a to díky tomu, že kód v něm obsažený ukazuje vždy na určité místo pevného disku, na němž je daný systém uložen a odkud se dá jednoduše zavést. Někdy ale Boot sektor na žádný takový operační systém ukazovat nemusí (čili není to podmínkou).
Nejrozšířenější tvrzení, že se vždy bude jednat pouze o první sektor nulté stopy, je ale chybné. Zaváděcích sektorů je totiž více typů, přičemž tím hlavním a nejčastěji se vyskytujícím je Volume Boot Record (VBR). Ten nalezneme na prvním sektoru datového úložiště, které nebylo rozděleno na oddíly (logické jednotky ve své podstatě pouze v systému představují další fyzické disky, velice zjednodušeně řečeno). Pokud by byl disk rozdělen, byl by Volume Boot Record přítomen na disku vícekrát, a sice právě vždy na začátku (první sektor) každé z těchto datových oblastí.
Každá z těchto oblastí však musí být dále zakončena speciální hodnotou 0xAA55 hexadecimálně (v binárním tvaru 10101010 01010101), která slouží jako značka pro ověření, že boot sektor je opravdu boot sektorem, je korektně zapsán, a tedy i v něm obsažená tabulka rozdělení (viz. dále) je platná. Pokud by zde tato signatura nebyla, systém by skončil zavádění OS chybovým hlášením. Díky ní je také možné (s pomocí různých systémových utilit) na disku jednotlivé tabulky oddílů vyhledat.
Pokud by pak třeba někdy došlo k poškození tabulky diskových oddílů je možné díky dalším speciálním signaturám (uložených v tzv. superblocích) s různým úspěchem velkou část dat zrekonstruovat a obnovit.
skvělý prográmek pro práci se diskovou strukturou - zázrak jménem TestDisk
Za všechny můžeme zmínit například utilitku Gpart, která podporuje práci jak s primárními, tak i rozšířenými oddíly, je velmi dobře zdokumentována a zároveň s její pomocí můžete opravit poměrně velké množství rozmanitých souborových systémů. Dobré zkušenosti mám také s prográmkem TestDisk.
Tip: Pozornosti hodný je také prográmek společnosti A-FF s poetickým názvem Partition Find and Mount, který dokáže velmi jednoduše prohledat celý pevný disk, zda na něm nejsou přítomny nějaké ztracené nebo poškozené oddíly. Pokud ano, dokáže je připojit k stávajícímu systému, a tím umožnit jednoduchý přístrup k datům a vytvoření jejich zálohy. Program je velmi intuitivní, a práci s ním tak zvládnou i méně pokročilí uživatelé.
Celý zaváděcí sektor představuje 512 bajtů dat. Tato celková velikost je rozdělena mezi vlastní zavaděč systému, který začíná na adrese 0x0000h a má k dispozici 446 bajtů a tabulku rozdělení disku/diskových oddílů (Partition Table) o velikosti 64 B, jež začíná na adrese 0x1BEh. Každá z těchto oblastí má přitom vlastní specifické určení. Tabulka rozdělení tak uchovává informace o jednotlivých oddílech, které jsou na disku vytvořeny, popisuje jejich začátek a konec a také zavádí specifické identifikační číslo, které označuje typ oddílu a určuje, k čemu může být využíván. Nejčastější příklady kódových značení ukazuje tabulka.
Přehled nejběžnějších signatur
|
|
Kód
|
Použití
|
0x07h
|
NTFS
|
0x06h
|
FAT 16
|
0x0Bh
|
FAT 32
|
0x83h
|
Linux Native (např. ext2)
|
0x82h
|
Linux Swap
|
0x85h
|
Linux Extended
|
Naproti tomu zavaděč systému (Boot Loader) obsahuje vlastní spustitelný kód, program, který vyhledá na disku jádro operačního systému a posléze jej i spustí a zavede do operační paměti. Pro úplnost ještě řekněme, že u operačních systémů rodiny Windows NT je jádro systému označeno jako ntosknl a zavaděč NTLDR - tato zkratka představuje zkráceninu slov NT Loader.
Dalším z typů boot sektorů je tzv. hlavní spouštěcí záznam (Master Boot Record, MBR), který nalezneme vždy na úplném začátku celého pevného disku a jenž obsahuje kódový záznam, jehož pomocí se může dotazovat uložených VBR.
příklad rozdělení disku včetně znázornění umístění zaváděcích sektorů
MBR a VBR jsou si ve své podstatě hodně podobné, liší se jen v oblasti svého působení. Master Boot Record tak namísto tabulky rozdělení disku obsahuje rovnou tzv. Hlavní tabulku rozdělení disku (Master Partition Table, MPT), která obsahuje globální seznam všech logických oddílů a jejich bootovacích sektorů. Bohužel je ale u architektury Intel celkový počet těchto záznamů omezen shora na čtyři položky, z čehož vyplývá omezení maximální možné sumy vytvořených oddílů.
vytvářet diskové oddíly lze i ve Windows
Problém je ale řešitelný - na jeden z těchto záznamů je zapotřebí zapsat tzv. rozšířenou tabulku rozdělení disku (Extended Partition Table), která bude dále odkazovat na přesnou adresu místa pevného disku (začátek rozšířené oblasti), jenž obsahuje další tabulku rozdělení, která popisuje členění rozšířené oblasti. V ní mohou být dále přítomny další čtyři záznamy odkazující na další logické oddíly disku. Práce s nimi bude naprosto stejná jako v případě oddílů primárních.
Pozn: V dobách Windows 9x nebylo možné vytvořit v MPT více jak jeden primární oddíl a každá další jednotka musela být tedy jen a pouze logická. S příchodem Windows 2000 již ale toto omezení, které uživatelé operačních systémů rodiny Linux nikdy nepoznali, naštěstí odpadá.
Samozřejmě že architektura společnosti Intel není jediná. Pro jiné systémy mohou být údaje o maximálním počtu záznamů zcela odlišné. U počítačů Sun jich může být třeba rovných 8. Reálně využitelných jich je však pouze 7, protože oddíl 2 globálně ukazuje na celý disk.
Dále je možné použít dokonalejší tabulku oddílů GPT (GUID Partition Table), která s pomocí rozhraní EFI umožňuje použít až 128 oddílů (již dále nedělené na primární a rozšířené) a celý svazek dovoluje využít až 18 exabajtů volné kapacity. K vlastnímu adresování je dále využíváno identifikátoru GUID (Globally Unique Identifier).
Na tomto místě se ještě sluší říci několik slov o rozhraní EFI (Extensible Firmware Interface), které definuje novou podobu rozhraní mezi operačním systémem a firmwarem rozšiřujících zařízení. Rozhraní má v počítačích podobnou funkci jako samotný BIOS, avšak je mnohem propracovanější, protože nabízí daleko více možností - např. zavádí jednotný způsob spouštění operačních systémů, které jsou si vzájemně kompatibilní.
princip činnosti "Intelovského" rozhraní EFI
Druhou částí Hlavního spouštěcího záznamu je také Hlavní spouštěcí kód. Jedná se o ekvivalent k zavaděči operačního systému tak, jak jej známe z Volume Boot Recordu. Opět ale s určitým rozdílem, protože Hlavní spouštěcí kód je načten ihned po spuštění počítače a je dále BIOSem zpracováván. Ten se také dále postará o prozkoumání Master Partition Table za účelem zjištění, který ze záznamů je tu označen jako aktivní. Dále se postupuje podle VBR tohoto oddílu.