Als er zich verscheidene besturingssystemen op je disks bevinden, dan gebruikt ieder besturingssysteem één of meer diskpartities. Een meningsverschil over waar deze partities zich bevinden kan rampzalige gevolgen hebben.
In de MBR bevindt zich een partitietabel die beschrijft waar de (primaire) partities zijn. Er zijn 4 tabelingangen, voor 4 primaire partities, en elk ziet er ongeveer zo uit
struct partition {
char active; /* 0x80: bootable, 0: niet bootable */
char begin[3]; /* CHS voor eerste sector */
char type;
char end[3]; /* CHS voor laatste sector */
int start; /* 32 bit sector nummer (tellend vanaf 0) */
int length; /* 32 bit aantal sectoren */
};
(waar CHS staat voor Cylinder/Head/Sector).
Dit is overtollige informatie: de lokatie van een partitie wordt zowel
door de 24-bit begin
en eind
velden gegeven,
als door de 32-bit start
en lengte
velden.
Linux gebruikt alleen de start
en lengte
velden, en kan
daarom slechts partities van niet meer dan 2^32 sectoren beheren,
dat wil zeggen, partities van maximaal 2 TiB. Dat is zestig keer
groter dan de disks die heden ten dage beschikbaar zijn,
dus misschien zal het voor ongeveer de volgende zeven jaar voldoende zijn.
(Dus partities kunnen erg groot zijn, maar er is een serieuze beperking
dat een bestand in een ext2 bestandssysteem op hardware met 32-bit integers
niet groter kan zijn dan 2 GiB.)
DOS gebruikt de begin
en eind
velden, en gebruikt de
BIOS INT13 call om de disk te benaderen, en kan daarom slechts
disks van niet meer dan 8.4 GB beheren, zelfs met een vertalende
BIOS. (Partities kunnen niet groter zijn dan 2.1 GB vanwege
beperkingen van het FAT16 bestandssysteeem.) Hetzelfde geldt voor
Windows 3.11 en WfWG en Windows NT 3.*.
Windows 95 geeft ondersteuning voor Extended INT13 interface, en
gebruikt speciale partitietypes (c, e, f in plaats van b, 6, 5)
om aan te geven dat een partitie op deze manier zou moeten worden
benaderd. Als deze partitietypes worden gebruikt, bevatten de
begin
en eind
velden dummy informatie (1023/255/63).
Windows 95 OSR2 introduceert het FAT32 bestandssysteem (partitie type
b of c), die partities ter grootte van maximaal 2 TiB toestaat.
Wat is de nonsens die je van fdisk
krijgt over `overlappende'
partities, als er in feite niets mis is?
Er is iets `mis': als je kijkt naar de begin
en eind
velden van dergelijke partities, zoals DOS doet, overlappen ze.
(En dat kan niet worden gecorrigeerd, omdat deze velden geen cylindernummers
boven 1024 op kunnen slaan - er zal altijd `overlap' zijn
zodra je meer dan 1024 cylinders hebt.)
Als je echter kijkt naar de start
en lengte
velden,
zoals Linux doet, en zoals Windows 95 doet in het geval van partities
type c, e of f, dan is alles goed.
Dus negeer deze waarschuwingen als cfdisk
tevreden is en je een
alleen-Linux disk hebt. Wees voorzichtig als de disk met DOS wordt gedeeld.
Gebruik de opdrachten
cfdisk -Ps /dev/hdx
en cfdisk -Pt /dev/hdx
om de partitietabel van /dev/hdx
te bekijken.