Multibooting With Gena And/Or Other PE1 BuildsFor most people, a singular Gena PE build (with or without "sweets") will probably provide an amount of protection that is more than sufficient for any emergency when their PC's operating system refuses to boot normally. Only those "rare birds" like myself who operate multiboot platforms on a regular basis and who therefore need multiple repair and recovery capabilities need bother to read any further.
One of the major frustrations for people wishing to create and maintain multiple preinstallation environments is the necessity for including the complete range of applications and utilities within each PE build. My own case can serve as an example of the amount of replication and redundancy that is potentially involved in such circumstances. My multiboot Grub4DOS/BOOTMGR menu looks like this:
title Windows XP PE
chainloader /WXPE/SETUPLDR.BIN
title Windows 2003 PE
chainloader /W2K3/SETUPLDR.BIN
title Windows PE Boot Manager (WIM)
chainloader /BOOTMGR
# {BOOTMGR handles Win7x64 PE, Win7x64 Recovery, Win7x86 PE, Win7x86 Recovery, Vista PE and Vista Recovery}
title Acronis Rescue Media (ISO)
map /SOURCES/AcronisMedia.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
title Reboot
reboot
title Shutdown
halt
Needless to say, trying to keep every one of those bootable options up to date with its own programs folder containing individual versions of every application and utility used by all of them would be a maintenance nightmare. The obviously preferable alternative is for all of them to use the same programs folder. But, quite apart from specifying the same programs folder for all of your WinBuilder and/or other PE project builds, how can that be done? [See Note 1.]
For PE2 (Vista) and PE3 (Windows 7) builds the anwser is quite straightforward. Each one of those PEs can be created as a Window Boot Manager option (.WIM file) that utilizes the same external programs folder as all of the others. It is then just a matter of using the Windows BCDedit command line utility (or a GUI interface like NeoSmart's EasyBCD) to include them all in a single Boot Configuration Data (BCD) file.
For PE1 (XP/2003) builds the answer is somewhat tricker as, for reasons best known to Microsoft, their PE1 setups can normally be booted only if their system root folder has a singular name which must be either "minint" or "i386" depending on whether it is booted on a hard drive or on a CD/DVD drive. To boot both of them (along with any others) on the same HDD primary partition and/or the same CD/DVD therefore requires a certain amount of "abnormal" manipulation to overcome those built-in restrictions.
The restrictive limits that need to be dealt with are contained in two files: an ordinary text file (TXTSETUP.SIF) and a binary file (SETUPLDR.BIN).
Any plain text editor can be used to modify the TXTSETUP.SIF file. In most cases, the only entries requiring modifications will be found under the [SourceDisksNames] and/or [SourceDisksNames.x86] sections of that file. In either or both places you'll see a line such as the following:
1="Boot Disk","\WIN51",,\I386
The "\WIN51" (or equivalent) item is a "flag file" entry. You can change it to something else if you wish, but the Windows setup loader expects to find a file with that name (in addition to ntldr and ntdetect.com) in the root of the book disk. The file's contents don't matter; even a zero-byte file will do fine. The \I386 item specifies the name of the system root folder within which the Windows setup loader expects to find everything else that it needs for booting and loading the system. For reasons which will be made clear later, any change to the system root folder name in the TXTSETUP.SIF file must be limited to four (4) alphanumeric characters and UPPERCASE is best for multiple disc type destinations.
Now we come to the trickier part that involves modifying the Windows binary SETUPLDR.BIN file. [See Note 2.] This must be done with an editor that is capable of preserving the integrity of binary files. There are many such "hex editors", but my own favourite is IDM UltraEdit.
Using a hex editor, you must change all of the "i386" and "minint" strings in the SETUPLDR.BIN file to whatever will be used as the name for the system root folder -- the same one specified in the TXTSETUP.SIF file. A proper hex editor won't let you change the length of any of those strings, but you can "pad" them with hex 00s where necessary. That is why the chosen system root folder name cannot be longer than four (4) alphanumeric characters.
Changing the "minint" strings as well as the "i386" strings to make both the same avoids the issue of needing different root folder names on different disc types. Just be sure to "pad" the shorter name strings with hex 00s. At one point you will encounter "\minint\txtsetup.sif" where the hex 00 "padding" must be added at the end of that entire string (i.e. after the txtsetup.sif file name to compensate for the shorter folder name).
For 64-bit editions, also change "\amd64", "\AMD64" to "\EFGHI" and "amd64\", "AMD64\" to "EFGHI\" (where EFGHI is anything you want, 5 characters long). Do
not replace all the occurrences of "amd64" (only the ones with leading or trailing backslashes) as the others refer to a named section of the txtsetup.sif file.
Lastly, but very important,
especially if you intend to burn your multiboot package onto a CD/DVD disc, keep case sensitivity in mind for some early parts of the Windows setup boot process. The name of the "boot flag" file, for example is case sensitive. If you don't run a PE builder finalization script that handles that issue for you, you'll need to do it yourself manually when copying the files from the project's target output folder to your multiboot destination. In Gena projects, the "standard" default CreateISO finalization script will do it for you automatically.
Good luck, and happy multibooting!
"Arvy"
[Posted here by request.]
__
NOTES:
[1] This "tutorial" deals mainly with the specific setup boot loader (setupldr.bin) issues involved with the inclusion of PE1 (XP/2003) builds in multiboot environments. It is not intended as a comprehensive guide for the creation of multiboot discs (CD/DVD, USB, eSATA, et al) using Grub4DOS, Windows Boot Manager and other multiboot loaders for which many other fine guides exist elsewhere. See, for example, the many other online tutorials available in these forums and at
http://www.911cd.net/ and
http://reboot.pro/ that cover the specifics of preparing and using various destination disc types for multibooting with WIMs, ISOs and other PE builder outputs and "rescue" utilities.
[2] Special handling is required for the setupldr.bin file of the following Windows editions:
•Windows Server 2003 SP1 and later
•Windows XP Professional x64 Edition
•Windows Server 2003 x64 Edition
In those cases, setupldr.bin has a built-in checksum which must be handled to avoid "NTLDR is corrupt" errors. With your favorite hex editor, go to hex address 0x2060 and change "74 03" to "EB 1A".