Az Extended partíció

Az 5-ös típusú partíció kitüntetett szereppel rendelkezik: Ennek segítségével lehet négynél több partíciót csinálni.

Mint eddig láttuk, a partíciós tábla 4 bejegyzés számára biztosít helyet. Ez hamar kevésnek bizonyult. Megoldásként sok minden szóba jöhetett volna (pl. még egy szektorral kibővíteni az MBR-t, hiszen úgyis lyuk van mögötte), de a Microsoft (vagy IBM?) mást választott: Az egyik partíciót a 4 közül ki lehet nevezni bővítő partíciónak, amit aztán elvileg tetszőlegesen sok logikai partícióra lehet vágni (mindjárt szó lesz róla, hogy hogyan). Ezeket eléggé félrevezető módon logikai DOS drive-oknak szokta a DOS-os fdisk nevezni, pedig egyáltalán nem csak DOS partíciókat lehet ezen a módon létrehozni.

Csak egyetlen partíció lehet bővítő (a továbbiakban angol elnevezéssel: extended) a 4 közül. Ha akár kézzel megpróbálunk csinálni több 5-ös kódút, akkor is csak az első ilyet használja minden operációs rendszer, a többit figyelmen kívül hagyják.

A partíciók lánca

Az 5-ös típusú bejegyzést valójában egy pointerként kell felfogni, ami egy újabb partíciós táblára (szektorra) mutat. Ott a 0x1BE címen szintén 4 bejegyzésnyi hely van, amit az MBR-hez hasonlóan 0x55 és 0xAA zár le (ez fontos!). Viszont a szektor eleje nem tartalmazza feltétlenül a gépi kódú programocskát. A négy bejegyzésből csak kettő lehet kitöltve (bármelyik kettő), mégpedig úgy, hogy az egyik bejegyzés egy normális partíció leírása, a másik pedig (ha van másik) egy újabb 5-ös típusú Extended partíció bejegyzés, tehát egy újabb pointer.

Néhány elnevezésbeli kérdés (előre elnézést kérek az angol-magyar keveredésért): Azokat a partíciókat, amiket az MBR partíciós táblája ír le, primary (elsődleges) partícióknak szokás nevezni. Ezek közül az az egy, aminek 5-ös a kódja, az extended partíció. Az extended partíció részeit logikai partícióknak (néha secondary (másodlagos) partícióknak) nevezzük. Ezen logikai partíciókat megelőző és definiáló partíciós tábláknak nem szoktak nevet adni, de nevezhetjük őket másodlagos partíciós tábláknak. Mindezek viszonyát a következő ábrák segítik megérteni:

A szokásos elrendezés pl. 4 adatpartíció esetén egy primary és három logikai partíció:

hda
MBRElső partíció
hda1
Extended partíció
hda2
Part1data1
hda1
C:
Part2data2
hda5
D:
Ext2
üres
üres
 
 
Part3data3
hda6
E:
Ext3
üres
üres
 
 
Part4data4
hda7
F:
üres
üres
üres
 
 
Ext1
üres
üres
 
 

Itt Ext1 mutat Part2 partíciós táblájára, Ext2 mutat Part3 partíciós táblájára, Ext3 pedig Part4 táblájára.

Ha pedig pl. az utolsó adatpartíciót nem az extended-be rakjuk, hanem külön primary partícióként kezeljük:

hda
MBRElső partíció
hda1
Extended partíció
hda2
Utolsó partíció
hda3
Part1data1
hda1
C:
Part2data2
hda5
D:
Ext2
üres
üres
 
 
Part3data3
hda6
E:
üres
üres
üres
 
 
data4
hda3
F:
Ext1
Part4
üres
 
 

A táblázatokba bejelöltem, hogy a lemez egyes részeit Linux alatt milyen /dev/hdaX device-on érhetjük el (feltéve, hogy az első IDE hard disk-ről van szó), illetve azt is, hogy DOS alatt milyen drive betű rendelődik hozzájuk. (A kiválasztott példában véletlenül mindkét esetben ugyanaz a DOS drive betű rendelődik a partíciókhoz, de ez más esetekben bonyolultabban alakul.)

A partíciók utólagos módosításánál szükség lehet arra, hogy a lánc belsejébe szúrjunk bele egy új partíciót. Ezt tapasztalatom szerint nyugodtan megtehetjük, sem DOS, sem Linux alatt nem kell a fizikai sorrendnek követnie a logikait. Még az sem okoz gondot, ha a logikai partíciók közül némelyik "kilóg" az extended partícióból. Ilyenkor viszont már nagyon vigyázni kell arra, nehogy utólag kézi módosítás helyett fdisk-kel próbálkozzunk, ami esetleg rosszul mérheti fel, hogy maradt-e üres (partícionálatlan) hely a lemezen. Mindenesetre a Linux-os fdisk warning-ot mond olyan esetben, hogyha ilyesmire utaló dolgot tapasztal, pl. ha a lánc visszafelé mutat. Ha tudjuk, hogy mit csinálunk, ilyen warning mellett is nyugodtan alhatunk azért :-)

A másodlagos partíciós táblák sajátosságai

Összegezve tehát: A logikai partíciókat nem az MBR partíciós táblája, hanem a másodlagos partíciós táblák írják le. Pontosabban minden másodlagos partíciós tábla egyetlen logikai partíciót ír le, ezen kívül egy pointert tartalmaz(hat) egy újabb másodlagos partíciós táblára. Ha több bejegyzés is lenne benne, azt az operációs rendszerek figyelmen kívül hagyják, ennek következtében a partíciókból nem lehet pl. egy "fát" szerkeszteni.

A partíció helye című fejezetben a partíció kezdtének relatív kezdőcímét megadó képletben szerepelt a partíciós tábla cilindercíme (PC). Ennek igazán most van szerepe, hiszen a másodlagos partíciók esetében lesz csak ezen érték nullától különböző. Tehát a "relatív szektorcím" a partíciót definiáló partíciós táblához képest relatív. Amire figyelni kell, az az, hogy a redundánsan megadott partíció kezdetnek csak a lineáris szektorcíme relatív a megfelelő másodlagos partíciós táblához, a C/F/S címe nem, az továbbra is abszolút cím! Persze erre figyelni csak akkor kell, ha valaki kézzel (nem fdisk-kel) akarja a partíciós táblákat módosítani. Én ezt úgy szoktam, hogy a C/F/S címeket írom csak be, aztán a Norton féle DiskEdit-tel kiszámíttatom a lineáris címet.

A partíciók sorrendje (elnevezése)

Ebben a fejezetben arról lesz szó, hogy DOS (és az ezzel ekvivalens Windows) illetve Linux alatt különbözőképpen elrendezett partíciók esetén milyen néven férhetünk hozzá azokhoz.

Linux esetében könnyű a dolgunk: Az első IDE csatoló Master vonalán lévő lemez esetében /dev/hdaX lesz a partíciók neve, a Slave vonalnál pedig /dev/hdbX, stb. SCSI diszkek esetén ugyanezek /dev/sdaX illetve /dev/sdbX, stb. X értéke pedig az első négy partíciós bejegyzésben található partícióknál 1-től 4-ig terjed. Tehát ha a /dev/hda első és utolsó partíciós bejegyzésében van csak adat, akkor a partíciókhoz /dev/hda1 és /dev/hda4 néven férhetünk. Ha valamelyik partíció extended, akkor az ott indított lánc partíciói /dev/hda5-től kezdve kapnak nevet, a láncolás sorrendjében növekvő számokkal. A lánc méretére egy (azt hiszem) 64-es praktikus limit van csak.

DOS esetében (a Caldera OpenDOS egy kicsit máshogy csinálja, lásd később) a drive betűk kiosztása a következők szerint alakul:

  1. Azok a partíciók, amiknek nem DOS-os típuskódjuk van, nem kapnak betűjelet.
  2. C:-től kezdve kapnak betűjelet a lemezegységek MBR-jeiben lévő legelső DOS partíciók. Ha több elsődleges DOS partíció is van valamelyik lemez MBR-jében, azok ebben a lépésben nem kapnak nevet.
    Az első lemezegység esetében van egy kis változás ehhez képest: ott a boot flag mondja meg, hogy melyik primary DOS partíció legyen a C: nevű. (Azt nem próbáltam ki, hogy mi van másik lemezről boot-olás esetén.) Ez a kiosztás akkor is így alakul, hogyha az extended (5-ös) partíció bejegyzése megelőzné a partíciós bejegyzések között az elsődleges DOS partíció bejegyzését.
  3. Ezek után következnek az esetleges extended partíció logikai partíciói először az első lemezegységen, aztán a másodikon, stb.
  4. Végül az MBR-ben még megmaradt elsődleges DOS partíciók kapnak betűjelet, először az első lemezegységen, aztán a másodikon, stb. Ezek a partíciók akkor is a sor végére kerülnek, hogyha a partíciós bejegyzések között fizikailag megelőzik is az extended partíció bejegyzését!
Az előző algoritmusnak egy furcsa következménye az, hogy ha az ember egy új lemezzel bővíti a gépét, akkor az azon allokált DOS partíció alapesetben az előzőleg már esetlegesen meglévő C: és D: drive-ok közé fog furakodni (D: néven). Ezen úgy tudunk segíteni, hogy a második lemezen eleve csak extended partíciót allokálunk. Ezt viszont kénytelenek vagyunk kézzel csinálni, mert a (dos-os) fdisk nem hajlandó ilyenre. Remélem, hogy ez a leírás elegendő segítséget ad egy ilyen manipuláláshoz annak, akinek szüksége lesz rá.

A Caldera OpenDOS (illetve a Novell DOS is) a fentebbiektől kicsit eltérően működik: a lemezen található összes primary DOS partíciót (ha van egyáltalán több) leképzi első lépésben C: D: stb. betűkre, és utána következnek az extended partíció drive betűi. Itt a boot flag nem játszik szerepet, mindig a legelső DOS partíció lesz a C: drive. Azt még nem próbáltam, hogy hogyan alakul ez a kiosztás akkor, ha több lemezegység is van a gépben...

Bár nem kapcsolódik szorosan a témához, de azért megjegyzem, hogy néhány software (pl. diszk kompresszáló program) csereberéli a drive betűket, tehát a fentebb leírt kiosztás módosulhat. Másik furcsaság, hogy sok DOS program (pl. néhány BIOS, az FDISK, stb.) az egyszerűség kedvéért C: és D: drive betűkkel hivatkozik a lemezegységekre is pl. disk1 és disk2 helyett: Ez tipikus esetekben még sok partíció esetén is jó megfeleltetés, de vannak olyan helyzetek is, amikor nem fedi a valóságot.

Végül álljon itt egy, a témánkhoz kapcsolódó levél a magyar linux-kezdő levelezési listáról:


From:             korn@eik.bme.hu
Date sent:        Tue, 4 Nov 1997 15:40:09 +0100 (CET)
To:               linux-kezdo@garfield.sch.bme.hu
Subject:          Re: [lk] linux+dos+w95 nyalanksagok

On Sun, 26 Oct 1997, SZABO Zsolt wrote:

> szoval a fenti harom op.r-re van szukseg egy PC-n, es ezzel kapcsolatban
> lenne szuksegem egy kis megerositesre (hogy okosodjak):

Tudom, hogy mar kicsit regi a tema, de leirom, nalam hogy mukodik, hatha
meg erdekel valakit.

A helyzet annyival bonyolultabb, hogy a fenti harom oprendszeren kivul van
meg egy Caldera OpenDOS-om is.

Nos tehat:

A dos a /dev/hda1-rol toltodik be. A linux /dev/hda2-rol. A win95 a
/dev/hda3-rol. Az OpenDOS a /dev/hda4-rol.

Ezen kivul a /dev/hdc-n van meg egy linux, egy linux swap es egy dos
particio.

A bootmanageremet ugy hivjak, hogy 'Beret's System Loader', es bsl???.zip
neven elerheto a sac-on (pl hercules.bke.hu). Eleg egyszeru volt
beallitani, semmit nem kellett trukkozni vele, csak a rewrite_table
jellegu opciojat kellett bekapcsolni.

A dos es a win95 azt a particiot latjak C-nek, amelyrol indultak. Tehat
win95 alol az a particio, ami DOS alol C:, E:-kent latszik (a D: mindket
esetben a /dev/hdc3.

A Caldera OpenDOS megtartja a particiok sorrendjet, tehat nem az neki a
C:, amelyikrol bootolt, hanem az elso primary DOS particio, amit talal.

A win95 installt ugy kellett megoldanom, hogy arra a particiora, amelyre
installalni akartam, eloszor raengedtem egy sys-t dos alol, a bsl
segitsegevel bebootoltam rola, es ugy inditottam a win95 setupot. (Nem
szabad hagyni, hogy a win95 rainstallalja magat a regi windblowsra.)

A Caldera OpenDOS installjanal is valami hasonlot kellett eljatszanom. Az
ibmbio.com es az ibmdos.com file-okat at kellett masolnom a /dev/hda-ra,
mert kulonben nem talalta meg oket (a C-n keresi, nem azon a particion,
amelyrol indul).

Igy hirtelenjeben ennyi jutott eszembe.

Guy

=Andrew Korn (Korn Andras)------------------------------------korn@eik.bme.hu-
     "A career is nice, but you can't run your fingers through its hair."
     ("A karrier jo dolog, de nem tudod az ujjaiddal a hajat cirogatni.")
=http://goliat.eik.bme.hu/~korn/-------------------------------Guy. Just Guy.-

Up Arrow
Tartalomjegyzék
Partícionálás Left Arrow Right Arrow Egyéb információk