Partitietabel

Een harde schijf kan zijn ingedeeld in een aantal partities. De gegevens daarvan worden opgeslagen in de partitietabellen.

De belangrijkste partitietabel bevindt zich in sector 0 van de harde schijf. Dat is ook het master boot record. Meestal zijn er nog meer partitietabellen op de harde schijf.

Het master boot record bestaat uit:

offset (hex) inhoud aantal bytes
000 bootprogramma 446
1BE partitietabel entry 1 16
1CE entry 2 16
1DE entry 3 16
1EE entry 4 16
1FE signature (55 AA) 2

De andere sectoren met partitietabellen zien er net zo uit, maar het bootprogramma ontbreekt. Deze sectoren bevatten dus veel ongebruikte ruimte.

Een partitietabel bestaat uit vier regels van 16 bytes. De inhoud van een regel is:

Offset Beschrijving Register bij aanroep
van INT 0x13, functie 0x02
0 Boot flag, geeft aan of de partitie "bootable" is
0x80 = actief; 0x00 = inactief
1 Eerste head voor deze partitie DH
2 Eerste sector voor deze partitie CL
3 Eerste cilinder voor deze partitie CH
4 System ID, wijze waarop partitie geformatteerd is.
Bij een uitgebreide partitie staat hier 0x0F.
Bij GPT (zie hieronder) staat her 0xEE.[1]
5 Laatste kop voor deze partitie
6 Laatste sector voor deze partitie
7 Laatste cilinder voor deze partitie
8-11 Eerste sector waar deze partitie begint.
12-15 Aantal sectoren voor deze partitie.

Vanouds werd een harde schijf geadresseerd met cilinder, kop en sector. Dit zijn dus de gegevens in de bytes 1, 2, 3, 5, 6 en 7. De bytes 8-15 hadden nauwelijks een functie.

Tegenwoordig is het omgekeerd, want de schijven zijn te groot om met drie bytes voor cilinder, kop en sector geadresseerd te worden. Deze zes bytes zijn bij moderne schijven dan ook niet meer van belang, ze worden alleen nog gebruikt om te testen of de regel in gebruik is. De bytes 8-15 bevatten een doorlopend sectornummer en zijn voldoende voor schijven tot 2 TiB. Zie Harde schijf.

Bevindt een partitie zich in een uitgebreide partitie, dan wordt het begin van de partitie (bytes 8-11) gerekend vanaf het begin van de uitgebreide partitie, niet vanaf het begin van de schijf. Dit biedt mogelijkheden voor schijven tot 4 TiB: men kan een uitgebreide partitie maken die de tweede helft van de schijf in beslag neemt.

Uitgebreide partities

[bewerken | brontekst bewerken]

Uit het bovenstaande blijkt dat een partitietabel ruimte biedt aan maximaal vier partities. Om meer partities mogelijk te maken, worden er uitgebreide partities gemaakt. De partitietabel op sector 0 beschrijft dan maximaal 3 primaire partities en één uitgebreide partitie. Deze uitgebreide partitie begint ook weer met een partitietabel.

Voorbeelden van partitietabellen

[bewerken | brontekst bewerken]
1BE 80 01 01 00 07 FE FF FF 3F 00 00 00 37 16 71 02 1CE 00 00 C1 FF 0F FE FF FF 76 16 71 02 6C A9 DE 0B 1DE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1EE 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
1BE 00 20 21 00 07 DF 13 0C 00 08 00 00 00 20 03 00 1CE 00 86 0F 30 07 7E 46 B1 00 28 03 00 00 00 19 00 1DE 00 7E 47 B1 07 5A D2 02 00 28 1C 00 00 E0 15 00 1EE 00 5A D3 02 0F DF D3 FF 00 08 32 00 00 30 C6 0D 

We zien hierin onder andere:

  • De eerste byte op een regel is 80 (rood). Deze partitie is als "bootable" gemarkeerd en wordt dus gebruikt voor het opstarten van de computer.
  • De vijfde byte van een regel is 07. Deze partitie is met NTFS geformatteerd.
  • De vijfde byte van een regel is 0F (blauw). Dit is een uitgebreide partitie.
  • De eerste partitie begint op sector 0x800 (groen). Dit doet vermoeden dat de schijf met Windows Vista gepartitioneerd is.

Met het hiervoor beschreven MBR kan een schijf van maximaal 4 miljard sectoren beheerd worden. Met de gebruikelijke sectorgrootte van 512 bytes betekent dat dat een schijf maximaal 2 TiB groot kan zijn. Met de komst van grotere schijven was een nieuw systeem nodig: GPT. In GPT zijn er acht bytes gereserveerd voor een sectornummer, wat voldoende moet zijn voor schijven maximaal 8 miljard TiB.

Het MBR, sector 0, bevat bij GPT geen partitietabel meer. Op de plaats van regel 1 staat

00 00 01 00 EE FE FF FF 01 00 00 00 FF FF FF FF 

In een normaal MBR zou dat betekenen: een partitie van type EE die de hele schijf van 2 TiB omvat.

Sector 1 bevat de header, met onder andere een versienummer, een verwijzing naar de laatste sector van de schijf (waar een kopie van de header staat) en een checksum.

De sectoren daarna bevatten de eigenlijke partitietabel. Elke entry is 128 bytes lang.

Offset Beschrijving
0-15 Partitietype
16-31 Unieke identifier
32-39 Eerste sector waar deze partitie begint
40-47 Laatste sector van partitie
48-55 Attributen (o.a. read-only)
56-127 Naam van partitie