Verder Terug Inhoud

6. Disk geometrie, partities en `overlap'

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.


Verder Terug Inhoud