De bootloader van Windows 2000/XP

Sinds Windows NT 4 is de bootloader opgenomen in de leveringsomvang van de “grote” Windows-versies. De bootloader start de geïnstalleerde en reeds bestaande Windows-versies op. Als u onvoorbereid een oudere Windows of een ander besturingssysteem …

De bootloader van Windows 2000/XP

Festplatte Dualboot
  1. Tijdschrift
  2. »
  3. Artikel
  4. »
  5. Windows
  6. »
  7. De bootloader van Windows 2000/XP

Sinds Windows NT 4 is de bootloader opgenomen in de leveringsomvang van de “grote” Windows-versies. De bootloader start de geïnstalleerde en reeds bestaande Windows-versies op. Als u onvoorbereid een oudere Windows of een ander besturingssysteem installeert, kunt u voor een onaangename verrassing komen te staan, want de bootloader kan heel gemakkelijk beschadigd raken. In dit artikel leggen we de structuur, de reparatie en de uitbreiding van de bootloader uit.

1. structuur en werkwijze van de bootloader

De boot loader schrijft zichzelf naar de eerste (zichtbare) primaire partitie van het systeem – meestal de C: schijf, zelfs als Windows NT/2000/XP op een andere partitie is geïnstalleerd. Als u een “echte” bootmanager gebruikt vóór de NT boot loader, vindt u de boot loader op de eerste zichtbare partitie voor NT.

De installatie schrijft de startcode in de bootsector in deze eerste systeempartitie.

De startcode roept bij het opstarten automatisch het programma ntldr aan, dat vervolgens ntdetect.com start en vervolgens het bestand boot.ini evalueert. Voor bepaalde controllers wordt ook de driver ntboodd.sys geladen.

1.1 Partitietoewijzing in boot.ini

Boot.ini geeft aan welke besturingssystemen de bootloader vanaf welke locatie moet/kan starten:
Een “normale” Boot.ini ziet er als volgt uit:

[boot loader]
timeout=2
default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS
[besturingssystemen]
multi(0)disk(0)rdisk(0)partitie(1)WINDOWS=”Microsoft Windows XP Professional” /fastdetect

De vermelding “default” geeft het besturingssysteem aan dat automatisch wordt gestart nadat de teller (=timeout) is verstreken. Als er onder “besturingssystemen” meerdere vermeldingen zijn, is de vermelding “standaard” zinvol.

De regel “besturingssystemen” bevat alle besturingssystemen die in het systeem aanwezig waren op het moment dat de bootloader werd ingesteld. De vermeldingen kunnen echter ook later worden uitgebreid.

De specificatie van de partities gebeurt volgens de zogenaamde Advanced RISC Computing (ARC) specificaties.
multi(X)schijf(Y)rdisk(Z)partitie(W)WINDOWS=”NAAM”.

Voor de meeste systemen zijn de waarden multi(X) en disk(Y) “0” standaard.

Alleen voor apparaten die geen toegang tot de opstartschijf toestaan via de INT13 van het BIOS, moet de invoer in Boot.ini speciaal worden aangepast.

De entry rdisk(Z) specificeert de schijf. De telling begint bij “0”.

De entry partition(W) specificeert de partitie. De telmethode is echter niet eenvoudig te begrijpen. Windows nummert de partities op een harde schijf per type en niet opeenvolgend. Beginnend bij “1” worden eerst de primaire en dan de logische schijven geteld.

Voorbeeld:
Windows wordt geïnstalleerd op de eerste logische schijf van een harde schijf met een primaire en een uitgebreide partitie waarin zich 2 logische schijven bevinden. -> W=2; multi(0)disk(0)rdisk(0)partitie(2)WINNT=”Windows” /fastdetect

Als vervolgens de volgorde van de partities wordt gewijzigd, bijv. een 2e primaire partitie wordt gemaakt vóór de uitgebreide schijf, wordt de ruimte van bovengenoemde installatie ook verschoven naar W=3. Als de Boot.ini nu niet wordt aangepast, kan de bootloader het systeem niet meer opstarten.

Herstel de bootloader

2.1 Windows 2000 corrumpeert XP

Als u Windows 2000 of NT installeert na een bestaande Windows XP, wordt de bootloader op bepaalde plaatsen beschadigd. Concreet overschrijft Windows 2000 bijvoorbeeld het ntldr-bestand met een versie waarmee Windows XP niet meer kan opstarten.

Het probleem kan eenvoudig worden verholpen door de beschadigde bestanden van een Windows- of herstelconsole naar het opstartstation te kopiëren:

COPY x:I386NTLDR C:

2.1 De bootloader opnieuw opbouwen

Als de NT bootloader verder beschadigd is, is iets meer handmatig werk nodig.

Start hiervoor de computer op vanaf de Windows XP CD (wijzig eventueel de opstartvolgorde in het BIOS), en schakel vervolgens met de herstelconsole over naar de herstelmodus door op de “R” toets te drukken. Als u alleen over een herstel-cd beschikt, kunt u ook de installatieschijven van Windows 2000 of XP gebruiken, die u bij Microsoft kunt downloaden.

U bent nu in de herstelconsole.

Gebruik fixboot C: om een nieuwe bootsector aan te maken.

Als andere bestanden op het opstartstation zijn overschreven (schijf geformatteerd, bestanden verwijderd), moeten verdere bestanden worden aangemaakt.

Eerste kopie

COPY x:I386NTLDR C:
COPY x:I386NTDETECT.COM C:

naar de harde schijf (let op de paden X en C).

Voer vervolgens het commando bootcfg /rebuild in. Het programma zoekt naar Windows-installaties en vraagt naar de weergavenaam van de “vindt”. Het resultaat is een nieuwe boot.ini. Verdere parameters van bootcfg worden uitgelegd in KB artikel 291980.

Om de computer opnieuw op te starten en de herstelconsole te verlaten, voert u gewoon exit in.

2.2 Boot Code overschreven door Win9x/ME – Opslaan voor opname in de NT Bootloader

Een latere installatie van Windows 9x/ME beschadigt de code in de bootsector en overschrijft deze met zijn eigen code. Dit heeft tot gevolg dat het bestand ntdlr niet langer wordt geladen.

De truc is nu om de Win9x code uit de bootsector te halen en opnieuw te verbinden met de Windows 2000/XP bootloader.

Om dit te doen, pak je eerst de bootsector van de bootpartitie uit in een bestand met het gratis DOS-programma BootPart. In ons geval zou het commando bootpart 0zijn: C:WIN.98

Bootpart, let op de parameters
Klik op de afbeelding om te vergroten

Herstel vervolgens de bootloader zoals beschreven in 2.1 en ga verder met 3.2.

3. voeg vervolgens een nieuw besturingssysteem toe aan het boot.ini bestand

3.1 Windows NT, 2000 of XP toevoegen

Extra NT/2000/XP-systemen kunnen aan de Boot.ini worden toegevoegd door eenvoudigweg de doelpartitie op te geven. De Boot.ini is een verborgen en alleen-lezen bestand in de root van de eerste zichtbare partitie.

Om het te bewerken, moet u eerst de schrijfbeveiliging verwijderen en even “verborgen” houden. Dit kan eenvoudig via het Configuratiescherm -> Systeem -> tabblad “Geavanceerd” en daar onder Start en Herstel -> Instellingen en in het volgende venster “Bewerken”.

Gewoon in de Boot.ini
Klik op de afbeelding om te vergroten

Gewoon in de Boot.ini
Klik op de afbeelding om te vergroten

Voer in de sectie “operating systems” het doel van de nieuwe Windows NT/2000/XP in volgens de eerder gegeven uitleg in 1.1:

multi(X)schijf(Y)rdisk(Z)partitie(W)WINDOWS=”NAAM”.

Voorbeeld:
multi(0)disk(0)rdisk(0)partitie(2)WINNT=”Windows” /fastdetect.
Hier wordt Windows geïnstalleerd op een harde schijf met een primaire en een uitgebreide partitie, waarin zich 2 logische schijven bevinden, op de eerste logische schijf.

3.2 Windows 9x of andere besturingssystemen opnemen

” Buitenlandse” besturingssystemen kunnen in 2 stappen in de boot.ini worden opgenomen.

Eerst heeft u de bootsector van het besturingssysteem nodig, zoals we die in het WIN.98 bestand onder 2.2 hebben geschreven. Het maakt niet uit of de opgeslagen bootsector Windows 98, Windows 95, Windows ME of DOS (of een ander besturingssysteem) is.

Je maakt een nieuwe entry aan in de boot.ini in de sectie “operating systems” voor elk besturingssysteem waarvan je de bootsector hebt opgeslagen. Voor onze Windows 98 zou dit zijn:

C:win.98=”Windows 98″.

4) Voorkomen is beter dan genezen – kopieer de opstartbestanden

Als u vaak met andere systemen of gewijzigde partities werkt, moet u een kopie maken van de opstartbestanden. Formatteer daartoe een diskette onder Windows 2000/XP – maar zonder de functie “MS-DOS-opstartdiskette maken”. De bootsector van de diskette kan dan ntldr starten. De overige bestanden ntldr, ntdetect.com en boot.ini worden handmatig naar de diskette gekopieerd. Met deze diskette kun je het systeem nog steeds opstarten, zelfs als de bootloader op de startpartitie beschadigd is.

Met deze kleine hulp zou de gelijktijdige werking van 2 verschillende systemen zonder problemen moeten werken. Wij willen er echter op wijzen dat de beste keuze voor complexere taken een aparte bootmanager is. De keuze is hier zeer uitgebreid en varieert van spartaanse freeware tot dure volwaardige producten.

Gerelateerde berichten