Bij het opstarten van je computer wordt eerst de BIOS opgestart. De BIOS (= Basic Input / Output Systeem) is een programma dat de hardware van je computer controleert. Dit programma kan beïnvloed worden dmv de zogenaamde Bios-instellingen. Deze instellingen kun je meestal instellen vlak achter het inschakelen van de computer dmv de Del toets of de F1 toets.
In de setup wordt aangegeven waar de bootsector is.
Na de BIOS wordt de Bootsector gelezen en uitgevoerd.
De Bootsector is de eerste sector van schijf,
deze sector wordt ook soms de Master Boot Record genoemd. De laatste
twee bytes van deze sector moet altijd de hexadecimale waarde 55AA ofwel de decimale waarde 43603
bevatten.
Harde schijven zijn verdeeld in sectoren van 512 bytes. De
partitie-informatie bevindt zich in de eerste sector (512 bytes) van
iedere harde schijf . Hier zit
de Master Boot Record (MBR) welke juist 512 bytes groot is.
De MBR wordt tijdens het partitioneren van de vaste schijf door het
programma FDISK gemaakt
(er zijn ook andere programma's op de markt zoals Disk
Druïde).
De MBR bevat het master boot programma, Fout boodschappen, enige vrije
ruimte en de partitietabel.
De partitietabel (meestal afgekort als PT) in de MBR bestaat uit 64
bytes op het einde van de eerste sector juist voor de laatste twee
bytes x'55AA'.
Bij het booten van de harde schijf wordt het master boot programma uitgevoerd. Dit klein programmatje leest en controleert de partitietabel, de harde schijf wordt benaderd met BIOS routines. Hierbij komt nog geen besturingssysteem te pas. Foutmeldingen als : 'de partitietabel is ongeldig', 'Fout tijdens het laden van besturingssysteem', .. komen voor.
Meestal wordt dit master boot programma ook wel boot-loader genoemd. Voor Linux staat hier het resultaat van de linux programma’s LILO of GRUB , dit programma toont een menu met de bedoeling een selectie te maken. Heb je hierbij een Linux Operating systeem gekozen dan wordt de kernel in een partitie gezocht en in het geheugen geladen.
Anatomie van de MBR record
139 bytes |
Jump Code: Laad MBR in geheugen Enable Interrupts Scan disks Vind c:drive Laad de Boot sector van c:drive |
80 bytes |
Fout boodschappen : Ongeldige Partitie Tabel, Fout bij het Laden |
227 bytes |
Vrije Plaats |
64 bytes |
PartitieTabel : 4 tabellen = 4 primary partities, of 3 primary en 1 uitgebreide partitie |
2 bytes |
Hexadecimal = ’55AA’ |
De partitietabel in de eerste sector bestaat uit maximaal 4 partities, dit zijn hoogstens 4 primary partities of hoogstens 3 primary partitie en 1 uitgebreide partitie.
De uitgebreide partitie kan verder opgesplitst worden in verschillende logische partities. Iedere logische partitie heeft een eigen partitietabel. De partitietabel van de logische partitie bevindt zich 63 sectoren vóór de start van de logische partitie.
1 |
Char active |
0x80 or 0x00 0x80 = bootable, 0x00 = niet bootable |
2 |
Char begin[3] |
In CHS formaat (cylinders, heads, sectors) |
3 |
Char type |
Type van filesysteem |
4 |
Char end[3] |
In CHS formaat (cylinders, heads, sectors) |
5 |
Int start |
start sector number van partitie |
6 |
Int lengte |
partitie grootte in sectoren |
Linux gebruikt enkel de start en lengte velden 5 en 6, het gebruikt veld 2 en 4 niet !
Dos gebruikt het begin en einde veld 2 en 4, het gebruikt niet de velden 5 en 6 ! Het gebruikt de bios INT13 interface om de disk te lezen
Windows 95 gebruikt de uitgebreide INT13
interface om de disk te lezen,
partitie type c, e, f in plaats van type b, 6, 5 !
Begin en einde velden bevatten dummy informatie = 1023/255/63 (=
x’3FF’, x’FF’, x’3F’)
Windows 95 OSR2 : FAT32 partitie type b of c
Hieronder staat de layout van de eerste harde schijf van mijn Computer 3. Zie eerste harde schijf van Computer 3.
sector nbr | |
partitie |
0 | MBR --------------------------------------------------------------------------------------------------------------------- PT | |
~~ | ||
63 | Hier start de eerste Primary partitie type 6 = FAT16 | /dev/hda1 |
~~ | ||
~~ | ||
4.096.512 | Hier start de tweede Primary partitie type 83 = Linux | /dev/hda2 |
~~ | ||
~~ | ||
8.193.024 | Hier start de derde Primary partitie type e = Win95 FAT16 (LBA) | /dev/hda3 |
~~ | ||
~~ | ||
12.289.536 | Hier start de vierde Primary partitie type 5 = Uitgebreide partitie --------------------------------- PT | /dev/hda4 |
~~ | ||
12.289.599 | Hier start de eerste Logische partitie type 6 = FAT16 | /dev/hda5 |
~~ | ||
~~ | ||
16.386.615 | Hier start de tweede uitgebreide partitie type 5 = Uitgebreide partitie ---------------------------- PT | |
~~ | ||
16.386.678 | Hier start de tweede Logische partitie type 6 = FAT16 | /dev/hda6 |
~~ | ||
~~ | ||
20.487.159 | Hier start de derde uitgebreide partitie type 5 = Uitgebreide partitie ------------------------------ PT | |
~~ | ||
20.487.222 | Hier start de derde Logische partitie type 6 = FAT16 | /dev/hda7 |
~~ | ||
~~ | ||
24.587.136 | Hier start de vierde uitgebreide partitie type 5 = Uitgebreide partitie ------------------------------ PT | |
~~ | ||
24.587.199 | Hier start de vierde Logische partitie type c = Win95 FAT32 (LBA) | /dev/hda8 |
~~ | ||
~~ | ||
29.074.752 | Hier start de vijfde uitgebreide partitie type 5 = Uitgebreide partitie ------------------------------ PT | |
~~ | ||
29.074.815 | Hier start de vijfde Logische partitie type 82 = Linux wisselgeheugen | /dev/hda9 |
~~ | ||
~~ |
Met het Linux commando dd kun je gemakkelijk sectoren van je harde schijf downloaden, deze sectoren wijzigen met een HexEditor en deze sectoren later terug zetten op je harde schijf.
Hier de eerste sector van mijn harde schijf bekeken met een HexEditor
De partitietabel start op hex x'01BE' en is 64
bytes lang. Deze tabel bestaat uit 4 delen van juist 16 bytes lang.
De layout van ieder deel voldoet aan deze
layout.
Deze 4 delen vertegenwoordigen mijn 3 primary partities en
één uitgebreide partitie.
80 |
Bootable partitie |
01 01 00 |
begin in CHS formaat |
06 |
type filesysteem is 06 , dit betekent FAT16 |
3f ff f7 |
einde in CHS formaat |
3f 00 00 00 |
start sector (notatie in machine code dwz laagste eerst, hoogste laatst) x'0000003f' is decimaal 63 |
c1 83 3e 00 |
grootte partitie in sectoren x'003e83c1' is decimaal 4.096.449 |
80 |
Bootable partitie |
00 c1 f8 |
begin in CHS formaat |
83 |
type filesysteem is 83 , dit betekent Linux |
3f ff ff |
einde in CHS formaat |
00 82 3e 00 |
start sector (notatie in machine code dwz laagste eerst, hoogste laatst) x'003e8200' is decimaal 4.096.512 |
00 82 3e 00 |
grootte partitie in sectoren x'003e8200' is decimaal 4.096.512 |
00 |
geen Bootable partitie |
3f ff ff |
begin in CHS formaat |
0e |
type filesysteem is 0e , dit betekent Win95 FAT16 (LBA) |
3f ff ff |
einde in CHS formaat |
00 04 7d 00 |
start sector (notatie in machine code dwz laagste eerst, hoogste laatst) x'0000003f' is decimaal 8.193.024 |
00 82 3e 00 |
grootte partitie in sectoren x'003e8200' is decimaal 4.096.512 |
00 |
niet Bootable partitie |
3f ff ff |
begin in CHS formaat |
05 |
type filesysteem is 05 , dit betekent uitgebreide partitie |
3f ff ff |
einde in CHS formaat |
00 86 bb 00 |
start sector (notatie in machine code dwz laagste eerst, hoogste laatst) x'00bb8600' is decimaal 12.289.536 |
00 1f 04 01 |
grootte partitie in sectoren x'01041f00' is decimaal 17.047.296 |
Uitleg bij partitietabellen van Computer 2 :
Uitleg bij partitietabellen van Computer 3 :
Eerst maak ik een backup van de MBR