Het Windows XP bootproces: analyse en manipulatie. U schakelt uw pc in en even later meldt u zich aan bij Windows XP: een routinehandeling waar u niet wakker van ligt. Toch loont het de moeite dieper in dit hele bootproces te graven, bijvoorbeeld om bij calamiteiten op de juiste manier te kunnen ingrijpen

"Op een doorsnee pc laat het inlogscherm van Windows XP na het aanzetten van de pc niet veel langer dan 30 seconden op zich wachten. In deze tijdsspanne leidt het systeem een overwegend verborgen leven: u wordt als gebruiker namelijk netjes afgeschermd van wat er zich dan allemaal onder de motorkap afspeelt. In dit artikel laten we zien welke fasen een normaal opstart-, of bootproces doorloopt, hoe u hier als gebruiker op kunt ingrijpen, en hoe u (desnoods) uw gegevens ook via een alternatief bootproces kunt benaderen. ***grote tussenkop Bootfase Elke computer doorloopt - ongeacht het besturingssysteem - standaard een vergelijkbaar bootproces. In Windows XP kunnen we dat uitsplitsen in twee fases: de eigenlijke bootfase en de daaropvolgende laadfase. ***bioscmos.tif: Ingrijpen in de post via het bios-configuratiescherm. Power-on-self-test De bootfase begint altijd met de zogeheten post: geen mailberichten, maar wel een power-on-self-test. Deze gaat onder meer na of alle noodzakelijke hardwarecomponenten aanwezig zijn en hoeveel ram-geheugen uw systeem bevat. Hoe zo'n test er exact uitziet, hangt af van hoe u uw bios-configuratie hebt ingesteld. Toegang tot dit configuratiescherm krijgt u normaal door kort na het inschakelen van de pc een speciale toets (Delete, Esc, F1 of F2) in te drukken. De exacte toets(combinatie) is ook weer afhankelijk van uw bios. Loopt er tijdens de post iets fout, dan krijgt u een waarschuwing te zien - of te horen, als het probleem bijvoorbeeld al bij de grafische kaart zit. Adapters Na de systeem-post zijn de adapters aan de beurt. Adapters die een eigen bios aan boord hebben, initialiseren zichzelf. Ide-adapters zullen bijvoorbeeld elke aangesloten schijf vragen naar de juiste specificaties om de schijf te kunnen benaderen. Ook scsi-adapters doorlopen hun eigen post, en geven de gebruiker vaak via een schermmenu de kans om in te grijpen. Adapters zonder bios zijn pas later aan een initialisatie toe, en wel nadat Windows XP de stuurprogramma's heeft ingeladen. ***mbr.tif: Hexdump van de master boot record met partitietabel. Master boot record De volgende stap in de bootfase is het lokaliseren van de opstartschijf: hoe dat precies gebeurt, kunt u zelf bepalen door in uw biosconfiguratie de opstartvolgorde in te stellen (gewoonlijk vindt u deze optie in een submenu als bios / Advanced features setup). Negeren we even alternatieve opstartmedia als diskette en cd, dan leest het bios de allereerste sector - de zogenaamde mbr of master boot record - van de harde schijf in, en geeft het de controle aan dit stukje programmacode over. Deze sector bevat trouwens ook de hoofdpartitietabel. Hieruit haalt het systeem de partitiebootsector, die vervolgens ook in het geheugen wordt ingelezen. NT loader Vervolgens wordt de fakkel doorgegeven aan Ntldr, NT loader, waarmee het bootloaderproces van start gaat. Dit programma schakelt meteen over van de 16-bit real modus (waarin Intel x86 processoren altijd opstarten) naar de 32-bit flat memory modus. Ntldr vindt u in de rootmap van uw systeemschijf (met de bestandsattributen verborgen en systeem). Nadat Ntldr de noodzakelijke code heeft verwerkt om het bestandssysteem (fat of ntfs) te kunnen inlezen, spoort het in dezelfde rootmap het systeembestand boot.ini op. Op een multibootsysteem verschijnt dit bestand normaal op het scherm in de vorm van een bootselectiemenu, waarbij u het gewenste besturingssysteem kunt selecteren. Vanuit dit menu kunt u via F8 ook alternatieve bootmethodes oproepen, waarmee u bepaalde stuurprogramma's of subsystemen kunt omzeilen om op die manier eventuele problemen te kunnen oplossen (hier komen we later op terug). ***regedit.tif: Het register vertelt de bootloader welke configuratie u wenst. Ntdetect Selecteert u in het bootselectiemenu Windows XP (of NT), dan zal de bootloader op zijn beurt het systeembestand ntdetect.com (uit de rootmap) uitvoeren. Dit programma verzamelt heel wat hardwaregegevens van uw systeem. Hebt u meer dan één hardwareprofiel voor uw systeem, dan wordt op grond van de gedetecteerde hardware getracht het juiste in te laden, of krijgt u als gebruiker de kans op het scherm het gewenste profiel te selecteren. Zo'n profiel kunt u creëren door in het Eigenschappenvenster van Deze computer het tabblad Hardware te openen: daar treft u dan de knop Hardwareprofielen aan. ***eventvwr.tif: Systeemlogboek van Windows: wat is er loos? ***grote tussenkop*** Laadfase Wanneer het bootproces doorlopen is, krijgt u het XP splash-scherm te zien. Tegelijk worden ondermeer de bestanden ntoskrnl.exe (bevat de Windows XP-kernel) en HAL.DLL (Hardware Abstraction Layer, nodig om het besturingssysteem met de hardware te laten communiceren) in het geheugen geladen. Beide bevinden zich in de map %SYSTEMROOT%\system32. Met het commando %SYSTEMROOT% gaat u direct naar de Windows-directory, onafhankelijk van de naam en de schijfletter. Voor deze programma's worden uitgevoerd, wordt echter eerst de registerhive HKEY_LOCAL_MACHINE\SYSTEM ingelezen vanuit %SYSTEMROOT%\system32\config\system. Dat is onder meer nodig om de selectie die u bij (de geavanceerde opties van) het bootmenu hebt aangeduid, correct te kunnen uitvoeren. Deze informatie kunt u trouwens ook zelf nagaan door met regedit de subsleutel HKEY_LOCAL_MACHINE\SYSTEM\Select in te lezen. Stuurprogramma's Het is nu hoog tijd nu voor de bootloader om alle nodige stuurprogramma's (te weten: die met Startwaarde 0 in het register) in te lezen en te initialiseren; informatie die netjes gegroepeerd staat in de subsleutel \CurrentControlSet\Services. Ondervindt een stuurprogramma tijdens het inladen problemen, dan stuurt het een bericht over de ernst van het probleem richting kernel. Afhankelijk van zo'n bericht kan een probleem dan bijvoorbeeld worden genegeerd of tot een herstart leiden. (met de laatst bekende juiste configuratie). Een neerslag hiervan vindt u in de systeemlogbestanden van XP. Dat logboek kunt u (na de eventuele herstart) inkijken door op de uitvoerregel de opdracht EVENTVWR.MSC in te tikken en in het linkervenster de optie Systeem aan te klikken. Via een dubbelklik op een gebeurtenis roept u meer informatie op. Current control set De hardware-informatie die de bootloader in een eerdere fase (zie boven) bijeen heeft gesprokkeld, wordt in de vorm van een registersleutel gegoten: HKEY_LOCAL_MACHINE\HARDWARE. Tegelijk maakt de kernel een kopie van de subsleutel \CurrentControlSet. Als straks de gebruiker succesvol inlogt, wordt de kopie dan definitief in het register opgeslagen, zodat deze achteraf kan dienen als referentie voor de Laatst Bekende Juiste Configuratie. Vervolgens worden ook nog services en de nodige subsystemen (met name Win32) ingeladen en wordt het virtueel geheugen ge'nitialiseerd. Hiervoor is vooral subsleutel \CurrentControlSet\Control\Session Manager verantwoordelijk. ***msconfig.tif: Msconfig toont u de programma's die 'stiekem' opstarten. Opstarten In een slotfase worden eventueel nog allerlei toepassingen uitgevoerd die geconfigureerd zijn om samen met Windows op te starten. Op het tabblad Opstarten van de ingebouwde tool msconfig (via Start/Uitvoeren/msconfig -6) krijgt u hier een goed overzicht van en kunt u zelfs selectief programma's uitschakelen die normaal automatisch mee worden opgestart. Zodra winlogon.exe is uitgevoerd krijgt u eindelijk ook het XP loginscherm te zien. Hiermee is het bootproces is achter de rug, en bent ù aan de beurt ***grote tussenkop*** Manipulatie Als gebruiker kunt u het bootproces op verschillende momenten bijsturen. Een van de meest voor de hand liggende plaatsen is het bootselectiemenu - althans op pc's met meer dan één besturingssysteem. Hebt u geen tweede besturingssysteem ge'nstalleerd, dan haalt u alsnog zo'n selectiemenu tevoorschijn door de herstelconsole van XP op uw systeem te installeren. U hoeft hiervoor geen extra partitie aan te maken; het volstaat om uw Windows XP cd in het station te stoppen en de opdracht d:\i386\winnt32.exe /cmdcons uit te voeren (waarbij d: de letter van uw cd-station aangeeft). Na de installatie en een herstart van uw pc, verschijnt dan automatisch het bootselectiemenu, met als tweede item de Microsoft Windows XP Herstelconsole. ***bootinigui.tif & bootinimsc.tif: Grafische schillen rond boot.ini. ***bootiniklad.tif: Boot.ini handmatig bijwerken. Boot.ini Zoals gezegd wordt het bootselectiemenu aangestuurd door boot.ini, dat zich in de rootmap van uw systeemschijf bevindt. Windows XP heeft echter een grafische interface rond dit bestand gebreid. U vindt het door het Eigenschappenvenster van Deze computer op te roepen, waar u het tabblad Geavanceerd opent. Klik hier bij Opstart- en herstelinstellingen op de knop Instellingen. U komt dan in een dialoogvenster waar u het standaard besturingssysteem kunt selecteren en kunt aangeven hoeveel seconden het bootselectiemenu en de lijst met geavanceerde herstelopties zichtbaar moet blijven. Tikt u hier 0 in, dan start het standaard besturingssysteem meteen op zonder dat u het selectiemenu te zien krijgt. Klikt u echter op de knop Bewerken, dan verdwijnt de grafische schil en krijgt u meteen het boot.ini-bestand in een kladblokomgeving te zien, klaar voor handmatige wijzigingen. Dat kan bijvoorbeeld zinvol zijn als u het selectiemenu zichtbaar wilt houden tot u zelf een keuze hebt gemaakt. Hiervoor is slechts een kleine ingreep nodig in de sectie boot loader, waar u als timeoutwaarde -1 intikt. In de sectie operating systems kunt u de beschrijving van uw besturingssystemen wijzigen of zelfs een ingang compleet verwijderen. Verder kunt u hier de besturingssystemen optionele parameters meegeven. Typische voorbeelden zijn: /Fastdetect: de detectie van een seriële muis wordt overgeslagen; /Maxmem=n: stelt de maximale hoeveelheid ram in die XP kan gebruiken; /Noguiboot: er verschijnt geen splash-scherm van XP; /Sos: toont de naam van elk stuurprogramma etc dat wordt ingeladen. Msconfig Vindt u het intikken van de juiste parameters nogal lastig, dan kunt u ook terecht op het tabblad boot.ini van de tool msconfig, waar u de gewenste parameters alleen hoeft af te vinken (de knop Geavanceerde opties herbergt nog een paar extra parameters). Met enkele van deze parameters emuleert u zelfs geavanceerde herstelopties van het systeem. /Safeboot:network bijvoorbeeld boot uw systeem op in veilige modus met netwerkondersteuning, terwijl u met /Safeboot:minimal die ondersteuning laat vallen. Iets exotischer bootopties zijn /Basevideo, waarmee uw pc in standaard vga-modus opstart, en vooral ook /Debug, dat een host debugger vanaf een tweede pc toegang geeft tot gedetailleerde bootinformatie van het eerste systeem. Beide toestellen dient u dan wel met een seriële kabel te verbinden. Verdere details over deze connectie kunt u kwijt in bijkomende parameters als /Debugport en /Baudrate. De informatie die deze foutopsporingsmodus uitspuwt is wel complex en vereist een behoorlijk diepgaande kennis. Meer technische achtergrondinformatie hierover vindt u in de Knowledge Base van Microsoft, artikel 148954. ***bootvis.tif: Visuele analyse van het bootproces met Bootvis. Debugging tools Voor gratis, krachtige debugging tools (met name WinDbg) kunt u terecht op www.microsoft.com/whdc/ddk/debugging. Iets minder drastisch is de parameter /Bootlog, wanneer u een nukkig bootproces ook kunt analyseren. In dat geval houdt XP in een logbestand namelijk een chronologische lijst bij met alle ingeladen - of problematische - stuurprogramma's en services. Dit bestand vindt u in %SYSTEMROOT%\Ntbtlog.txt. Is het u echter vooral te doen om een optimalisatie van het bootproces, dan kunt u de gratis tool BootVis van Microsoft inzetten. Die visualiseert voor u alle belangrijke aspecten van het bootproces, zodat u sneller eventuele knelpunten kunt opsporen. Jammer genoeg biedt Microsoft deze tool niet langer op de eigen site aan, maar zoekmachines als Google tonen u nog wel andere wegen (bijvoorbeeld: www.trukendoos.com/request.php?36). Laatst bekende juiste configuratie Naast de besturingssystemen die het bootselectiemenu biedt, kunt u via de F8-toets zoals gezegd nog meer geavanceerde herstelopties activeren. Windows XP toont trouwens automatisch een vergelijkbaar menu indien een vorige startpoging van Windows mislukt is. De meeste herstelopties zijn te emuleren door het toevoegen van allerlei parameters aan het boot.ini-bestand. Wat u echter niet kunt instellen is de Laatst Bekende Juiste Configuratie. Selecteert u deze optie, dan zet Windows de backup ControlSet terug die het systeem bij een eerdere geslaagde login heeft aangemaakt. Dat kan een handige oplossing zijn als u na de installatie van een nieuw stuurprogramma of toestel plots met een niet-opstartbare Windows zit opgezadeld. Houd er wel rekening mee dat door het kiezen van de Laatste Bekende Juiste Configuratie alle eventuele systeemwijzigingen verloren gaan, die u na het maken van die backup hebt uitgevoerd. Herstelconsole Helpen ook deze herstelopties u niet uit de brand, dan kunt u nog zwaarder geschut in stelling brengen: de herstelconsole van Windows XP. Hierboven hebben wij al beschreven hoe u die kunt installeren, maar is het ook altijd mogelijk die rechtstreeks vanaf uw Windows XP cd op te starten. Deze console beschikt over een minimale commandoset en toont u weinig meer dan een kale opdrachtregel. Toch kunt u er specifieke bootproblemen mee oplossen, zoals een ontbrekend of corrupt Ntldr. In dat geval kan de opdracht copy d:\i386\ntldr c:\ al volstaan (vervang d: door uw cd-stationsletter en c: door uw opstartschijf). Een corrupt boot.ini-bestand herstellen kan via de opdracht bootcfg /rebuild, eventueel nadat u met bootcfg /scan hebt gecheckt welke Windows-installaties de console heeft herkend. Corrupte bootsectoren pakt u aan via de opdrachten fixmbr (herstelt opstartcode van uw mbr) en fixboot (herstelt XP's bootsectoren). Meer informatie over alle handige opdrachten in deze herstelconsole krijgt u te zien door het intikken van de opdracht help, of door in Microsofts Knowledge Base (KB) artikel 307654 te raadplegen. ***Formatflop.tif Dos-opstartdiskette vanuit XP. ***grote tussenkop*** Alternatieve bootmedia Gewoonlijk benadert u uw XP-partitie(s) natuurlijk via de harde schijf, maar in noodsituaties is een alternatief opstartmedium vaak nog de enige reddingsboei. Voorwaarde is wel dat uw bios dat opstartmedium ondersteunt (wat bijvoorbeeld bij usb-apparaten zoals geheugensticks niet altijd het geval is) en dat u in het bios de juiste opstartvolgorde hebt ingesteld. Het simpelste bootmedium is uiteraard het diskettestation; zelfs vanuit Windows XP hebt u in een handomdraai een opstartbare diskette aangemaakt. U hoeft hiervoor enkel bij Formatteren de optie Een MS-DOS-opstartdiskette maken aan te klikken. U kunt overigens ook kant-en-klare opstartdiskettes - inclusief universele stuurprogramma's voor uw cd-rom - van internet downloaden. Bekende downloadsites zijn www.bootdisk.com en www.drd.dyndns.org/disks.html. Fat en ntfs Is uw XP-partitie met het fat-bestandssysteem geformatteerd, dan is er geen vuiltje aan de lucht en krijgt u via deze weg normaal toegang tot uw gegevens. Anders is het met een ntfs-partitie, die ontoegankelijk terrein is voor dos. Gelukkig bestaan er externe tools waarmee u vanuit dos toch toegang krijgt tot ntfs. Een hiervan is ntfsDOS, dat u kunt downloaden vanaf www.sysinternals.com. De gratis versie is jammer genoeg wel beperkt tot het inlezen van data op een ntfs-partitie, maar dat kan wellicht al voldoende zijn om uw belangrijke gegevens op een ander medium veilig te stellen. Iets vergelijkbaars vinden we bij het eveneens gratis ntfs Reader for DOS (www.ntfs.com) dat met een min of meer grafische omgeving te opereert. Op dezelfde site kunt u bovendien terecht voor een programma dat automatisch een opstartbare DOS-diskette - inclusief ntfs Reader for DOS - creëert. Beperkte opstartdiskette Een alternatieve opstartdiskette is er één waarbij u enkel de bestanden boot.ini, ntld, ntdetect.com en eventueel ook bootsect.dos en ntbootdd.sys naar een geformatteerde diskette kopieert. Via de opdacht attrib -r -h -s kunt u deze verborgen systeembestanden desnoods eerst zichtbaar maken alvorens u ze naar diskette kopieert. Het nut van deze oplossing is echter beperkt: enkel als de corruptie op uw harde schijf beperkt is tot de bootsector of de opstartbestanden, krijgt u er het XP-besturingssysteem mee aan de praat. ***nerobootcd.tif: Opstartbare cd: zo geklaard met Nero. Boot-cd samenstellen De beperkingen van een bootdiskette liggen natuurlijk ook op een ander vlak: ze biedt nauwelijks ruimte voor extra tools die u in een noodsituatie goed van pas kunnen komen. Het zou dus heel wat handiger zijn wanneer u over een opstartbare cd beschikt waarop ook een flink arsenaal aan hersteltools staat. Om deze te maken hebt u feitelijk niet veel meer nodig dan een goed brandprogramma, zoals Nero. De procedure in een notendop: stop een opstartbare dos-diskette in het station, en start Nero (versie 6) op. Kies cd-ROM (Boot) en selecteer op het tabblad Boot de optie Bootable logical drive en kies A:\. Schakel de expertsettings uit. Druk op de knop New, en versleep bijkomende bestanden - zoals uw hersteltools - naar het compilatievenster. Is dat achter de rug, dan kan het branden beginnen. Eventueel verwijdert u op het tabblad Burn het vinkje naast Finalize cd, zodat u ook achteraf nog bijkomende tools aan uw boot-cd kunt toevoegen. Wilt u meer inzicht in hoe een opstartbare cd eigenlijk samengesteld wordt, werp dan een blik op het kader 'Geflopte cd'. ***mkbtbfi.tif: Creëer uw 'eigen' floppy-beeldbestand. Boot-cd downloaden U kunt het zich ook nog makkelijker maken door een beroep te doen op een van de gratis projecten die u op het web kunt vinden. Een ervan is 911 Rescue (www.911cd.net), waarbij een wizard u begeleidt bij het samenstellen van een krachtige reddings-cd. Ook handig is EBcd (Emergency Boot cd), waarbij u een iso-beeldbestand - met onder meer een opstartbare dos- en Linux-omgeving - kunt downloaden (www.ebcd.pcministry.com), dat u vervolgens naar cd kunt branden. Schrikt nog méér Linux u niet af, dan loont de bekende Knoppix-cd zeker ook de moeite (www.knoppix.net): deze cd bevat tal van handige tools. En wat dacht u van een exemplaar waarmee u effectief een - weliswaar licht uitgeklede - Windows XP-versie kunt opstarten, zonder uw harde schijf aan te hoeven spreken? Dat kan met behulp van Bart's PE Builder (gratis download op www.nu2.nu/pebuilder). Hoe u dat precies aanpakt kunt u lezen in de PCM van december 2003 (vanaf blz. 130). ***pdf op website zetten?*** Conclusie Een grondige(r) kennis van het bootproces van Windows XP loont zeker de moeite. Niet alleen kunt u bepaalde onderdelen dan beter naar uw hand zetten, u hebt ook meer inzicht in alternatieve bootstrategieën waarmee u in noodgevallen Windows XP weer aan de praat kunt krijgen, of in ieder geval uw gegevens kunt veilig stellen. Een doordacht samengestelde, opstartbare reddings-cd kan in zo'n geval van onschatbare waarde zijn. Schrikt het werk voor het creëren van zo'n cd u af, geen nood: op het web worden heel wat - gratis - hulp én tools aangeboden! ***weblogo!*** *** Kader Geflopte cd Een opstartbare cd kunt u ook branden aan de hand van een (eigen) boot disk image. Daar hebt u dan wel enkele gratis tools voor nodig, zoals MKBT (Make Bootable) en BFI (Build Floppy Image). Beide vindt u op dezelfde website: www.nu2.nu/mkbt en www.nu2.nu/bfi. U gaat als volgt tewerk. Stop een opstartschijfje in uw station, en voer vanuit een dos-venster de volgende opdracht uit: mkbt -c a: c:\test\bootsect.bin. Dat zorgt ervoor dat de bootsector van de diskette naar het bestand bootsect.bin (512 bytes) in de map c:\test wordt gekopieerd. Vervolgens kopieert u de (verborgen) systeembestanden io.sys, msdos.sys en command.com van uw diskette naar bijvoorbeeld c:\test\extra. Nu is het de beurt aan BFI. Tik vanuit dezelfde map c:\test de volgende opdracht in: bfi -t=288 -f=flopimg.ima -b=bootsect.bin c:\test\extra. Deze opdracht ontrafelt u zo: -t=288 -f=flopimg.ima: maak een boot disk image aan die een 2,88 MB floppy emuleert en noem dat beeldbestand flopimg.ima. -b=bootsect.bin: gebruik daarvoor de zopas gekopieerde bootsector uit het bestand bootsect.bin. c:\test\extra: injecteer de systeembestanden uit deze werkmap (samen met eventuele extra hersteltools) in het beeldbestand. Uiteraard mag de totale hoeveelheid gegevens de 2,88 MB niet overschrijden. Iets makkelijker in gebruik (want mét Grafische interface) én krachtiger dan BFI is WinImage (www.winimage.com). Na een evaluatieperiode van 30 dagen kost een registratie u dan wel zo'n € 30. Om de boot-cd te branden kunt u een programma als Nero gebruiken. Zorg er wel voor dat u in dit geval op het tabblad Boot de optie Image file selecteert en daar verwijst naar uw beeldbestand (flopimg.ima). Vergeet bij de expertsettings ook niet Floppy Emulation 2.88 MB in te stellen (de andere waarden laat u standaard staan op 07C0 en 1). De rest van de procedure vindt u in het artikel. "

Deel dit artikel
Voeg toe aan favorieten