A partíciós táblázat segítségével a merevlemezt eredetileg maximum 4 tartományra, partícióra lehetett osztani. Ezek a partíciók tartalmazhatnak akár egyforma, akár különböző operációs rendszerekhez tartozó lemezterületet. A lemezt akkor is érdemes lehet több részre partícionálni, ha csupán egyetlen operációs rendszert használ rajta az ember, erről esetleg később még írok. (Illetve ha valakinek van kedve írni, vagy már létező link-je van, szóljon)
Megjegyzések:
Első ránézésre látszik, hogy a táblázat meglehetősen redundáns: Ugyanaz az adat, a partíció kezdete, kétféleképpen is meg van adva: C/F/S címként, illetve (relatív) szektorcímként is. A partíció végének C/F/S címe is egyértelműen meghatározza a partíció méretét, ami ennek ellenére meg van adva. Ezeknek a mennyiségeknek ugyanazt az adatot kell eredményezniük, egyébként a bejegyzést a különféle operációs rendszerek illegálisnak veszik, és figyelmen kívül hagyják.
C/F/S címmel csak az első 1024 cilinderen lévő (pl. 504 MegaByte-ig, illetve módosított geometria esetén tipikusan 1 GigaByte-ig, maximum 7.8 GigaByte-ig terjedő) partíciókat adhatunk meg, viszont a partíciós táblában szintén szereplő szektorcímmel ennél sokkal nagyobb a korlát: 2 TeraByte (2048 GigaByte). Ezért az OS/2 és a Linux csak a szektorcímet használja ezekből az adatokból (hiszen semmi sem köti őket a BIOS C/F/S korlátaihoz), és a "messzi" partíciók kezdő illetve befejező C/F/S címeként a partíciós táblában 1023/xx/yy (az utolsó C/F/S-ként címezhető szektor) szerepel. (Régebbi Linux fdisk még nem figyelt erre, a címet moduló 1024 tette a partíciós tábla C/F/S bejegyzéseibe, ez az OS/2-nek nem mindig tetszik:)
A boot-olandó partíciónak viszont az első 1024 cilinderen belül kell lennie (legalábbis azon file-oknak, amikre a boot-olás közben szükség van), hogy a BIOS el tudja azt indítani. Hogy ez megabyte-ban mit jelent, az már a BIOS által használt (illetve szimulált) diszk geometriától függ. (pl. 504 mega, 1 giga, 7.8 giga)
Erre a témára még visszatérünk, most viszont maradjunk az eredeti, C/F/S és szektorcím redundanciáján alapuló partíciós bejegyzéseknél.
Szóval:
Ezek a képletek csak akkor alkalmazhatóak, ha a partíció kezdete és vége "jólnevelt", cilinderhatáros, ahogy nem sokkal fentebb írtam. A képletben azért szerepel PC értéke, mert (majd később látni fogjuk) van olyan partíciós tábla is, ami nem a 0/0/1-es címen található, hanem PC/0/1-en. Az ezt követő legelső partícióra is igaz az, hogy elég, ha fej határos címen kezdődik.
Lehet egyébként kísérletezni vele, hogy nem hagyunk lyukat az első partíció előtt (én még nem tettem ilyet:). Ha szereti valaki a veszélyeket, próbálkozhat azzal is, hogy nem cilinderhatáron fejez be egy partíciót. Ekkor a fenti képletek picit bonyolódnak. Valahol azt olvastam, hogy ami ezt biztos nem szereti, az a DOS és az OS/2. Megzavarhat más operációs rendszereket is, például akkor, hogyha egy SCSI csatolón nincs engedélyezve a BIOS bővítés: Ekkor a partíciós táblában szimulált diszk geometriát a megfelelő fdisk program (pontosabban a diszk vezérlő (driver) program) magából a partíciós táblából próbálja kitalálni, több-kevesebb sikerrel - ha nem cilindenhatáros a partíció, inkább kevesebb sikerrel..
A FreeBSD rögtön kezdődhet az MBR után, nem kell feltétlenül cilinderhatárra tenni. Installálásnál választható, hogy a 2-es szektorra kerüljön, vagy pedig cilinderhatárra.
Szerencsére ezeket a képleteket nem kell sűrűn használnunk; az fdisk jellegű partíció módosító programok ezt a számítást automatikusan elvégzik. Ami személy szerint nem tetszik bennük (sem a dos-os, sem a linux-os fdisk-ben), az az, hogy magát a partíció kezdőcímét is elrejtik (bár linux alatt a cfdisk-kel van lehetőség "table" formátumú használatra is). A kedvenc partíció nézegető - módosító programom a Norton féle DiskEditor (DE), amivel a partíciós táblában található minden információhoz hozzá lehet férni, e mellett pedig ad egy jó eszközt is, amivel a redundáns adatok egyikét automatikusan kiszámíttathatjuk az után, hogy a másikat beírjuk. Persze tudom, ízlések és pofonok...
A linux fdisk esetén arra még figyelni kell, hogy a cilinderek számozását ez a program nem 0-tól, hanem 1-től kezdi!
Az előzőek azt is jelentik, hogy lehetséges a partíciós táblába több DOS partíciót is tenni (ezek közül az lesz a C: drive, amelyiknek a boot flag-je aktív), illetve nem feltétlenül az első partíciónak kell lennie a DOS-os partíciónak. Nagy kapacitású lemezek esetében van azonban egy korlát, aminél nagyobb címen nem kezdődhet olyan DOS partíció, amiről boot-olni akarunk: A DOS partíció első szektora (az úgynevezett boot record) szintén tartalmaz egy adatstruktúrát, és azon kívül egy kis programocskát. Ennek a programocskának része egy szubrutin, ami lineáris címből C/F/S címet számít ki. Ebben a rutinban van egy "bug" (programhiba), aminek eredményeként nem boot-ol ("Non-System disk" hibát jelez) a rendszer, hogyha a betöltendő szektor (IO.SYS első 3 szektora) címében C*F értéke 65535-nél nagyobb lenne. Ha például nagy kapacitású SCSI lemezünk van (tipikusan XX/255/63-as geometriával), akkor az IO.SYS kezdete legfeljebb a 257-es cilinderen lehet, tehát 2015 MegaByte-nál (1.96 GigaByte-nál) korábban kell a DOS partíciót kezdeni. (IDE lemez esetén más geometriával, de hasonló címre (2016 MegaByte) adódik a határ.)
A probléma megoldására csináltam egy patch-et, hogyha szükséged van rá, szóljál. Ezen patch lehetővé teszi 2 GigaByte-nál magasabb címen kezdődő DOS partíció boot-olását is.
(A Windows 95 installálása módosítja a boot programot is, és abban más módszerrel számítják ki a C/F/S címet, itt már nincs az előbb említett programhiba.)
Valójában egy normális operációs rendszer esetében ezek a kódok nem kellenének nagy fontossággal bíróknak lenniük, ott csak azért hasznosak, mert az fdisk ezekből ki tudja írni, hogy az adott partíciónak mi a neve. Azért van néhány kivétel: az 5-ös kód (ami fentebb nem is szerepel) kitüntetett szereppel rendelkezik, erről külön fejezet szól. A DOS csak a saját partícióival hajlandó foglalkozni, úgyhogy ott fontos, hogy a partíció típusa 6-os legyen (ma már az 1-es és 4-es érték nem használatos). (Hallottam még egy 0xF2-es DOS partíciókódról is, SecondaryDOS néven, de nem tudom, mit takar...)
Tartalomjegyzék | ||
Diszk geometria | Az Extended partíció |