Hello, it is me again. It has been six months since the "Multi-Bootable N-in-1 CD Howto" was first posted in last December. More than 11,000 hits (views) are generated by this thread and I am glad that it is of helpful to some, if not all, of you. I have recently added an Appendix section and I am now putting it in this new thread and hope that people who need the latest information will find and read it:
A P P E N D I X
Cooking the Multi-Boot Menu System with Boot Scriptor
Other than using loader.bin & diskem1x.bin (which Bart Lagerweij has stopped to have further development), we can also use Michael K Ter Louw's
Boot Scriptor ([link]http://www.bootscriptor.org/[/link]) to create our Multi-Boot Menu System.
Boot Scriptor is a program that allows a high degree of interactivity when booting from a CD-ROM drive. It provides a set of commands designed to enable users to boot a system in a number of ways, as well as provide interactive menus to choose boot options from. Below is an example of the Multi-Boot Menu System I have recently made for my SP1 (Beta) SlipStreamed Windows XP 2-in-1 CD using Boot Scriptor:
The Boot Scriptor program (
bscript.cbt, isolinux.bin, isolinux.cfg, memdisk & iloader.bin) and the Boot Script (
bscript.ini) of my above example are obtainable from [link]http://members.rogers.com/khauyeung/bscript.rar.[/link] (Extract bscript.rar, all files are contained in the
BSCRIPT folder which should be put under the sourceroot of the 2-in-1 CD.)
To make a CD that boots into Boot Scriptor, you need to make a directory called "BSCRIPT" under the sourceroot. In the BSCRIPT directory, place the following files: bscript.cbt, bscript.ini, isolinux.bin, isolinux.cfg, memdisk(optional) and iloader.bin(optional). The file "memdisk" is only necessary if you plan on using the memdisk command in Boot Scriptor for floppy boot images. To maximize ISO creation application compatibility, a special loader program called "ILOADER.BIN" was made. Almost every ISO creation utility supports this kind of loading. ILOADER.BIN (I put it in BSCRIPT folder) does not have to be in the CD-contents folder, but make sure your ISO creation utility knows where to find it. You will also probably want to place any other scripts or floppy boot images (NOT NT/2K/WP/.NET type boot-sectors which should be placed just under sourceroot)you need in the BSCRIPT folder as well.
Now let us learn the
boot process of our example using Boot Scriptor:
1. You boot your computer with the 2in1 CD, the BIOS search information on the CD which tells to run the
ILOADER.BIN.
2. The iloader.bin takes over the control and goes to the default BSCRIPT folder to load the
ISOLINUX.BIN.
3. The isolinux.bin looks into the configuration file
ISOLINUX.CFG which has the following contents:
default bscript
label bscript
kernel bscript.cbt
4. The default Boot Scriptor Kernel
BSCRIPT.CBT is now called which search for the default script file
BSCRIPT.INI which provides interactive menu for us to choose our boot options. Our choice of option is then passed by Boot Scriptor back to ISOLINUX.BIN for execution.
In my example, floppy boot images (boot_msd.img, boot_pcd.img, w98_cmd.img, w98_ntfs.img, boot_di5.img, boot_er.img, tomsrtbt.img, pm7.img, spinrite.img) are placed in BSCRIPT folder while boot-sectors (BOOTFPPP.BIN & BOOTFPPH.BIN) and folders of minimum files-set (FPPP & FPPH) are placed directly under the sourceroot. Here is part of the content of the BSCRIPT.INI (with
Important Commands & Labels in BOLD letters)corresponding to my example:
;
; bscript.ini file for the Windows XP (SP1) Professional, Home Edition Multi-Bootable CD
;
; Command List: About, Blink, Boot, Call, Cd, Chain, Check, Clear, Cls, Color, Dir, End, Getkey, Goto
; Help, Highlight, Isolinux, Ls, Man, Memdisk, Onkey, Print, Quit, Reboot, Restart, Return, Script, Setkey
; Setpos, Tab, Type, Wait
;
; Color 0x<bg><fg>: Set the display colors to the specified background and foreground colors, where
; <bg> and <fg> are hex digits, corresponding to the standard display attributes
; 0 = black 8 = dark grey
; 1 = darkblue 9 = bright blue
; 2 = dark green a = bright green
; 3 = dark cyan b = bright cyan
; 4 = dark red c = bright red
; 5 = dark purple d = bright purple
; 6 = brown e = yellow
; 7 = light grey f = white
cls
color 0x0B
print "------------------------------------------------------------------------------n"
print "Windows XP (SP1) Professional, Home Edition Multi-Bootable CD by khauyeungn"
print "------------------------------------------------------------------------------n"
print "n"
color 0x0A
print " 1) Install Windows XP (SP1) Professional (Retail)n"
print " 2) Install Windows XP (SP1) Home Edition (Retail)n"
print "n"
color 0x0F
print " 6) Boot Microsoft DOS 6.22n"
print " 7) Boot IBM PC-DOS 7.0n"
print " 8) Boot Windows 98 [Version 4.10.2222] with Commands supportn"
print " 9) Boot Windows 98 [Version 4.10.2222] with NTFS-Pro supportn"
print "n"
print " a) Boot from Floppy A (0x00)n"
print " d) Boot Drive Image 5n"
print " e) Run Easy Recovery from a RAM Driven"
print " l) Boot the most GNU/Linux (tomsrtbt)n"
print " p) Run Partition Magic 7 from a RAM Driven"
print " s) Boot SpinRite 5n"
print " q) Quit Boot Scriptor & return to the Isolinux command promptn"
color 0x0E
print " Esc) Boot from first hard drive (0x80) [Default]n"
print "n"
color 0x0B
print "Hit the key of your choice: "
color 0x0F
; timeout is 20 seconds, default key is escape
getkey 20
setkey esc
onkey 1
goto fppp
onkey 2 goto fpph
onkey 6 goto msd
onkey 7 goto pcd
onkey 8 goto w98
onkey 9 goto ntfs_pro
onkey a
boot 0x00
onkey d goto di5
onkey e goto er
onkey l goto linux
onkey p goto pm7
onkey q
quit
onkey r
reboot
onkey s goto sr5
onkey esc
boot 0x80
fppp:
chain bootfppp.bin
getkey
goto exit
fpph:
chain bootfpph.bin
getkey
goto exit
msd:
memdisk boot_msd.img
getkey
goto exit
pcd:
memdisk boot_pcd.img
getkey
goto exit
w98:
memdisk w98_cmd.img
getkey
goto exit
ntfs_pro:
memdisk w98_ntfs.img
getkey
goto exit
di5:
memdisk boot_di5.img
getkey
goto exit
er:
memdisk boot_er.img
getkey
goto exit
linux:
memdisk tomsrtbt.img
getkey
goto exit
pm7:
memdisk pm7.img
getkey
goto exit
sr5:
memdisk spinrite.img
getkey
goto exit
exit:
end
The Script file is straight forward and is very easy to follow. I like to draw your attention that we use the
chain command to chain-load a Windows NT/2K/XP/.NET boot sector (BOOTFPPP.BIN or BOOTFPPH.BIN in our case). As mentioned previously, boot-sectors (BOOTFPPP.BIN & BOOTFPPH.BIN) and folders of minimum files-set (FPPP & FPPH) are placed directly under the sourceroot. The chain command is NOT for floppy booting images that require hardware emulation. Instead we use the
memdisk command to boot from a floppy or hard disk image file (e.g. w98_cmd.img or tomsrtbt.img in our case), by calling Memdisk to emulate the hardware. The Memdisk program file must be present in the :home directory (BSCRIPT).
FAQ:
Q1: How can I make the minimum files set for Window 2000 or Windows .Net?
A1: You can make the min. files set by starting an install with normal Win2K or .Net CD, when it finishes copying the minimum set of files into the $win_nt$.~bt folder of your boot-drive and starts the first reboot, you interrupt and stop the installation. The $win_nt$.~bt folder now contains the minimum set of files, but you have to delete the winnt.sif because it points to the i386 directory of a normal CD which is not applicable to our multi-bootable N-in-1 CD case.
You can apply this method to Windows 2000, Windows XP, Windows .Net and the Non-English versions of the same which may have different locals and the additional BOOTFONT.BIN.
Q2: How can I perform Upgrade instead of New Install with the N-in-1 CD?
A2: Due to the fact that M$'s UPGRADE routine (from a CD) will search the default i386 folder of your CD, it cannot be applicable to our N-in-1 CD since all of our source directories (i386) have been moved down one level or have been redirected. If you really need to perform an upgrade, you do not do it directly from your N-in-1 CD but you copy the corresponding i386 folder to your hard-drive (or network) and upgrade from there with Advanced Options which then allow you to select the source directory and copy all source file to your hard-drive first.
Q3: How can I make the N-in-1 CD to perform Unattended Installation?
A3: In order to make an Unattended multi-boot Nn1 CD we have to add WINNT.SIF, (normally being placed in i386 folders in single version CDs), in another folders. The folders are that containing a minimum set of drivers and other required files for DOS Setup Stage of Professional or Home. You can reference to unattend.txt for the contents of WINNT.SIF.
Q4: Is there a size limit for the CDIMAGE to handle?
A4: CDIMAGE when being used under FAT32 has a size limit of 4GB. When being used under NTFS, it has no such limit.
(Full page of N-in-1 Howto can be viewed at /http://members.rogers.com/khauyeung/nin1.htm)
Last edited by khauyeung at Jul 20 2002, 11:04 AM