Server 2008 Boot Process – Making a boot disk.

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!  

6 comments:

  1. I get an error message when I try to run the last command reg save. It cannot find the specified registry key.

    ReplyDelete
  2. Thanks for the post! Worked great! When I try to make a bootcd with the floppy I created I get:

    FILE: \BOOT\BCD

    STATUS: 0xc0000001

    INFO: "an error occured while attempting to read the boot configuration data"

    Any ideas?

    ReplyDelete
  3. 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.

    ReplyDelete
  4. Kelli,

    I 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.

    ReplyDelete


Copyright © 2010 Paul Guenette and Matthew Sleno.