Příliš velký disk pro příliš starý počítač, 1. díl

Možná jste se někdy setkali s problémem, jak zprovoznit nový velký disk v nějakém starém zaprášeném počítači. Vyřešit tento problém by měl náš dvojdílný článek o nástrahách týkajících se tohoto problému.
V dnešní první části článku se budeme zabývat hardwarovou stránkou problému, v druhé části článku se pokusím rozebrat problém s hlediska operačního systému, konkrétně operačních systémů od firmy Microsoft.

V dnešních dnech je pro většinu z nás nejdůležitější, jak překonat magických 128 GB. Ale podobných omezení lze bohužel v historii počítačů nalézt mnoho – pojďme si povědět alespoň o některých z nich.

  1. Problém s 1024. cylindrem (504 MB). Toto byl první ze tří nejzávažnějších problémů, jaké se v historii disků objevily. Klasické IDE/ATA totiž věnuje 16 bitů na číslo cylindru, 4 bity na číslo hlavy a 8 bitů na číslo sektoru (zbylé 4 bity jsou nevyužity). Rozhraní Int13h, které BIOS používá k přístupu na disk, má pro jednotlivé položky 10, 8, resp. 6 bitů. Pokud zkombinujeme tato čísla a vždy vybereme to menší z dvojice, vyjde nám 10 bitů na cylindr, 4 bity na hlavy a 6 bitů na sektory, tzn. celkem 1 032 192 možností, což po vynásobení 512 byty (velikost jednoho sektoru na disku) dá oněch problematických 528 482 304 bytů. Výrobci vyřešili tento problém tak, že nové IDE/ATA řadiče již komunikovaly s diskem jen přes Int13h rozhraní, tudíž tato bariéra padla.
  2. Maximální velikost FAT16 oddílu (2 GB). Starší verze DOS, stejně tak jako Windows 3.x, Windows 95A a Windows NT byly tímto problémem postiženy. U Windows NT bylo možné použít 64kB clustery, čímž se kapacita FAT16 oddílu zvýšila na dvojnásobek, tzn. 4GB.
  3. Problém s Int13h (7,88 GB). 7,88 GB je maximální velikost disku, jakou může BIOS se standardním Int13h rozhraním adresovat. Velikost lze snadno spočítat – jak už bylo napsáno, Int13h používá 10, 8 a 6 bitů, tedy lze alokovat 8 455 716 864 bytů. Opět výrobci přišli s dalším režimem, který dovoluje provozovat větší disky než 8 GB. Jmenuje se Int13h extensions, neboli Logical Block Adressing (LBA). Podstata adresování se definitivně změnila – do této kritické kapacity (7,88 GB) se ještě v zásadě využívaly CHS hodnoty. S příchodem LBA již ne – to totiž využívá všech 28 bitů, které dokáže ATA rozhraní adresovat dohromady pro označení každého sektoru zvlášť. Při CHS adresování tedy existoval sektor označený např. cylindr 1048, hlava 14 a sektor 25. S příchodem LBA se sektory pouze očíslovávají, tzn. existuje sektor 2589, 2590, … Pro zachování zpětné kompatibility se staršími IDE řadiči se ale stále v BIOSu uvádí CHS tak, jak to má nastaven pevný disk. Je to proto, aby v případě, že disk připojíme ke starém IDE řadiči, který LBA (resp. Int13h extensions) nepodporuje, se disk zobrazil jako 8 GB. Všechny staré desky si s tím ale bohužel neporadí…
  4. Problém s 65 536 cylindrem (31,5 GB). Tento problém se objevil především v některých verzích AWARD BIOSu a tímto problémem trpěly především desky vyrobené před polovinou roku 1999. Podobný problém se objevil i u dvojnásobné kapacity, tzn. 63 GB.
  5. Limit rozhraní ATA (128 GB). Jak již bylo napsáno výše, ATA rozhraní (obsahující Int13h extensions atd.) používá 28 bitů na označení všech sektorů na disku, takže je možné adresovat 2^28*512 bytů, což je celkem 137 438 953 472 bytů. Proto v roce 2001 vzniká standard ATA/ATAPI-6, který mimo jiné obsahuje 48bitové LBA adresování, což znamená, že maximální možná kapacita disku, který je připojitelný k ATA/ATAPI-6 kompatibilními řadiči je 2^48*512 bytů, tzn. přibližně 144 miliónů gigabytů (144 petabytů). Diskový průmysl se tedy konečně odhodlal k razantnější akci, jejímž výsledkem je, že nebudeme muset po následujících 20 let (za tak dlouhou dobu experti očekávají 144petabytové disky) řešit podobné problémy jako dnes. Otázkou ovšem zůstává, zda si výrobci ATA řadičů zase neulehčili práci, a místo 48bitového adresování neimplementovali do řadičů pouze např. 40bitové adresování… To ukáže až čas.

Jak tyto problémy vyřešit ? V podstatě jsou dvě alternativy:

  • Pokusit se o to, aby disk byl správně detekován (velikost, dma mód) i v BIOSu.
  • Snažit se alespoň o to, aby se počítač nezasekl, když BIOS detekuje disk (to postačuje pro správnou funkci disku v OS Windows 98 a novějším).

Hranice 1 a 4 jsou většinou lehce řešitelné. Postačuje stáhnout nový BIOS a aktualizovat jí ten stávající. Problém se může vyskytnout tehdy, pokud výrobce základní desky už neexistuje, nebo pokud výrobce (a typ) základní desky ani neznáte. V takovém případě si opište kód desky, který se zobrazuje při detekci procesoru, RAM a IDE zařízení ve spodní části obrazovky. Tento kód zkuste zadat do vyhledávače, jakým je např. Google a pokuste se výrobce najít. Velmi užitečnými stránkami v tomto ohledu jsou také stránky Wim´s BIOS, kde jsou k nalezení seznamy snad všech existujících výrobců desek, a dokonce i signatury jejich BIOSů. Navíc zde naleznete i podrobnou databázi BIOSů do všech možných (i nemožných) starých desek. Pokud náhodou BIOS na vaší starou základní desku nemůžete najít, zkuste se zeptat ve Wim´s fóru.

Složitější to ovšem většinou je s hranicemi číslo 3 a 5. Ty jsou totiž v některých případech (7,88 GB hranice), resp. ve většině případů (128 GB hranice) hardwarového rázu. Pak nezbývá nic jiného než použít jednu z následujících možností.

  • Zakoupit levný přídavný IDE řadič do PCI slotu. Cena nejlevnějších IDE řadičů se pohybuje okolo 500 Kč, což je jistě přijatelná částka.
  • Omezit velikost disku propojkou na jeho zadní straně. Toto řešení je spíše dočasné, protože není ekonomické koupit 80 GB disk a poté ho používat jako pouze 32 GB.
  • Manuálně nastavit maximální BIOSem dovolené hodnoty CHS. Máte-li například starý 600MB disk na 486 routeru kdesi ve sklepě, nebude vám jistě vadit, že místo 600MB disku se bude používat pouze 504 MB – takže můžete disk nastavit s hodnotami 1023 cylindrů, 16 hlav a 63 sektorů na stopu.

To je v dnešním díle vše, v druhé části si povíme, jak obejít BIOS v operačním systému MS Windows.

Diskuze (81) Další článek: Microsoft: na Virtual PC poběží i Linux

Témata článku: , , , , , , , , , , , , , , , , , , ,