http://www.911cd.net/forums//index.php?showtopic=20089
In this Guide is described How to Make a MultiBoot USB-stick, where boot options as MS-DOS, FREEDOS 1.0, GRUB4DOS, BartPE, TXT-mode Setup Windows XP, WinPE 2.0 and SYSLINUX can be used directly from boot.ini Menu. In this way a powerfull Admin's Swiss Army Knife is obtained.
The USB_MultiBoot5.cmd Batch Program can now be used for making such MultiBoot USB-Drive, instead of the Manual Procedure as described below. The Attachment gives USB_MultiBoot5.zip file. The USB_MultiBoot5.cmd program can be used for making MultiBoot USB-Drive for Install of Windows XP with Extra Boot Options for System Recovery with Ghost.
All Editable Configuration Files for making a MultiBoot USB-stick are given in the MULTI_CONTENT folder. The content of MULTI_CONTENT folder is copied to USB-Drive by the USB_MultiBoot5.cmd program. Adapt the configuration files and the content of the MULTI_CONTENT folder to your personal needs.
Where USB-stick is mentioned in the description, USB-Harddisk with 2 GB FAT Partition can be used as well. USB-sticks of 1, 2 and 4 GB have been used successfully, e.g. Apacer HT203 OR Buffalo FireStix RUF2-R2G-S Booting from MS-DOS is not available on 4 GB Apacer HT203, whereas 1 and 2 GB sticks are OK.
Making Bootable USB-stick or USB-Harddisk with boot.ini Menu and NTLDR Bootsector
First Test if your PC is Booting from USB-stick:
Example 1. File boot.ini
[boot loader] timeout=30 default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS [operating systems] multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Boot Test Windows XP Professional" /noexecute=optin /fastdetect
If USB-stick is not bootable:
Check BIOS bootsequence settings or use different USB-stick / computer combination, OR Instead of PeToUSB use HP USB Disk Storage Format Tool Version 2.0.6 and use FAT filesystem http://download.chip.eu/en/USB-Disk-Storag…0.6_176935.html
If you did prepare your USB-stick with usb_prep8.cmd so that it can be used for Install of Windows XP, than you had already a stick with boot.ini Menu and the required bootfiles, and you don't need to do steps 1-4
Instead of an USB-stick one can also make a Bootable USB-Harddisk using the steps 2-6 given above.
For USB-Harddisk make 1900 MB partition at beginning of the USB-Harddisk using e.g. Partition Magic. Use FAT Format and Set Active OR use PeToUSB to Format such partition. Without Set Active you will get DISK BOOT FAILURE.
Be very carefull with writing of bootsectors with HDHacker, bootsect.exe or mkbt.exe Be always aware you make your changes on the right drive. Otherwise loss of DATA may be the result. It is advisable to first remove all other removable drives, like USB Backup Harddisks and Memory Cards, so that they cannot be involved by mistake in the writing process. HP USB Disk Storage Format Tool Destroys Partition Table of USB-Harddisk and cannot be used to Format one single partition of USB-Harddisk. Using HP Tool makes Data partitions of USB-Harddisk inaccessible !! So don't use HP USB Disk Storage Format Tool to Format USB-Harddisk. Using PeToUSB.exe is SAFE, it can only Format partitions with size less than 2 GB without destroying the existing partition table, so that Data partitions are still accessible. Use of USB_MultiBoot.cmd and everything in this Guide is COMPLETELY at your own risk. |
Adding New Boot Options - e.g. Booting the USB-stick via boot.ini directly into MS-DOS
This requires making a Bootsector File for each specific Boot Option and Adding a rule to boot.ini mkbt.exe of Bart Lagerweij is very handy to make such Bootsector Files. See: http://www.nu2.nu/mkbt/ mkbt.exe is so handy because it can change the Bootcode in the Bootsector, while keeping the BIOS Parameter Block and the Extended Parameter Block unchanged. This means the Drive geometry and File System (FAT) is maintained ! For this purpose the 6 bs_***.bin files are supplied in folder makebt as Source Code Bootsector Files.
Use procedure of Part A to make Bootable USB-stick with boot.ini Menu and NTLDR Bootsector Make a proper Selection of your PeToUSB Settings to make a USB-Drive with FAT Format. PeToUSB Settings To Format USB-Drive : Enable Disk Format with LBA FAT16X For Install of BartPE on USB-Drive : Give BartPE Source Path and Enable FileCopy with Overwrite Always. When USB_MultiBoot.cmd is applied on existing USB-Drive with XP Install Files, then Format is not needed and should be DeSelected.
Use mkbt.exe to Save the USB-stick Logical Drive bootsector as file NTBOOT.bs in folder btsec on your USB-stick. Next use mkbt to Install MS-DOS Bootcode from bootsector file bs_msdos.bin into USB-Drive Bootsector Then Save modified USB-Drive Bootsector as Bootsector File MSBOOT.bs And finish by Resetting USB-Drive Bootsector to the original NTLDR Bootsector using file NTBOOT.bs
Usage : mkbt [switches] <source> <target> switches: -c = Copy mode(copy bootsector to Bootsector File, -x = Expert mode
For this purpose Open a Command Window (cmd) at the USB_MultiBoot\makebt Folder and type:
mkbt.exe -x -c R: R:\btsec\NTBOOT.bs mkbt.exe -x bs_msdos.bin R: mkbt.exe -x -c R: R:\btsec\MSBOOT.bs mkbt.exe -x R:\btsec\NTBOOT.bs R: where R: is your USB-stick drive
Change boot.ini on stick by adding the following rule:
C:\btsec\MSBOOT.bs="3. MS-DOS 7.10"
TXT-mode Setup Windows XP, BartPE and WinPE 2.0 require a bootcode which is the same as present in the NTLDR Bootsector, except that the file to which the bootsector refers is different, being SEUPLDR.BIN, PELDR and BOOTMGR respectively instead of NTLDR. The program makeBS2.cmd made by jaclaz is very handy to make Bootsector Files SETUPLDR.bs for TXT-mode Setup Windows XP and PELDR.bs for BartPE, where only the NTLDR loader filename was changed into e.g. SETUPLDRBIN and PELDR respectively using:
makeBS2.cmd R:\SETUPLDR.BIN makeBS2.cmd R:\PELDR where R: is your USB-stick drive
Such Bootsector Files are given in makebt folder as files bs_setup.bin and bs_peldr.bin of which the BootCode can be used also by mkbt.exe to make SETUPLDR.bs and PELDR.bs similarly as the procedure for making MSBOOT.bs
For Windows PE 2.0 a Bootsector File is required which refers to BOOTMGR instead of NTLDR. The same Bootsector file can also be used to Install Windows Vista by launching Vista Setup. Open CMD Window and use BootSect.exe to change the bootsector for use with bootmgr
BootSect.exe /nt60 R: mkbt.exe -x -c R: R:\btsec\BOOTMGR.bs mkbt.exe -x R:\btsec\NTBOOT.bs R: where R: is your USB-stick drive.
Such BOOTMGR Bootsector File is given in makebt folder as file bs_btmgr.bin with correct Error Messages, which can be used by mkbt.exe to make BOOTMGR.bs similarly as the procedure for making MSBOOT.bs, so that BootSect.exe which is more difficult to obtain, is no longer needed.
WinPE is a Console with rather limited use. A lot of simple programs which run from BartPE, do not run from WinPE. Windows PE 2.0 is included in the Windows Automated Installation Kit WAIK (see below for Download)
SYSLINUX Menu Support from boot.ini Menu requires to make Bootsector file SLBOOT.bs according to:
Reset USB-Drive to NTLDR Bootsector using mkbt.exe and the original Bootsector File NTBOOT.bs
syslinux.exe -f R: mkbt.exe -x -c R: R:\btsec\SLBOOT.bs mkbt.exe -x R:\btsec\NTBOOT.bs R: where R: is your USB-stick drive.
GRUB4DOS Menu Support is added to boot.ini Menu as follows:
Download grub4dos from http://grub4dos.jot.com/WikiHome and http://download.gna.org/grub4dos/ Copy grldr and grub.exe to the Root directory of the USB-stick and make Custom file menu.lst Launching of GRUB4DOS Menu via grldr is obtained by simply adding to boot.ini the rule: C:\grldr="Start GRUB4DOS Menu - DOS Boot Floppy Images + Linux"
The boot.ini file in the Root Directory of the USB-Drive making all Boot Options available is given by:
Example 2. File boot.ini
[Boot Loader] Timeout=10 Default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS [Operating Systems] c:\grldr="0. Start GRUB4DOS Menu - DOS FLOPPY IMAGES + Linux" C:\btsec\SETUPLDR.bs="1. TXT Mode Setup Windows XP, Never unplug USB-Drive Until After Logon" multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="2. GUI Mode Setup Windows XP, Continue Setup + Start XP" /FASTDETECT C:\btsec\MSBOOT.bs="3. MS-DOS 7.10" C:\btsec\FDBOOT.bs="4. FREEDOS 1.0" C:\btsec\PELDR.bs="5. BartPE - MINI XP" C:\btsec\BOOTMGR.bs="6. Windows PE 2.0" C:\btsec\SLBOOT.bs="7. SYSLINUX Menu" multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="8. Start Windows XP Professional from Harddisk" /noexecute=optin /fastdetect
Not all options are available on all USB-Drive Devices. So you can edit boot.ini to your needs. Booting from MS-DOS is not available on 4 GB Apacer HT203, whereas 1 and 2 GB sticks are OK. A lot of FREEDOS Bootsectors don't work and even the supplied FREEDOS Bootcode only works on USB-stick and not on USB-Harddisk.
TinyHexer or HDHacker are usefull to View in detail and to Save the USB-stick Logical Drive bootsector. The Logical Drive bootsector is usually located 63 sectors from the beginning (MBR=sector 0) of the USB-disk. HDHacker see http://dimio.altervista.org/eng/ TinyHexer 1.8 see http://www.chip.de/downloads/c1_downloads_13014623.html HDHacker can also be used to Load Bootsector Files and to Write as Bootsector on USB-stick Logical Drive.
BootSect.exe can be obtained from the very large VISTA WAIK download (almost 1 GB). The Windows Automated Installation Kit with the program bootsect.exe is available as download from Microsoft: http://www.microsoft.com/downloads/details.aspx?familyid=C7D4BC6D-15F3-4284-9123-679830D629F2&displaylang=en
The booting mechanism of NTLDR with boot.ini Menu and the use of Bootsector Files in boot.ini has been excellently explained by jaclaz and is reproduced below: http://www.911cd.net/forums//index.php?showtopic=16980&st=8
BartPE normally boots by using a copy of SETUPLDR.BIN renamed as NTLDR or PELDR. 5 SETUPLDR.BIN behaves differently from NTLDR:
The way to have a BartPE selection in boot.ini is to have an alternate BOOTSECTOR, peboot.bin, that loads PELDR (i.e. a renamed SETUPLDR.BIN) INSTEAD of NTLDR.
So the booting goes like this:
You cannot load anything else but an ARCPATH or a BOOTSECTOR from NTLDR/BOOT.INI!
Using GRLDR or GRUB.EXE makes it possible to load DIRECTLY (i.e. chainload) NTLDR or SETUPLDR.BIN without need for renaming the latter to NTLDR or PELDR.
Note Added: Bootsector File peboot.bin is equal to our PELDR.bs Bootsector file.
GRUB4DOS is added to boot.ini Menu as follows:
Download grub4dos from http://grub4dos.jot.com/WikiHome and http://download.gna.org/grub4dos/ Copy grldr and grub.exe to the Root directory of the USB-stick and make Custom file menu.lst Launching of GRUB4DOS Menu via grldr is obtained by simply adding to boot.ini the rule: C:\grldr="Start GRUB4DOS Menu - DOS Boot Floppy Images + Linux"
Use WinImage http://www.winimage.com/ to Inject Files and to Save a DOS Boot Floppy Image.
Download ready-to-run DOS Boot Floppy Images fdubcd.img and msubcd.img made by Erwin Veermans http://www.veder.com/nwdsk/ These images are based on the Modular Boot Disk of Bart Lagerweij http://www.nu2.nu/bootdisk/modboot/ and were made for Ultimate Boot CD http://www.ultimatebootcd.com/ BootDisk.com has also a lot of Info and bootdisks available, See http://www.bootdisk.com/
Use the grub4dos tutorial to make menu.lst and add menu.lst to USB-stick http://grub4dos.sourceforge.net/wiki/index.php/Main_Page http://www.gnu.org/software/grub/manual/grub.html http://grub4dos.sourceforge.net/wiki/index.php/Grub4dos_tutorial
Use Disk emulation with Direct mapping in menu.lst:
Example 3. File menu.lst
color white/blue black/light-gray timeout 30 default 0 title Start Windows XP Professional from Harddisk map (hd1) (hd0) map --hook rootnoverify (hd0) root (hd0,0) chainloader (hd0,0)/ntldr title Boot floppy image - UBCD FreeDOS Bart's Modboot map (hd0,0)/images/fdubcd.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title Boot floppy image - UBCD MsDOS Bart's Modboot map (hd0,0)/images/msubcd.img (fd0) map --hook chainloader (fd0)+1 rootnoverify (fd0) title Puppy Linux - NTFS Read / Write find --set-root /grldr kernel /vmlinuz root=/dev/ram0 initrd=initrd.gz PMEDIA=usbflash PKEYS=uk initrd /initrd.gz title Damn Small Linux - NTFS Read only - Knoppix find --set-root /grldr kernel /linux24 ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=minirt24.gz nomce noapic qemu quiet BOOT_IMAGE=knoppix frugal initrd /minirt24.gz title Memtest86+ V1.51 - RAM Memory Test find --set-root /grldr kernel /memdisk initrd /images/memtp151.img
Besides DOS Floppy Images, it is interesting to add to menu.lst of grub4dos also Puppy Linux (NTFS Read/Write support) and DSL Linux (Knoppix with NTFS Read only support) , as described by diddy http://www.911cd.net/forums//index.php?showtopic=18846
Download the latest Puppy Linux ISO file - Tested using "puppy-2.12-seamonkey.iso" http://puppylinux.org/user/news.php
Download the latest DSL Embedded .ZIP file - Tested using "dsl-3.3-embedded.zip" http://damnsmalllinux.org/
TXT-mode and GUI-mode Setup Windows XP
The procedure for Install of Windows XP from bootable USB-stick using a LocalSource was developed by ilko_t , jaclaz , cdob and porear and is described by ilko_t in MSFN Forum: http://www.msfn.org/board/index.php?showtopic=61384&st=199 The automatic making of a bootable USB-stick for Install of Windows XP can be realised with the USB_MultiBoot5.cmd batch command program.
The TXT-mode Setup of Windows XP includes the possibility to use the Recovery Console. The Recovery Console is of very limited use as compared to BartPE having Mini XP Desktop with very powerfull Program Menu. Nevertheless it is worthwhile to mention the Recovery Console within the scope of this subject.
Further Improvements of MultiBoot USB-stick:
Using Windows XP Source with Updates and DriverPacks Integrated: using RyanVM Integrator http://integrator.siginetsoftware.com/index.php?download with Update Packs and Addons http://www.ryanvm.net/forum/index.php?sid=58adec10fb305c75d490d2bd5184b68a and for DriverPacks using DP Base http://driverpacks.net/DriverPacks/overview.php and for Unattended Install http://unattended.msfn.org/unattended.xp/
$OEM$\CMDLINES.TXT can be used for making UserAccounts and install of Registry Tweaks at T-12 On first logon the Extracted BTS DriverPacks are deleted, which normally takes a long time, because SystemRestore copies them to System Volume Information folder. The Disable_SystemRestore.reg Registry Tweak prevents this action, so that first logon is much faster.
Personally I am using only the 5 smallest BTS DriverPacks with Mass Storage text mode enabled. So I do not integrate the 5 large Sound and Graphics DriverPacks, but use these Packs manually when Updating Drivers. The extraction and deletion of these 5 large DriverPacks is taking a lot of time. Mass Storage DriverPack with text mode enabled offers a lot of Extra SCSI, SATA and RAID Drivers for the $WIN_NT$.~BT Windows XP Bootfolder so that F6 for Extra Driver Floppies is no longer needed.
BartPE of Bart Lagerweij is a MINI XP with very powerfull Program Menu, and can simply be added to boot.ini Menu using the peinst.cmd of BartPE http://www.nu2.nu/pebuilder/
For a MultiBoot USB-stick combining BartPE ( minint folder ) and the LocalSource of Windows XP Setup (see below), I found the following solution to make BartPE boot from the minint folder, instead of launching Windows XP setup. Hexedit peldr using TinyHexer. Change in peldr the first occurrence of txtsetup.sif in notsetup.sif Now BartPE will boot from minint folder and will not use WinXP txtsetup.sif from root directory. http://www.msfn.org/board/index.php?showtopic=61384&st=224
Thanks to jaclaz for his helpfull advice to use gsar.exe for Hexediting of peldr in USB_MultiBoot.cmd program. Download gsar from http://gnuwin32.sourceforge.net/packages/gsar.htm
Usage: gsar [options] -s[search string] -r[replace string] [infile] [outfile]
copy /y R:\minint\setupldr.bin R:\peldr copy /y R:\peldr R:\peldr.bak makebt\gsar -b -f -sBT:x00:x00:x00\:x00:x00:x00txtsetup -rBT:x00:x00:x00\:x00:x00:x00notsetup R:\peldr R:\peldr.new copy /y R:\peldr.new R:\peldr
This construction was used because gsar Deletes an existing output file when no changes are necessary on input file.
Install of SYSLINUX is drive specific and it is not possible to Reinstall SYSLINUX by simple filecopy. File ldlinux.sys made in USB Root directory uses the Custom made files syslinux.cfg and menu.txt Bootsector Files are only recognised by SYSLINUX as such when they have the extension .bs
Example 4. File syslinux.cfg
PROMPT 1 TIMEOUT 0 DEFAULT 1 DISPLAY Menu.txt LABEL 1 KERNEL grub.exe LABEL 2 KERNEL memdisk APPEND initrd=images/memtp151.img LABEL 3 KERNEL btsec/MSBOOT.bs APPEND - LABEL 4 KERNEL btsec/FDBOOT.bs APPEND - LABEL 5 KERNEL btsec/PELDR.bs APPEND - LABEL 6 KERNEL btsec/BOOTMGR.bs APPEND - LABEL 7 KERNEL vmlinuz APPEND root=/dev/ram0 initrd=initrd.gz loglevel=3 PMEDIA=usbflash PKEYS=uk LABEL 8 KERNEL linux24 APPEND ramdisk_size=100000 init=/etc/init lang=us apm=power-off vga=791 initrd=minirt24.gz nomce noapic qemu quiet BOOT_IMAGE=knoppix frugal
Example 5. File menu.txt
1 - GRUB4DOS Menu 2 - Memtest86+ V1.51 3 - MS DOS 4 - FREEDOS 5 - BartPE - MINI XP 6 - WinPE 2.0 7 - Linux Puppy 8 - Damn Small Linux (KNOPPIX)
It is worthwhile to note that also direct booting with MS-DOS from SYSLINUX Menu is possible in this way.
SYSLINUX Menu requires a Drive Specific Install and is in general booting Faster than GRUB4DOS Menu, but boot.ini Menu is the most versatile BootMenu from which all other Boot Options are available !
Previous Version: Number of downloads: 275 ` 284 `
6500 ` 3896 `
1200 (3) + 2720 (4)
Edit 8 jan 2008: Added PeToUSB.exe
Changed GO_WINTOOLS_MENU.BAT and Added nu2menu.exe in MULTI_CONTENT\wintools\Nu2Menu folder Double-click on GO_WINTOOLS_MENU.BAT provides WinTools Menu from GO button. Added FREEDOS + DOSDEV drivers, grldr and grub.exe, VC, some tools
EDIT 5 feb 2008:
Removed %_mypath% in Making BootSector Files causing program crash when USB_MultiBoot2 folder was deep nested in Documents and Settings which results in a path with spaces. Added /r option in xcopy of $WIN_NT$.~LS Folder from usb_xpbt Folder to USB-Drive , needed in some cases where presetup.cmd was Read Only.
EDIT 14 feb 2008: Attachment Updated to USB_MultiBoot3.zip
Edit 20 feb 2008: New Release USB_MultiBoot4.zip Possible DOSNET.INF Parsing Error (biosinfo.inf not found etc.) was removed.
Edit 28 feb 2008: New Release USB_MultiBoot5.zip
ren_fold.cmd was changed such that $OEM$\$1 and $OEM$$$ folders are copied as usual to systemdrive (usually C:\) and systemroot (usually C:\WINDOWS) respectively. Format Menu was added allowing to use HP USB Format Tool for making USB-sticks (greater than 2 GB) with NTFS Format allowing Install of XP in 16 minutes. USB_MultiBoot5.cmd has now Option for Adding BartPE instead of using PeToUSB. Possible source of Error in SOURCE Pathes is Detected e.g. when XPSOURCE path contains SPACES.
Last edited by wimb_2: Feb 28 2008
documented on: 2008-03-08