First, I'm using a customized Windows PE 2005 image (Win2k3 SP1) from the real Microsoft Enterprise Agreement package. Not hard, we all know how to do this. I'm building it in "CD" mode, meaning the base folder is I386 and not MININT.
Then, I copied WININIT.EXE and WINLOAD.EXE from the Vista \Windows\System32 folder into the I386\System32 folder on my PE 2005 image. Don't forget this step!
Next, I used XIMAGE to grab my PE image development folder, so that I have the WINBOM.INI, all those WIN51 files and the I386 folder in the root of my WIM. Maximum compression is actually the default capture method, so no real need to specify that at the command line. My previous WinPE images have been from SDI images, so my development folders are named PE_SDI(x). Example:
ximage /capture C:\PE_SDI2 winpe2k5.wim "20060215"
I use a date as my description (20060215); it's a component of how I do BootCD version checking in my company (so I can network-invaliate old CD's that have been superceded). You can use whatever. Then you will need to make that WIM bootable by specifying ximage /boot winpe2k5.wim 1. Obviously your WIM might be differently named than mine.
Next, I ripped the bootsector off my Vista 5112 x86/32 DVD. I think I used WinImage to do it; can't 100% remember. It wasn't hard, there's a ton of free software that can do it for you. Just grab the first four sectors at offset x07c0 just like any other bootable optical media, you should get a 2kb file in return.
Then, I created a new folder structure to hold my Vista PE files. I named mine C:\PE_Vista to hold with my previous "naming standards" hehe... In that folder, I have the following files and folders:
Bootmgr (from the Vista DVD)
boot.ini (we'll customize this in a minute)
Sources (a folder)
Boot (a folder)
Drop your WIM file into the Sources folder, and drop Boot.SDI into your new Boot folder from the Vista DVD Boot folder. You do not need NTLDR or NTDETECT in there!
Edit your boot.ini to look like the following:
[boot loader] timeout=0 default=ramdisk(0)\I386 [operating systems] ramdisk(0)\I386="Windows Preinstallation Environment" /noguiboot /fastdetect /minint /usenewloader /rdpath=multi(0)disk(0)cdrom(0)\sources\winpe2k5.wim /RDSDIHDRPATH=multi(0)disk(0)cdrom(0)\boot\boot.sdi
Yes, you DO want to "usenewloader", hence the reason you dropped in the WINLOAD and WININIT files. To actually build your CD, you can use MKISOFS, Roxio or OSCDIMG to create your ISO file basically like any other PE image you've done before. Just make sure you're using the Vista bootimage that you grabbed off the DVD versus your normal PE one.
So, here's the problem: This doesn't 100% work.
The reason? Boot it, and you'll see that it cannot find I386\System32\Config\System -- it's referring to the system hive file for your registry. Ok, so maybe you tell yourself you can just rename setupreg.hiv to system, move it to the Config folder and get around this issue? Sure, and then watch it bomb with a license violation because the product descriptor doesn't exist in a PE system registry hive
The real reason it doesn't work is the Vista bootloader isn't passing the "minint" switch to the underlying OS. I am almost positive this is linked to (and can be fixed by) creative use of BCDEDIT in the later builds of Vista. Unfortunately, I'm stuck with Vista 5112 for various political reasons in my company, and don't have direct (legal) access to 5270.
So the challenge? Someone needs to create a boot file using BCDEDIT (not a Boot.ini, that's all gone now) that acknowledges this boot image as a MiniNT OS and passes the proper switch. It can't be that hard; I'd do it myself except I don't have access to the proper OS. Someone want to take that last step for us all? As I understand it, BCDEDIT will place (or update) a file in the \Boot folder once you're done editing. This should be able to fix the switch issue, in theory...
This post has been edited by Albuquerque: 21 February 2006 - 11:57 AM



Help


Back to top











