Today’s topic is something that virtually nobody has paid any attention to with both Vista and Server 2008, yet the assumptions behind not investigating the very way both Vista and Server 2008 boot will undoubtedly have catastrophic ramifications for some poor tech somewhere.
While not well known, the whole process in which server 2008 boots is dramatically different from previous versions of Windows. Moreover, it is precisely these differences that make it so critical to know how to make a proper boot disk for Server 2008 and know where to start troubleshooting when your server just sits there and taunts you with flashing lights and spinning fans with Windows nowhere to be found.
The classic Windows NT boot process is well known and goes like this.
1. You power on the machine which then goes to the startup BIOS.
2. The Start up Bios loads and performs the Power On Self Test (Post)
3. The startup bios loads the Master Boot Recod of the active partition which then loads up the partition boot record.
4. The boot sector loads NTLDR which then loads the following.
boot.ini
ntdetect.com
ntoskrnl.exe
system registry hive
device drivers
hal.dll
At this point, if all has gone well, you will now be looking at a running Windows NT, XP, Server 2003 machine.
In server 2008, instead of loading NTLDR a new file called bootmgr exists.
Bootmgr then rus the following
Boot Configuration Database (BCD)
Winload.exe
ntoskrnl.exe
system registry hive
device drivers
hal.dll
Then bootmgr passes control to ntoskrnl.exe and the boot sequence is complete.
As can be clearly seen, the traditional boot disk files are of no use in server 2008 as the machine boots in a completely different fashion. Furthermore, when a boot disk is made, it is unique to the server 2008 box it was made for as the BCD file needed for the boot disk contains a system GUID that must match the system upon which it is booting.
Making a boot disk is accomplished in the following fashion.
1. Format a floppy in your Server 2008/Vista machine using the quick option.
2. Open a command prompt with elevated privileges and run the following lines.
MKDIR A:\BOOT
XCOPY /H C:\bootmgr A:\
REG SAVE HKLM\BCD00000000 A:\BOOT\BCD
With this, you have now created the file structure needed for a server 2008 boot disk, and have also copied the files needed for boot. You will notice that copying the C:\Boot\BCD files directly to disk will fail as these are actually loaded as hives in the registry and locked. The hive that they reside in HKLM\BCD00000000 is a hidden registry key and cannot be seen from within regedit.exe.
After creating your boot disk, I would “highly” suggest that you test it once or twice, label it and put it away somewhere safe for “a rainy day”.
Cheers!
I get an error message when I try to run the last command reg save. It cannot find the specified registry key.
ReplyDeleteThanks for the post! Worked great! When I try to make a bootcd with the floppy I created I get:
ReplyDeleteFILE: \BOOT\BCD
STATUS: 0xc0000001
INFO: "an error occured while attempting to read the boot configuration data"
Any ideas?
I am not sure whether the BCD file can be read only or not?? I will see if I can try this myself and give you an answer.
ReplyDeleteKelli,
ReplyDeleteI suspect that you aren't running in an elevated command prompt.
You actually have to right click and run the command window as an administrator. Not doing this will cause the operation to fail.
Attrib -r -h -s
ReplyDeleteThanks for the very useful article.
ReplyDelete