next up previous index
Következő: 4.2.2 Partícionálás Fel: 4.2.1 Diszk geometria Előző: 4.2.1.2 SCSI buszos lemezek   Index

4.2.1.3 Nagy kapacitású AT buszos lemezek

Térjünk most vissza az IDE lemezekhez: Ha a BIOS-on keresztül érjük el a lemezt, 504 MegaByte-ra korlátozódik a címezhető kapacitás (emlékeztető kicsit korábban). Ennek feloldására kétféle megoldást találtak ki. Az egyik azonos a SCSI lemezeknél alkalmazottal: a modernebb IDE lemezeknél bevezettek új parancsokat, amikkel nem C/F/S rendszerben, hanem lineáris szektorcímmel érhető el a lemez. Ezt LBA-nak (Linear Block Addressing) szokás nevezni, 28 bites lineáris címekkel lehet így dolgozni, tehát 128 GigaByte-ot lehet kezelni. Persze itt is át kell alakítani ezt a lineáris címet C/F/S címzéssé akkor, amikor a BIOS int13 hívását kell használni (boot-oláskor illetve DOS alatt). Ilyenkor is a SCSI csatolóknál leírtak szerint járnak el a BIOS-ok, tehát szimulálnak valamilyen szimpatikus geometriát, és egyben lecsökkentik a használható méretet 7.8 GigaByte-ra :-(

A másik megoldásnál is azt használja ki a BIOS, hogy a fej címzésére a DH regiszterben 8 bit áll rendelkezésre 4 helyett: az eredeti C/F/S geometria helyett egy C'/F'/S geometriát szimulál a BIOS befelé (a szoftver felé), ahol C'=C/n és F'=F*n. Az n konstanst pedig úgy állapítja meg, hogy C' 1024-nél ne legyen nagyobb. (n elvileg bármilyen egész szám lehetne, de kettő hatványát szoktak csak használni a BIOS-ok, így szorzás helyett shift is elegendő.) Kifelé, a lemezegység felé természetesen a fizikai C/F/S-re alakít vissza mindent a BIOS. Ezzel a megoldással tehát nincs szükség arra, hogy a lemez tudja az LBA-t. Ilyenkor is 7.8 GigaByte a lehetséges maximális lemezméret.

A BIOS setup-ban általában az eredeti, tehát nem a szimulált geometriát kell beállítani, illetve automatikus lemez-felismeréskor is azt írja ki a BIOS. Azt, hogy melyik szimulációs megoldást használja a BIOS, tipikusan a setup-jában lehet beállítani ,,LBA'' illetve ,,Large'' néven. Mindkét esetben majdnem 8 GigaByte kapacitásig kezelhető így (tehát BIOS-on keresztül) egy lemez.

Régebbi BIOS-ok nem tudtak ilyen szimulálást, ezért léteznek olyan disk manager-ek (pl. OnTrack vagy EZ-Drive), amik a BIOS helyére lépnek már boot-oláskor, maguk kezelik a diszkeket és elvégzik ezt a geometria-átalakítást. Ezekről nem tudok sokat, de remélhetőleg ki is halnak idővel (ha ki nem haltak már:). Ha mégis ilyenekről akarsz olvasni, valamennyi információ van róluk a John Wehman és Peter den Haan által karbantartott ATA-FAQ-ban (magyarországon például az ftp.vein.hu/pc/doc/atafaq191.zip címen található).

Ugyanebben a FAQ-ban találtam két érdekes BIOS bug leírást:
Néhány régebbi (1996 előtti) BIOS rosszul kezeli a 4096 (mások a 8192) cilindernél (2016 illetve 4032 MByte-nál) nagyobb kapacitású lemezeket. Ezeknél meg lehet próbálni a BIOS setup-jában kézzel átállítani a lemez kapacitását 4095 (illetve 8191) cilinderre, a többi terület DOS számára elérhetetlen (Linuxból azért az is használható).

Más BIOS-ok 8192 cilindernél nagyobb kapacitás esetén n=16-tal (shift 4) számolnak, hogy a cilinderszám 1024 alá kerüljön (lásd néhány paragrafussal feljebb). Ez viszont az eredeti 16 fejből 16 * 16 = 256 fejet csinál, ami már nem ábrázolható 8 biten! Ha a BIOS-ban ilyen hiba van, azt lehet tenni, hogy a BIOS setup-jában kézzel átállítjuk a fejszámot 16-ról 15-re, a cilinderszámot pedig x-ről x*16/15-re (lefelé kerekítve). (Az ATA-FAQ szerint ilyen módosítást mindig megtehetünk, de nekem hiányzik egy közbülső lépés, hogy megértsem :-) Esetleg valaki ki tud segíteni?)

[Egy általam (is?) talált DOS-Boot hibáról, ami szintén 2 GByte környékén jön elő, később lesz szó.]


next up previous index
Következő: 4.2.2 Partícionálás Fel: 4.2.1 Diszk geometria Előző: 4.2.1.2 SCSI buszos lemezek   Index

1999-09-17