Alrighty, let's get some terms and whatnot out of the way. The Boot Screen image, is actually a resource located in the Windows kernel file ntoskrnl.exe. Now comes the complicated part, there are 4 unique kernel files that Windows uses:
- ntoskrnl.exe - Windows Single Processor Kernel
- ntkrnlmp.exe - Windows Multi Processor Kernel
- ntkrnlpa.exe - Windows Single Processor Kernel with more then 3 GB of RAM
- ntkrpamp.exe - Windows Multi Processor Kernel with more then 3 GB of RAM
AMD Processors as of the time of this writing, are ALL considered Single Processor systems, where as Intel Pentium 4 processors WITH Hyperthreading are Multi Processors and all NON Hyperthreaded processors are Single.
I'll be covering how to make your CD/DVD usable across single processor and multi processor systems.
Before proceeding, you will need to download Boot Editor below.
Download: Homepage | Download
» Preparing to Create the Kernel File
First things first, extract the Boot Editor archive to a folder of your choosing, and attempt to execute. If you get an error about a missing file, you're most likely needing msvbvm60.zip. Extract both those archives into the same folder as Boot Editor, and you should be good to go.
- Upon first getting the program running, you'll be confronted with this
Press NO as I'll be telling you want to do. If you're interested in reading it later, it's the readme file in the Boot Editor directory.
- The next screen will be:
You can safely click CLOSE. It won't harm your system, and you won't screw up any files.
- Welcome to the main screen of Boot Editor. It should be similar
- Click the File menu and select
New Boot Screen.
- This window should appear:
In the box, type in just a name for your bootscreen. This will be the filename that it's saved under.
- Now we're going to change the images. The latest version of the Service
Pack 2 kernel, has only 4 bitmaps inside, where as the prior version including
Windows 2003's kernel have more. You'll understand what the images go to, as
in the dropdown box are descriptions for each image.
- Once you have selected the image you wish to replace, click the Load Image button at the top
and select YOUR image that you want to replace the original with. When you replace the Main - #1 image, also press the << Move button to correct the color pallete of the file.
- If say you want to move the progress bar animation, when viewing the Main - #1 image, click and drag the progress
bar image up and down. You CAN NOT move
it left or right.
- Let's save this for either distribution online, or incase you want to back
it up. Press the Make button located at
the top of the screen.
- The following screen will let your more precisely save the
- If you want to change the name, double click the name tag, and type.
- If you're modifying one of the older kernels which still has all of the
different versioning images (Profession, Home, Server, Media Center, etc.),
here is where you can remove them if you wish. This will not cause an error,
they just won't display like they normally would.
Under the column Put In, double click and select No.
Click OK when you're done, then click OK on the confirmation.
The file you just created is really just a zip file that you can upload so others may use your same images. It's saved in your Boot Editor directory under the name you called it, with the extension bootscreen.
» Creating the actual EXE file
Now to actually create the kernel file. As we'll be creating both the single processor and multi processor kernels we're gonna need to do alittle bit of copy paste, and renaming.
- Locate these two files in your Windows Setup Source
These files are currently compressed, so read this page on how to take care of that.
- Once you have expanded those two files, go into your system32 directory located within your
Windows directory. Rename the current ntoskrnl.exe to ntoskrnl.bak.
- Rename one of your expanded files from your Windows Source to ntoskrnl.exe into your system32 directory.
- Back in Boot Editor, press the TEST
button, right next to the MAKE
- You will be presented with this screen:
Press NO as where not really testing it.
- The next box, is just informing you where it's creating the new file and
that if we were testing it, it'd be made default.
Press OK and continue. Press OK on the concluding screen.
- Now back in the system32 directory,
copy the NewBoot.exe file to the $$
within your $OEM$. For more information
read about the distribution
folders. Rename the file to singkrnl.exe if you used the single processor
file, or dualkrnl.exe if you used the other one. Remember where you save it,
you'll need it later.
- Repeat the last few steps with the other kernel file, and copy it to the same directory renaming to the name you didn't use on the other one.
» Method 1: Creating the Batch File to select the proper kernel
The following batch file, is just a simple script that reads the NUMBER_OF_PROCESSORS variable from the registry and then selects the proper kernel file based on it.
FOR /F "tokens=3 delims= " %%A IN (\'REG QUERY "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v NUMBER_OF_PROCESSORS\') DO SET NUMBER_OF_PROCESSORS=%%A bootcfg /copy /D "Windows XP Professional" /ID 1 if %NUMBER_OF_PROCESSORS%==2 goto DUAL REM ----For Single proc bootcfg /RAW "/Kernel=singkrnl.exe" /A /ID 2 goto End :DUAL REM ----For Multiprocess/Hyperthread proc bootcfg /RAW "/Kernel=dualkrnl.exe" /A /ID 2 :End bootcfg /Timeout 2 bootcfg /Default /ID 2
What this script is in reality doing, is making a copy of the original entry (which should be the one for Windows) and calls it Windows XP Professional. It then appends the /kernel entry to use a different kernel file, and then sets the delay to 2 seconds incase something doesn't work, and then sets the new kernel as default.
If you wish to use a different name for your kernel files, I'm sure you can see where to change it. If you wanted a different timeout left, just change the number. If you don't want a timeout, enter 0.
Save this batch file as bootscreen.cmd and save it in your distribution folders. Enter a line in your install routine to execute the batch file. Such as adding
To your WINNT.SIF file. If you already have an entry under [GUIRunOnce] then just copy the quoted portion below the one already present. The path is assuming bootscreen.cmd is saved in $OEM$\$1\install
» Method 2: Direct Integration
1. Run Modifype(See Compression Page) -c to re-checksum the files.
2. rename your single processor kernel file to "ntoskrnl.exe" and multiple processor kernel to
3.Compress them using "makecab" (See Compression Page) and drop Makecab's output into the I386 folder on your Xp C.D
» Troubleshooting Boot Editor
Sometimes when I use Boot Editor for long periods of time, it will just stop responding. All you have to do is close it, and restart the program. Double click on your bootscreen file listed on the left, and continue.