Opstarten, MBR, Layout eerste sector.


Opstarten


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.


MBR Master Boot Record

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
anatomie van Master Boot Record

Layout eerste sector van een harde schijf

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.

Layout Tabel van één 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

Grafisch ziet een harde schijf er zo uit

Hieronder staat de layout van de eerste harde schijf van mijn Computer 3. Zie eerste harde schijf van Computer 3.


De PT van een uitgebreide partitie staat in de sector = 63 sectoren vóór het begin van een logische partitie, zo staat de PT van de tweede uitgebreide partitie in de sector = de start sector van de tweede logische partitie - 63, dit is 16.386.678 - 63 = 16.386.615; op het einde van de sector 16.386.615 bevindt zich de tweede uitgebreide partitietabel !


Afkortingen : PT = partitietabel, MBR = Master Boot Record

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.


Dit maakt het mogelijk om bijvoorbeeld de MBR Master Boot Record en de PT Partitietabellen te backuppen, te wijzigen of terug te zetten.
Zo is het ook mogelijk om ongeldige partitietabellen te herstellen.

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.

Deel 1 of de eerste primary partitie bestaat uit :

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


Deel 2 of de tweede primary partitie bestaat uit :

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


Deel 3 of de derde primary partitie bestaat uit :

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


Deel 4 of de uitgebreide partitie bestaat uit :

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 :



De berekeningen worden gedaan in een Spreadsheet tabel zie : spreadsheet

Uitleg bij partitietabellen van Computer 3 :


De berekeningen voor Computer 3 worden gedaan in een Spreadsheet tabel zie : spreadsheet 2


Hoe maak ik een Backup van de partitietabel ?

Eerst maak ik een backup van de MBR

dd if=/dev/hda   of=hda.mbr count=1  bs=512
Hiermee heb je enkel maar de 4 eerste (primary partities) partities van je partititabel  op disk gebackupt.

Als je nog meerdere partities hebt op je  harde schijf dan moet je de uitgebreide partities ook backuppen.

Dit kan je doen met het sfdisk commando
sfdisk -d /dev/hda >parttblhda.sf
Hiermee heb je alle partities gebackupt.

Bewaar de bestanden hda.mbr en parttblhda.sf op een veilige plaats !

Doe hetzelfde voor alle andere harde schijven.

Hoe kan ik mijn partitietabel restoren ?

Doe het omgekeerde :

Terugzetten van de mbr record
dd if=hda.mbr  of=/dev/hda
Terugzetten van de volledige partitietabel , primary en uitgebreide partities
sfdisk /dev/hda <parttblhda.sf
Dit kun je enkel maar doen als de disk niet in gebruik is !
Dit kan je doen door o.a. op te starten van een live CD zoals rescuecd, Knoppix of ubuntu live Cd.


Door op de onderlijnde 'terug' te drukken, keert U terug naar het vorig scherm.

Laatst gewijzigd: zaterdag 14 april 2012 14:15
Copyright 2012 - Franz Ulenaers (email : franz.ulenaers@telenet.be)