KB » Computer » Systeemstart (boot proces) van Windows XP en hoger

Systeemstart (boot proces) van Windows XP en hoger

    Tweeten

Introductie

Als je problemen hebt met het starten (booten van de PC, dan kan het handig zijn om enig inzicht te hebben in de achtergronden van het boot-proces.

Voor diegenen die niet al te diep in de details willen duiken begin ik met een globale beschrijving van het starten van de PC. Dit stuk is voor een groot deel gebaseerd op het volgende Engelstalige artikel, waarin ook uitzonderlijk duidelijke plaatjes staan.

Het is wijs om voor je in het boot proces duikt eerst iets te begrijpen over partities en het Master Boot Record. Je kan het beste die secties eerst lezen.

Later voeg ik stukken toe met meer details over de verschillende fases.

Verder volgen later een stuk waarin de relatie tussen het boot-proces en wat je op je scherm ziet zal worden uitgelegd, en 1 waarin een aantal belangrijke commando's en tools zullen worden besproken.


Een globale beschrijving van het bootproces

Fase 1: De firmware (BIOS of UEFI)

Bij het starten van een PC moet, ongeacht wat voor apparatuur er aanhangt of in zit, er een vaste plek zijn waar de 1e instructie staat die de PC moet uitvoeren.

De firmware is een programma in een chip op het moederbord. Tot ca. 2014 heette dat BIOS, tegenwoordig heet het UEFI.

De computer begint dus met uitvoeren van de firmware.

Het volgende stuk code dat uitgevoerd wordt staat aan het begin van het medium dat je gebruikt om de PC te starten (disk, USB-stick of CD/DVD), of (in het geval van UEFI-computers) zit nog steeds in het geheugen.

Fase 2: Het MBR (Master Boot Record) of UEFI

Hoe weet de firmware waar op de harde schijf het vervolg staat van de programmacode die uitgevoerd moet worden? Dat hangt er van af, of de computer met UEFI (ruwweg 2014 en later) of BIOS (ruwweg 2014 en eerder) werkt.

Helemaal aan het begin van de harde schijf (in sector 0) ligt het zgn. Master Boot Record, dat een vaste grootte heeft (van 512 bytes). Op een BIOS-computer begint het met een stuk programma, de Initial Program Loader (IPL). Dat programma is het 2e in de keten van programma's die uitgevoerd worden.

Ook onderdeel van het MBR is een tabel van 4 x 16 bytes, de partition table (partitietabel). Een UEFI-computer kijkt of er maar 1 partitie gedefinieerd is, en of het type van deze partitie de waarde 0xEE (hexadecimaal) heeft. Zo ja, dan heeft het systeem i.p.v. de partitietabel in het MBR een Global Partition Table in sector 1.

Fase 3: Het boot record

Op een BIOS-computer gaat de code in het MBR de partition table analyseren. Slechts 1 van de partities is actief, d.w.z. dat er in de gegevens voor die partitie in het MBR een vlaggetje staat dat zegt dat de Windows in die partitie standaard gestart moet worden.

Op een UEFI-computer gaat de code in UEFI aan de hand van de entries in de Global Partition Table (GPT) bepalen naar welke partitie de besturing overgedragen moet worden.

Op een BIOS-computer is deze fase dus de code in het MBR, op een UEFI-computer de code in het UEFI die de GPT bekijkt.

Als je een Windows op een partitie installeert, wordt aan het begin van die partitie het (partition) boot record (PBR) geschreven (die voor elke versie van Windows er anders uitziet). Aan het begin van het boot record (dus van de partitie) staat het 3e programma in de keten.

Fase 4: boot manager (Vista en hoger) en boot loader (XP en lager)

Het boot record is verschillend voor verschillende versies van Windows, en ook het programma dat als volgende gestart moet worden is anders in versies voor Vista (zoals XP) dan in Vista, Windows 7 en hoger.

De code in het boot record hoort bij het besturingssysteem (de Windows-versie), en weet dus welk programma als 4e gestart moet worden.

Windows XP en lager

Voor XP en lager is dat ntldr
Als je bv. Windows XP op schijf C hebt geïnstalleerd, moet je maar eens in de hoofdmap van die schijf kijken. Dan zal je dit bestand zien staan, tenzij het verborgen is.

ntldr heeft 2 functies, die in Vista en hoger gesplitst zijn:

Windows Vista en hoger

Er is een schakel bijgekomen, doordat ntldr is gesplitst in een boot manager en een boot loader.

De boot manager heet bootmgr, er is er maar 1 van, en het programma zit ook in de hoofdmap van de partitie waarop Windows is geïnstalleerd.

De informatie over de beschikbare Windows-versies zit niet meer in boot.ini, maar in de zgn. BCD (Boot Configuration Database).

Zodra de boot manager weet welke Windows hij moet starten (bv. op grond van de keuze van de gebruiker uit het menu), start hij de boot loader.

Fase 5: boot loader (Vista en hoger)

De boot loader heet winload.exe en zit in de map \Windows\System32 van de Windows die gestart moet worden.


Partities

Elke *fysieke* harde schijf, CD/DVD of USB-stick is onderverdeeld in *logische* schijven, die partities of volumes genoemd worden, afhankelijk van de context. Ik zal me beperken tot de term partitie.

Veel mensen hebben bv. een C-schijf voor programma's, en een D-schijf voor data (zoals foto's, muziek, etc.). Je hebt dan dus 2 partities.

Hoeveel partities kan je maximaal hebben?

Van oudsher waren er maximaal 4 partities mogelijk, simpelweg omdat de tabel waarin de partities geregistreerd werden maar 4 entries bevatte.

Later werd er een truc bedacht, waardoor 1 van de partities (extended partition) aan het begin een nieuwe tabel met 4 entries had.

Met de komst van UEFI-computers is er nauwelijks nog een beperking, omdat er een nieuw soort partitietabel is gemaakt: de Global Partition Table. Deze werkt heel anders dan de oude partitietabel en heeft veel meer entries.

De ouderwetse partitietabel, met 4 entries, stond in het Master Boot Record.

De Global Partition Table heeft een header in sector 1, en de entries staan in sector 2 (telling begint bij 0).

Waarom zou je meer partities willen?

Er zijn allerlei redenen waarom je meer dan 1 partitie zou willen hebben:


Master Boot Record

Ooit kon je een PC alleen van floppies starten, toen kwam daar de harde schijf bij, vervolgens de CD/DVD, en tegenwoordig kan je ook al vanaf USB-sticks booten (starten).

Je kan zelf via instellingen in BIOS/UEFI bepalen van welk soort apparaat de PC moet starten.

Elk bootable medium heeft in het 1e "blok" (de 1e sector) een Master Boot Record van 512 bytes.

In de nieuwe (UEFI) situatie heeft het MBR in feite vrijwel geen betekenis meer. Er zit alleen nog een partitietabel met 1 entry in.

Deze entry geeft d.m.v. het partitietype aan dat het om een UEFI-computer gaat, zodat de UEFI-code weet dat de echte partitietabel in sector 1 staat.

Layout van het oude MBR

In de oude (BIOS) situatie bestaat het MBR uit 3 onderdelen:


MBR of GPT (Global Partition Table)

Hoe weet je of een schijf met GPT werkt?

Er zijn minstens 3 methodes, maar deze is de simpelste. Open om te beginnen het diskmgmt-console.

Normaal gesproken zie je hier een lijst met volumes (zie de kop boven de 1e kolom in de bovenste tabel), en niet met schijven (disks). Maar die willen we nu juist wel zien, dus klik je op Beeld (View) - Boven weergeven () - Schijvenlijst (Disk List)

Je ziet nu in de meest rechtse kolom van de bovenste tabel de Partitiestijl (Partition Style). En daaronder staat als het goed is voor elke disk MBR of GPT.


Tools and References for the MBR and OS Boot Records
Geweldige, zij het tikkie rommelige pagina, met ladingen interessante tools (mei 2016).
An Examination of the Windows™ 7 or 8 or 8.1 MBR (Master Boot Record)
Gaat in zeer groot detail in op de code in het MBR van Windows 7 en 8(.1) (mei 2016).
Microsoft Windows Seven
De site gaat over het (multi-)booten van Vista, maar is later ook bijgewerkt met Windows 7, en daarover gaat deze pagina. Sowieso een heel interessante site, met duidelijke uitleg van complexe materie (mei 2016).
Beep codes
Rechts staan onder het kopje BIOS Beep Codes voor een aantal fabrikanten de betekenis van de piepjes die je soms hoort als er iets mis gaat bij het starten van de PC.
BIOS Central
Alles over BIOS wat je ooit zou willen weten.
Pierre's field guide to partition table recovery
Beschrijving van data structuren zoals de MBR, en enige spitwerk in de Partition Table. Behoorlijk verouderd (ca. 1998, commerciele site van DataRescue).
NTFS.com Recover Partition Table. Hard Drive Recovery Concepts
Veel informatie over wanneer verschillende foutmeldingen optreden. Bv.: stel dat je nullen schrijft over de code in de boot sector, wat gebeurt er dan?
The Master Boot Record (MBR) and What it Does
Uitgebreide beschrijving van zowel de data structuren als de code in het MBR.


    Tweeten

© Henk Dalmolen
Reageer via E-mail (dalmolen@xs4all.nl)

Deze pagina is voor het laatst gewijzigd op: 26-8-2016 21:21:05