Copyright (c) 2000-2003 by Bart Lagerweij. All rights reserved. Bart's way to create bootable CD-Roms (for Windows/Dos) Beware of... Bart's PE Builder... it's near... Version 0.48 Created: May 10, 2000 Last updated: Apr 25, 2003 Page contents :: Introduction :: What is a bootable CD-Rom? :: How does a PC boot from CD-Rom? (technical) :: Requirements for building the examples :: Bootable Dos CD-Rom (single boot image) [updated! nov 4, 2002] :: Bootable Dos CD-Rom (multiple boot images) [updated! nov 28, 2002] :: Corporate Modboot CD-Rom (multiple boot images) [new! dec 13, 2002] :: Clean Bootable CD-Rom (for BIOS upgrade) [new! dec 16, 2002] :: Single boot image (Diskemu) :: Multiple boot images (BIOS) :: Multiple boot images (isolinux/memdisk) :: Bootable Windows NT 4.0 installation CD-Rom :: Bootable Windows 2000 installation CD-Rom (with SP3) [updated! dec 17, 2002] :: Bootable Windows XP installation CD-Rom (with SP1) [updated! dec 17, 2002] :: Bootable Ghost restore CD-Rom "ELGHOST" :: About dd.exe :: About mkisofs.exe :: About mkbootcd.exe :: About cdrecord.exe :: About make.exe :: About bootcat.bin :: About Ghost :: Frequently asked questions :: Links :: Revision history :: Thank you Welcome to world's #1 page about creating bootable CD-Roms for PC! Introduction ...Bart's way of creating bootable CDs is not just another way, it is "THE SOLUTION" for your company... You (the technical guy) can create and prepare the structure for bootable installation, diagnostics or other CDs. And anybody in your company (without any knowledge about CD burning) can create and maintain these CDs by adding or changing files when needed. He just has to start a batchfile and select "Build & burn" to create a CD. For whom is this page? This page is for you if you want to: * create bootable CD-Roms on a regular basis * build and burn fully automatic (optional blank CDRW before burn) * use only freeware software to create your CDs * create a bootable CD-Rom with multiple boot images * create a Dos bootable CD-Rom using a hardware independent CD-Rom driver (for SCSI and ATAPI) This page is not for you if: * you want to create just 1 simple bootable CD-Rom. You should use Cdrwin, Nero or any other well known application to create CDs * you do not understand basic things like; o difference between a bootdisk and a boot image o CDR, CDRW medium o unpacking, copying, editing or renaming files From Sep 5, 2002 sections will be added to this page that use BCD (build CD) instead of cdrpack 1.3. Why use BCD? Cdrpack 1.x is single user/single computer by design. BCD has multi-user/multi-computer support, you can put BCD on your fileserver and run it from any workstation, no need to install any files on the workstation. What is a bootable CD-Rom? A bootable CD-Rom is a CD from which you boot the PC. This means putting the CD in your CD-Rom drive and power-on or reboot your system. The PC will load a boot image from the CD-Rom and control is given to this boot image. A bootable CD-Rom is not a CD that you insert into your CD-Rom drive and windows will start something from this CD-Rom. This is called an "autoplay" CD-Rom. I've just put this information here so that people who do not known the difference between a bootable and a "autoplay" CD-Rom can leave this page and look here: NU2-links: autorun. How does a PC boot from CD-Rom? (technical) A PC can boot from a CD-Rom if the PCs BIOS supports the El Torito Bootable CD-ROM Format Specification v1.0. This specification provides a way of getting to the location on the CD that will provide the boot information, while maintaining ISO-9660 compatibility. The El Torito specification was created in january 1995, by Curtus E. Stevens (Phoenix) and Stan Merkin (back then IBM). And it was called after a restaurant, the "El Torito grill", where they went to eat and talk about bootable CD-Roms. Click here for the full story... The ISO-9660 defines that a "Primary Volume Descriptor" must reside at sector 10h (16 decimal), relative to the start of the session. The El Torito specification uses a Boot Record Volume Descriptor. This Boot Record must be located at sector 11h (17 decimal) in the last session of the CD. The boot record contains an absolute pointer to the boot catalog. This catalog allows the system to pick a proper boot image to boot from. Boot Record Volume Descriptor Offset Type Description 0 Byte Boot record Indicator, must be 0 1-5 Byte ISO-9660 Identifier, must be "CD001" 6 Byte Version of this descriptor, must be 1 7-26 Byte Boot system identifier, must be "EL TORITO SPECIFICATION" padded with 0's. 27-46 Byte Unused, must be 0 47-4A Dword Absolute pointer to first sector of Boot catalog. 4A-7FF Byte Unused, must be 0 ...BIOS vendors do not implement the full El Torito specification... This all sounds very great, a nice and clear specification about bootable CD-Roms and if all BIOS vendors would implement the complete specification, there would be nothing to worry about. But the BIOS vendors do no follow the full El Torito specification! Below is a list of my findings, and if it is supported on all systems or not... (I'm not sure if 100% correct) Description What systems support it? Single boot image configuration All Multiple boot image configuration Some Boot record volume descriptor All Validation entry All Boot Indicator 88 "Bootable" All Boot Indicator 00 "Not bootable" None Boot media type 0 "No emulation" All *1 Boot media type 1,2,3 "Floppy emulation" All Boot media type 4 "Harddisk emulation" All Sector count Many *2 Load RBA All Header indicator All Platform ID Many *3 ID string Some *4 Section entry extensions I've never used it Int 13 function 4A - Initiate disk emulation None *5 Int 13 function 4B - Terminate disk emulation All Int 13 function 4C - Initiate disk emulation and boot None *5 Int 13 function 4D - Return boot catalog Some *1 Adaptec aha2940 supports no emulation mode from firmware revision 1.25 *2 Some systems do not support reading more than 1 sector *3 Some systems do not check the platform ID *4 I've only seen adaptec SCSI adapters support this *5 This one hurts, I wanted to use this function badly New mainboards come out all the time. I see that more and more new mainboards do not support multiboot images configurations. Requirements for building the examples This is what you need: 1. PC running Windows NT 4.0 SP4+, Windows 2000 or Windows XP. 2. SCSI or ATAPI based CD-recorder or rewriter. 3. ASPI manager (see also: Bart's page about ASPI). 4. 1 recordable (CDR) or rewritable (CDRW) CD, at first try, use a rewritable if you can. 5. To test if the completed CD works, you'll need a PC capable of booting CD-Roms. 6. Some basic skills for copying, unpacking and editing some files. Bootable Dos CD-Rom (single boot image) [updated! nov 4, 2002] This will create a bootable CD-Rom using one boot image. The boot image is a sector by sector image taken from a bootable floppy. When a PC boots from floppy this is normally done from the first floppy drive, known as drive number 0 or as drive A:. So, to let the CD-Rom boot there must be some mechanism that emulates a floppy drive (drive number 0). Using this method your PC BIOS provides the emulation for you. If you are unsure or confused by the information on this page then this example is probably what you are looking for. This example will use the CD-Rom boot disk. The steps to create are: 1. If you haven't already installed BCD, please do so now. BCD installation instructions: Download BCD full package v1.1.1 (523KB). Or update from previous version: BCD update package (v1.1.0-v1.1.1) (5KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bcd.cfg file will not get overwritten! Unpack the BCD package to some folder for example d:\bcd. If you want to be able to run it from a server you should unpack it to a share from where your workstations can run it. You will need to map a drive letter to that share and run bcd using that drive letter. Make sure you also unpack the subdirectories! Download Nero Aspi Library (wnaspi32.dll) and copy it into BCD's d:\bcd\bin directory. I have asked Ahead Software AG if I could distribute their aspi manager with my BCD package but they said: "...due to our licence agreement you could only let your users download it freely from our web site...". 2. If you haven't already installed BFD, please do so now. BFD installation instructions: Please download: BFD full package v1.0.7 (1.45MB). Or update from previous versions: BFD update package (v1.0.x-v1.0.7) (410KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bfd.cfg file will not get overwritten! Unpack BFD in the same directory as BCD, for example d:\bcd. If you have already unpacked BCD, then some files from BFD will overlap with files from BCD, like the nu2lic.txt and the bchoice.exe. This is no problem, just skip or overwrite them. Make sure you also unpack the subdirectories! 3. Download cdromsi.zip (updated Nov 4, 2002) (1KB) and unpack it into the same folder as where you have installed BCD/BFD. 4. Now you can customize things like: * Adding programs and files to "cds\cdromsi\files\" folder. These will appear in the root of your CD-Rom filesystem. * Change the file "cds\cdromsi\files\autorun.bat" you can add any commands you want, like starting some application that is located on the CD-Rom. 5. When you're done customizing, you open a command prompt, change to the BCD folder and run "bcd cdromsi" to build your ISO image and burn it to your CD writer (if you have one). Wasn't that simple or what?!? Bootable Dos CD-Rom (multiple boot images) [updated! nov 28, 2002] This will show you how to build a multiboot CD-Rom using isolinux and memdisk. Memdisk simulates a disk by claiming a chunk of high memory for the disk and a (very small - 2K typical) chunk of low (DOS) memory for the driver itself, then hooking the INT 13h (disk driver) and INT 15h (memory query) BIOS interrupts. Memdisk is very fast! Note: some people think this section is for linux only... Wrong! it is also for MS-Dos and other OSes. Note: you cannot build an ISO image that boots isolinux.bin correctly using nero, cdrwin or other buyware recording software, you have to use bcd (you can record the generated ISO image generate by bcd using nero, cdrwin or others). This example uses the CD-Rom boot disk. This example uses the Network boot disk. This example uses the Offline NT Password & Registry Editor, Bootdisk (c) 1998-2001 Petter Nordahl-Hagen (GNU-GPL license). NOTE: The 'chntpw' binary contains cryptograhic algorithms, like DES and others, which may be illegal to re-export from your country. screen shot ISOLINUX 2.00 2002-10-25 Copyright (C) 1994-2002 H. Peter Anvin Bart's way to create bootable CD-Roms Bootable Dos CD-Rom (multiple boot image) http://www.nu2.nu/bootcd/ Choose system/configuration to boot... Pressing [Enter] defaults to item "0" 0) Boot from first harddisk (drive 80h) 1) Boot Dos with CD-Rom support 2) Boot Dos with Network support 3) Offline NT Password & Registry Editor, Bootdisk (linux) a) Boot from first floppy drive (drive 0h) q) Skip CD-Rom boot (boot next device) Type selection at boot prompt Timeout: 20 seconds boot: (screen created with scr2htm) The steps to create are: 1. If you haven't already installed BCD, please do so now. BCD installation instructions: Download BCD full package v1.1.1 (523KB). Or update from previous version: BCD update package (v1.1.0-v1.1.1) (5KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bcd.cfg file will not get overwritten! Unpack the BCD package to some folder for example d:\bcd. If you want to be able to run it from a server you should unpack it to a share from where your workstations can run it. You will need to map a drive letter to that share and run bcd using that drive letter. Make sure you also unpack the subdirectories! Download Nero Aspi Library (wnaspi32.dll) and copy it into BCD's d:\bcd\bin directory. I have asked Ahead Software AG if I could distribute their aspi manager with my BCD package but they said: "...due to our licence agreement you could only let your users download it freely from our web site...". 2. If you haven't already installed BFD, please do so now. BFD installation instructions: Please download: BFD full package v1.0.7 (1.45MB). Or update from previous versions: BFD update package (v1.0.x-v1.0.7) (410KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bfd.cfg file will not get overwritten! Unpack BFD in the same directory as BCD, for example d:\bcd. If you have already unpacked BCD, then some files from BFD will overlap with files from BCD, like the nu2lic.txt and the bchoice.exe. This is no problem, just skip or overwrite them. Make sure you also unpack the subdirectories! 3. Download cdrommi.zip (16KB) and unpack it into the same folder as where you have installed BCD/BFD. 4. To enable option 3 you must download the Offline NT Password & Registry Editor, Bootdisk. Unzip the bd011022.zip file and extract the files from the bd011022.bin floppy image using winimage. Copy the files vmlinuz and initrd.gz files into the cds\cdrommi\files\chntpw\ folder. 5. Now you can customize things like: * Adding programs and files to "cds\cdrommi\files\" folder. These will appear in the root of your CD-Rom filesystem. * Change the file "cds\cdrommi\files\autorun.bat" you can add any commands you want, like starting some application that is located on the CD-Rom. By default the path is set to %cddrv%\ and %cddrv%\bin (where %cddrv% environment variable is set to your CD-Rom driveletter). 6. When you're done customizing, you open a command prompt, change to the BCD folder and run "bcd cdrommi" to build your ISO image and burn it to your CD writer (if you have one). Wasn't that also simple or what?!? Corporate Modboot CD-Rom (multiple boot images) [new! dec 13, 2002] So, you wanna create a monster bootable CD-Rom? Containing things like: * Disktool * Volkov Commander v5 * Symantec Ghost * PowerQuest PartitionMagic * Winternals ERD Commander 2002 * Virus scanner, Mcafee or F-Prot * NTFS Dos/Pro * PCI bus scanner * Bios/chipset detect Checkout the Corporate Modboot page. Clean Bootable CD-Rom (for BIOS upgrade) [new! dec 16, 2002] Some people ask me if it is possible to create a bootable CD-Rom to update/flash their BIOS, on a system that has no floppy disk drive. I realize that some new PC's nowadays also don't have a floppy drive so this problem may affect more people in future... This is probably is easiest bootable CD-Rom I've ever built. This Clean Bootable CD-Rom can be used for flashing your BIOS or other programs that need to be run from a "clean-booted" Dos operating system. The steps to create are: 1. If you haven't already installed BCD, please do so now. BCD installation instructions: Download BCD full package v1.1.1 (523KB). Or update from previous version: BCD update package (v1.1.0-v1.1.1) (5KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bcd.cfg file will not get overwritten! Unpack the BCD package to some folder for example d:\bcd. If you want to be able to run it from a server you should unpack it to a share from where your workstations can run it. You will need to map a drive letter to that share and run bcd using that drive letter. Make sure you also unpack the subdirectories! Download Nero Aspi Library (wnaspi32.dll) and copy it into BCD's d:\bcd\bin directory. I have asked Ahead Software AG if I could distribute their aspi manager with my BCD package but they said: "...due to our licence agreement you could only let your users download it freely from our web site...". 2. If you haven't already installed BFD, please do so now. BFD installation instructions: Please download: BFD full package v1.0.7 (1.45MB). Or update from previous versions: BFD update package (v1.0.x-v1.0.7) (410KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bfd.cfg file will not get overwritten! Unpack BFD in the same directory as BCD, for example d:\bcd. If you have already unpacked BCD, then some files from BFD will overlap with files from BCD, like the nu2lic.txt and the bchoice.exe. This is no problem, just skip or overwrite them. Make sure you also unpack the subdirectories! 3. Download Clean v1.0 package (clean.zip) (2KB) and unpack it into the same folder as where you have installed BCD/BFD. 4. Add the files needed to upgrade your BIOS to cds\clean\bootdisk\ folder. You have about 2.5MB available space on the bootimage (2.88MB floppy emulation). Do not add your files to cds\clean\files\ folder! Optionally you can edit the file cds\clean\bootdisk\autorun.bat and append a line to run your flash program. 5. When you're done customizing, you open a command prompt, change to the BCD folder and run "bcd clean" to build your ISO image and burn it to your CD writer (if you have one). Warning! Use this Clean Bootable CD-Rom at your own risk. I only tried Asus aflash.exe flash program and that works OK! Single boot image (Diskemu) Using this method a special program called "diskem1x" is loaded first and that program will provide the emulation for the boot images. Use this if you want to boot "dos" based operating systems like Dos 5.x/6.x, Windows 9x, Windows ME... The advantage of using diskem1x is that it works together with a special Dos CD-Rom driver, called "eltorito.sys", which is based on INT13 extensions and is hardware independent (more info on this look here). The steps to create are: 1. If you have not already setup cdrpack version 1.3 then download cdrpack v1.3 (624KB). This file contains a workspace where you can build your bootable CD's from. Unpack the cdrpack13.zip file to a directory on your local harddisk. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 2. If you have not already setup diskemu add-on, version 1.1 (11/07/01) then download diskemu add-on (11KB). Unpack the diskemu_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 3. Download single diskemu add-on (2KB). Unpack the single_diskemu_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 4. Follow the steps in the CD-Rom boot disk page to create the CD-Rom boot disk bootdisk. Create a boot image file from the "CD-Rom boot disk" bootdisk using dd.exe, you should call this boot image "cdrom.img" and put it into the "cds\single_diskemu\disk1" directory. Note! You have to rename the boot image to lowercase! 5. All other files and folders you want in the CD-Rom filesystem must also be copied into cds\single_diskemu\disk1 directory. 6. Customize the file cds\single_diskemu\disk1\diskemu.cmd for your personal needs. 7. Change cds\single_diskemu\disk1\autorun.bat you can add any commands you want. For example start an application from CD-Rom. 8. Edit the file cds\single_diskemu\build.mak and put your name into the "preparer" variable. 9. Start the batch file "run.bat". From the "Main menu" select "Build & Burn" and "single_diskemu". Good luck! Multiple boot images (BIOS) This example goes about creating a bootable CD-Rom using multiple boot images in floppy emulation. You can build your own boot images, or add more images if you like. Warning! It is possible that your BIOS does not support El Torito multiple boot image configuration! There is no easy way to check. When your PC boots only the first image, your BIOS does not support multiboot! The boot images used in this example are: * cdrom.img - CD-Rom boot disk * msnet.img - Network boot disk * scsitool.img - SCSITOOL bootdisk * cpuid.img - The Intel® Processor Frequency ID Utility 1. If you have not already setup cdrpack version 1.3 then download cdrpack v1.3 (624KB). This file contains a workspace where you can build your bootable CD's from. Unpack the cdrpack13.zip file to a directory on your local harddisk. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 2. Download multi eltorito add-on (1KB). Unpack the multi_eltorito_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 3. Follow the steps in the CD-Rom boot disk page to create the CD-Rom boot disk bootdisk. Create a boot image file from the "CD-Rom boot disk" bootdisk using dd.exe, you should call this boot image "cdrom.img" and put it into the "cds\multi_eltorito\disk1" directory. Note! You have to rename the boot image to lowercase! 4. Follow the steps in the Network boot disk page to create the Network boot disk bootdisk. Create a boot image file from the "Network boot disk" bootdisk using dd.exe, you should call this boot image "msnet.img" and put it into the "cds\multi_eltorito\disk1" directory. Note! You have to rename the boot image to lowercase! 5. Follow the steps in the SCSITOOL page to create the SCSITOOL bootdisk. Create a boot image file from the "SCSITOOL" bootdisk using dd.exe, you should call this boot image "scsitool.img" and put it into the "cds\multi_eltorito\disk1" directory. Note! You have to rename the boot image to lowercase! 6. Follow the steps in the CPUID page to create the CPUID bootdisk. Create a boot image file from the "CPUID" bootdisk using dd.exe, you should call this boot image "cpuid.img" and put it into the "cds\multi_eltorito\disk1" directory. Note! You have to rename the boot image to lowercase! 7. All other files and folders you want in the CD-Rom filesystem must also be copied into cds\multi_eltorito\disk1 directory. 8. Change cds\multi_eltorito\disk1\autorun.bat you can add any commands you want. For example start an application from CD-Rom. 9. Edit the file cds\multi_eltorito\build.mak and put your name into the "preparer" variable. 10. Start the batch file "run.bat". From the "Main menu" select "Build & Burn" and "multi_eltorito". Done! Multiple boot images (isolinux/memdisk) This will show you how to build a multiboot CD-Rom using isolinux and memdisk. Memdisk simulates a disk by claiming a chunk of high memory for the disk and a (very small - 2K typical) chunk of low (DOS) memory for the driver itself, then hooking the INT 13h (disk driver) and INT 15h (memory query) BIOS interrupts. Memdisk is very fast! Note: some people think this section is for linux only... Wrong! it is also for MS-Dos and other OSes. Note: you cannot build an ISO image that boots isolinux.bin correctly using nero, cdrwin or other buyware recording software, you have to use cdrpack/mkisofs (you can record the generated ISO image generate by cdrpack/mkisofs using nero, cdrwin or others). I will create a patched version of isolinux.bin that can also be used with nero or so when I have some spare time. The boot images used in this example are: * cdrom.img - CD-Rom * msnet.img - Network * tomsrtbt.img (Eltorito.288) - The most linux on one disk - by Tom Oehser You can build your own boot images, or add more images if you like. The steps to create are: 1. If you have not already setup cdrpack version 1.3 then download cdrpack v1.3 (624KB). This file contains a workspace where you can build your bootable CD's from. Unpack the cdrpack13.zip file to a directory on your local harddisk. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 2. Download multi memdisk add-on (14KB). Unpack the multi_memdisk_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! The addon contains: ISOLINUX 1.67 and MEMDISK 1.67 Copyright 2001 H. Peter Anvin. The isolinux is a little bit modified by Bart Lagerweij to support loading of NT CD-Rom bootsectors (.bin files). If you want to add loading of Windows NT4/2000/XP bootsectors or other applications that build on the NT bootsector, like ERD commander, you must add the following lines to the isolinux.cfg file: label 9 kernel w2ksect.bin Note! file must have ".bin" extension, not .dat like in the Windows 2000 example. A bootmsg.txt file, this will create a screen similar to the one seen below: bootmsg.txt - output ISOLINUX 1.68 0x3c7f7718 Copyright (c) 1994-2002 H. Peter Anvin Bart's way to create bootable CD-Roms http://www.nu2.nu/bootcd/ 0) Boot from first harddisk (0x80) 1) Boot Dos with CD-Rom support 2) Boot Dos with Network support 3) Boot Dos with CD-Rom (eltorito.sys) support 4) Boot Linux (tomsrtbt) a) Boot from first floppy drive (0x00) q) Skip CD-Rom boot (try next boot device) When no key is pressed for 20 sec, or when you hit Enter "0" will be run... Type command at the prompt... boot: (screen created with scr2htm) A isolinux.cfg file, looks like this: isolinux.cfg default 0 display bootmsg.txt prompt 1 label 0 localboot 0x80 label a localboot 0x00 label q localboot -1 label 1 kernel memdisk append initrd=cdrom.img label 2 kernel memdisk append initrd=msnet.img label 3 kernel memdisk append initrd=tomsrtbt.img timeout 200 3. Follow the steps in the CD-Rom boot disk page to create the CD-Rom boot disk bootdisk. Create a boot image file from the "CD-Rom boot disk" bootdisk using dd.exe, you should call this boot image "cdrom.img" and put it into the "cds\multi_memdisk\disk1\isolinux" directory. Note! You have to rename the boot image to lowercase! 4. Follow the steps in the Network boot disk page to create the Network boot disk bootdisk. Create a boot image file from the "Network boot disk" bootdisk using dd.exe, you should call this boot image "msnet.img" and put it into the "cds\multi_memdisk\disk1\isolinux" directory. Note! You have to rename the boot image to lowercase! 5. Get the 2.88MB Eltorito image from http://www.toms.net/rb/ call the image "tomsrtbt.img" and put it in the "cds\multi_memdisk\disk1\isolinux" directory. 6. All other files and folders you want in the CD-Rom filesystem must also be copied into cds\multi_memdisk\disk1 directory. 7. Change cds\multi_memdisk\disk1\autorun.bat you can add any commands you want. For example start an application from CD-Rom. 8. Edit the file cds\multi_memdisk\build.mak and put your name into the "preparer" variable. 9. Start the batch file "run.bat". From the "Main menu" select "Build & Burn" and "multi_memdisk". Done! Bootable Windows NT 4.0 installation CD-Rom This will show you how to create a bootable Windows NT 4.0 Workstation or Server CD-Rom. It uses the bootstrap loader from Windows 2000 to have a "press any key to boot from CD" option. It has an updated atapi driver to support harddisks larger than 10GB. Optionally you can add service packs, security hotfixes and other stuff to your CD. The boot catalog and NT bootstrap loader are hidden, just like the original bootable Windows NT 4.0 CD-Rom. Joliet extensions are enabled by default, so you can have long filenames on the CD, the original Microsoft Windows NT 4.0 bootable CD-Rom uses only ISO9660. The steps to create are: 1. If you have not already setup cdrpack version 1.3 then download cdrpack v1.3 (624KB). This file contains a workspace where you can build your bootable CD's from. Unpack the cdrpack13.zip file to a directory on your local harddisk. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 2. Download Windows NT 4.0 add-on (3KB). Unpack the nt4_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! The add-on contains, the Windows 2000 bootstrap loader, the Windows 2000 bootfix.bin and the "build.mak" file. We will be using the bootstrap loader from Windows 2000, this will give us the "Press any key to boot from CD" option. 3. From Windows NT 4.0 CD copy the "i386" folder to cds\nt4ws_us\disk1\. You will find the cds\nt4ws_us\disk1\ folder in the same directory as where you have unpacked the cdrpack and Windows NT 4.0 add-on. 4. From Windows NT 4.0 CD copy into cds\nt4ws_us\disk1\ the following files: If you are building a Windows NT 4.0 workstation CD copy: cdrom_w.40 If you are building a Windows NT 4.0 server CD copy: cdrom_s.40 5. Optionally copy (from Windows NT 4.0 CD) into cds\nt4ws_us\disk1\ the following files: autorun.inf 6. If you have copied Windows NT 4.0 from MSDN CD... Edit the file i386/txtsetup.sif section [SetupData], and change SetupSourcePath = "\" 7. Copy Service Pack 6a, the Post-SP6a Security Rollup Package (SRP) and maybe some other security fixes to cds\nt4ws_us\disk1\. 8. Update Atapi driver. Unpack Service Pack 6a to a temporarily folder using /x parameter. From this temporarily folder copy into cds\nt4ws_us\disk1\i386 the following files: * ntldr * ntdetect.com * atapi.sys 9. All other files and folders you want in the CD-Rom filesystem must also be added to cds\nt4ws_us\disk1. Things you could add are: latest internet explorer, directx, ... 10. Edit the file cds\nt4ws_us\build.mak change the "volumeid" if you like and put your name into the "preparer" variable. 11. Let's check some files to see if they are in the right place. Make sure that the following files exist: * cds\nt4ws_us\disk1\w2ksect.dat * cds\nt4ws_us\disk1\i386\bootfix.bin * cds\nt4ws_us\disk1\i386\setupldr.bin * If you are building a Windows NT 4.0 workstation CD: cds\nt4ws_us\disk1\cdrom_w.40 If you are building a Windows NT 4.0 server CD: cds\nt4ws_us\disk1\cdrom_s.40 If one or more files are missing do not continue! Go back to correct it! 12. Start the batch file "run.bat". From the "Main menu" select "Build & Burn" and "nt4ws_us". To have more Windows NT 4.0 versions available from cdrpack to build, you can just rename the "nt4ws_us" folder to any other name you want, and go again from step 2. Done! Bootable Windows 2000 installation CD-Rom (with SP3) [updated! dec 17, 2002] This will show you how to create a bootable Windows 2000 Professional, Server or Advanced Server CD-Rom. Optionally you can integrate (slipstream) service pack 3, and add other stuff you want to your CD. The boot catalog and the NT bootstrap loader are hidden, just like the original bootable Windows 2000 CD-Rom. For multiboot (3-in-1) check out Twinkie's How-to Website. Joliet extensions are enabled by default, so you can have long filenames on the CD, the original Microsoft Windows 2000 bootable CD-Rom uses only ISO9660. The steps to create are: 1. BCD installation instructions: Download BCD full package v1.1.1 (523KB). Or update from previous version: BCD update package (v1.1.0-v1.1.1) (5KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bcd.cfg file will not get overwritten! Unpack the BCD package to some folder for example d:\bcd. If you want to be able to run it from a server you should unpack it to a share from where your workstations can run it. You will need to map a drive letter to that share and run bcd using that drive letter. Make sure you also unpack the subdirectories! Download Nero Aspi Library (wnaspi32.dll) and copy it into BCD's d:\bcd\bin directory. I have asked Ahead Software AG if I could distribute their aspi manager with my BCD package but they said: "...due to our licence agreement you could only let your users download it freely from our web site...". 2. Download Windows 2000 package v1.0 (w2k10.zip) (7KB). Unpack it into the BCD directory, d:\bcd. Make sure you also unpack the subdirectories! The Windows 2000 package contains the Windows 2000 bootstrap loader (boot sector) and some other files used to build the CD. 3. You must copy the i386 folder from your Windows 2000 installation/setup CD-Rom. For Windows 2000 Professional copy it to the d:\bcd\cds\w2kpro\files\ folder. For Windows 2000 Server copy it to the d:\bcd\cds\w2ksrv\files\ folder. For Windows 2000 Advanced Server copy it to the d:\bcd\cds\w2kadv\files\ folder. Make sure you copy all files and all subdirectories! If you're Windows 2000 files are already "slipstreamed" with a service pack you must also copy the CDROM_SP.TST or CDROMSPx.TST file. This will prevent the CD asking "put the SPx CD into drive A:" during install. 4. Optionally you can also copy the following files (not needed for bootable CD installation): autorun.inf read1st.txt readme.doc setup.exe 5. If you have a Windows 2000 CD from MSDN... Edit the file i386\txtsetup.sif section [SetupData], and change the setup source path, it should read: SetupSourcePath = "\" 6. If you have copied Windows 2000 from MSDN CD you can disable the product key prompt: Edit i386/setupp.ini file, remove the read-only attribute and open the file in notepad. Change the last 3 digits of the Pid number to 270 Example: [Pid] ExtraData=123456789012345678901234567890 Pid=12345270 7. You can apply Service Pack 3 to this installation (integrated installation). So that you have an installation CD-ROM with the service pack built in. Apply service pack 3 to your files using the "-s" option (you must supply full path). For Windows 2000 Professional: w2ksp3.exe -s:d:\bcd\cds\w2kpro\files\ For Windows 2000 Server: w2ksp3.exe -s:d:\bcd\cds\w2ksrv\files\ For Windows 2000 Advanced Server: w2ksp3.exe -s:d:\bcd\cds\w2kadv\files\ Notes: * The w2ksp3.exe can only be run on a Windows 2000 or XP PC! * You should now have a CDROMSP3.TST file in the files directory. Check this, to prevent the CD asking "put the SP3 CD into drive A:" during install. 8. All other files and folders you want on the CD-Rom must also be added to the files directory, these files will not be integrated in the Windows 2000 installation, they're just parked there. Things you could add are: latest patches, internet explorer, directx. Add your files to: For Windows 2000 Professional: d:\bcd\cds\w2kpro\files\. For Windows 2000 Server: d:\bcd\cds\w2ksrv\files\. For Windows 2000 Advanced Server: d:\bcd\cds\w2kadv\files\. 9. Open a command prompt, go to the d:\bcd folder and run: For Windows 2000 Professional: bcd w2kpro. For Windows 2000 Server: bcd w2ksrv. For Windows 2000 Advanced Server: bcd w2kadv. This will build the (bootable) ISO image and burn it to your recorder. Done! Bootable Windows XP installation CD-Rom (with SP1) [updated! dec 17, 2002] This will show you how to create a bootable Windows XP Home Edition or Professional installation/setup CD-Rom. Optionally you can integrate (slipstream) service pack 1, and add other stuff you want to your CD. The boot catalog and the NT bootstrap loader are hidden, just like the original bootable Windows XP CD-Rom. Joliet extensions are enabled by default, so you can have long filenames on the CD. Note: This will not create a "dual" bootable XP CD with Home edition and Professional together on one CD. The steps to create are: 1. BCD installation instructions: Download BCD full package v1.1.1 (523KB). Or update from previous version: BCD update package (v1.1.0-v1.1.1) (5KB). When updating from previous versions, just extract the package over the previous version, overwrite any existing files. The bcd.cfg file will not get overwritten! Unpack the BCD package to some folder for example d:\bcd. If you want to be able to run it from a server you should unpack it to a share from where your workstations can run it. You will need to map a drive letter to that share and run bcd using that drive letter. Make sure you also unpack the subdirectories! Download Nero Aspi Library (wnaspi32.dll) and copy it into BCD's d:\bcd\bin directory. I have asked Ahead Software AG if I could distribute their aspi manager with my BCD package but they said: "...due to our licence agreement you could only let your users download it freely from our web site...". 2. Download Windows XP package v1.0 (wxp10.zip) (5KB). Unpack it into the BCD directory, d:\bcd. Make sure you also unpack the subdirectories! The Windows XP package contains the Windows XP bootstrap loader (same as Windows 2000) and some other files used to build the CD. 3. You must copy the i386 folder from your Windows XP installation/setup CD-Rom. For Windows XP Home Edition copy it to the d:\bcd\cds\wxphome\files\ folder. For Windows XP Professional copy it to the d:\bcd\cds\wxppro\files\ folder. Make sure you copy all files and all subdirectories! If you're Windows XP files are already "slipstreamed" with a service pack you must also copy the win51ic.SPx or win51ip.SPx file. This will prevent the CD asking "put the SPx CD into drive A:" during install. The location of the i386 folder may differ, for example when you have a dual boot MSDN cd-rom it will be in \%lang%\winxp\%edition%, where %lang% is your language, like "ENGLISH", "GERMAN" and %edition% is "Home" or "Pro". Other CD's may have it just in the root or in some other location. 4. Optionally you can also copy the following files (not needed for bootable CD installation): autorun.inf readme.htm setup.exe 5. If you have a Windows XP CD from MSDN... Edit the file i386\txtsetup.sif section [SetupData], and change the setup source path, it should read: SetupSourcePath = "\" 6. You can apply Service Pack 1 to this installation (integrated installation). So that you have an installation CD-ROM with the service pack built in. Apply service pack 1 to your files using the "-s" option (you must supply full path). For Windows XP Home edition: xpsp1_en_x86.exe -s:d:\bcd\cds\wxphome\files\ For Windows XP Professional: xpsp1_en_x86.exe -s:d:\bcd\cds\wxppro\files\ Notes: * The Service Pack file can have another name, like xpsp1_nl_x86.exe for Dutch language. * The xpsp1_en_x86.exe can only be run on a Windows 2000 or XP PC! * You should now have a win51ic.sp1 or win51ip.sp1 file in the files directory. Check this, to prevent the CD asking "put the SP1 CD into drive A:" during install. 7. All other files and folders you want on the CD-Rom must also be added to the files directory, these files will not be integrated in the Windows XP installation, they're just parked there. Things you could add are: latest patches, internet explorer, directx. Add your files to: For Windows XP Home edition: d:\bcd\cds\wxphome\files\. For Windows XP Professional: d:\bcd\cds\wxppro\files\. 8. Open a command prompt, go to the d:\bcd folder and run: For Windows XP Home edition: bcd wxphome. For Windows XP Professional: bcd wxppro. This will build the (bootable) ISO image and burn it to your recorder. Done! Bootable Ghost restore CD-Rom "ELGHOST" The ELGHOST v2.0 bootable CD-Rom uses isolinux.bin, memdisk and the eltorito.sys (hardware independent CD-Rom driver). See also: About ghost. Requirements: * Norton Ghost (from symantec) The boot image used in this example is: * cdrom.img - CD-Rom boot disk The steps to create are: 1. If you have not already setup cdrpack version 1.3 then download cdrpack v1.3 (624KB). This file contains a workspace where you can build your bootable CD's from. Unpack the cdrpack13.zip file to a directory on your local harddisk. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! 2. Download Elghost v2.0 add-on (15KB). Unpack the elghost_addon.zip file into the same directory as cdrpack 1.3. Make sure you expand the subdirectories! So when using pkunzip.exe use the -d option! The addon contains: ISOLINUX 1.67 and MEMDISK 1.67 Copyright 2001 H. Peter Anvin. 3. Follow the steps in the CD-Rom boot disk page to create the CD-Rom boot disk bootdisk. Create a boot image file from the "CD-Rom boot disk" bootdisk using dd.exe, you should call this boot image "cdrom.img" and put it into the "cds\elghost\disk1\isolinux" directory. Note! You have to rename the boot image to lowercase! 4. All other files and folders you want in the CD-Rom filesystem must also be copied into cds\elghost\disk1 directory. 5. Put ghost.exe and your ghost image file(s) (*.gho) into cds\elghost\disk1\. You can also create a small description text file, with the same base name as your image but using .txt as the file extension. 6. Edit the file cds\elghost\build.mak and put your name into the "preparer" variable. 7. Start the batch file "run.bat". From the "Main menu" select "Build & Burn" and "elghost". Done, happy ghosting! About dd.exe DD.EXE is used to create an image file from a floppy bootdisk. Do not confuse it with the unix "dd" command it is not quite the same. Example: dd a: .img This will create an image file from your bootdisk in drive A:. You could also use winimage (not freeware) for this, but remember to save your floppy image as .IMA (not compressed) file. DD was written by Michael L. Hasenfratz in 1991. Homepage: there is none. Download: dd.zip (8KB) About mkisofs.exe Used to build/create the ISO image file. Version 1.13 (and higher) of mkisofs also supports creating multiboot images, (using the "-eltorito-alt-boot" option). Used mkisofs options: (to see all options run "mkisofs") -v Verbose -N Omit version number from ISO9660 filename (needed for NT CD-Roms) -o Set output filename -l Allow full 31 character filenames for ISO9660 names -no-iso-translate Do not translate illegal ISO characters '~' and '#' -relaxed-filenames Do not translate directory- and filenames containing a dollar sign, like "$OEM$" When running mkisofs you will receive a message saying: "Warning: creating filesystem that does not conform to ISO-9660." This should be no problem. For more information on mkisofs v1.13 see the online man page or the homepage. Mkisofs is written by Joerg Schilling. About mkbootcd.exe From revision 0.37 of this page, mkbootcd.exe is no longer needed. About cdrecord.exe Used to burn the ISO image to the CDR(W). Used cdrecord options: (to see all options run "cdrecord") dev=bus,id,lun SCSI target to use as CD/DVD-Recorder (use cdrecord -scanbus to see device list) -v Increment general verbose level by one -data Subsequent tracks are CD-Rom data mode 1 -eject Eject the disk after the work is done For more information on cdrecord v1.9 see the online man page or the homepage. Cdrecord is written by Joerg Schilling. About make.exe GNU Make version 3.79.1, comes from Cygwin. It is written by Richard Stallman and Roland McGrath. About bootcat.bin From revision 0.37 of this page, a dummy bootcat.bin file is no longer needed. About Ghost Norton Ghost (now Symantec) is (great) non free software to create (and restore) harddisk images. You can limit Ghost's capabilities so that your users do not have full access to Ghost's features. You can configure the Ghost edition that is stored on the CD ROM to enable only image file restoration, thus removing the possibility of the end users attempting to use the other functions of Ghost. Edit the license file (ghost.env) like this: Keynum : 99999 License : AA999999 MaxPCs : 99 Name : YourName Address1: YourCompany Address2: switches: load=y,dump=n,disk=n,peer=n,write=y,fprnt=y Run "ghost -#e" to apply the switches to the ghost.exe file. For more information on this look here. If your ghost image is larger than 620MB it will not fit on your CD. To split it into smaller segments you can use ghost explorer to split it. More Ghost command-line switches? Look here. If you don't want Ghost to write any error information to ghost.err, add the "-afile=NUL" switch. Frequently asked questions I have collected some of the questions I've received here: 1. [Q] Does Bart's way to create bootable CD-Roms also work on ATAPI/IDE cdwriters? [A] Yes (still need Aspi manager). 2. [Q] I get this message, what does it mean? cdrecord: Cannot do inquiry for CD/DVD-Recorder. cdrecord: Invalid argument. test unit ready: scsi sendcmd: fatal error CDB: 00 00 00 00 00 00 cmd finished after 0.000s timeout 40s [A] It means that cdrecord is addressing the wrong drive. 3. [Q] Could you just save those boot CDs you made as ISO's and have them available for download? That would be great. [A] That would flood my link to the internet, because of these large files. In other words: NO!. You have to create them yourself. 4. [Q] I have created a multi-boot CD, but my computer automatically boots into the first image. What did I do wrong? [A] This is the most asked question (or problem)! Some people seem to think that they did something wrong, but it is the BIOS in their PC that is propably not supporting multiboot images. But... there is a way around this! Check out the isolinux/memdisk section. 5. [Q] I have a bootable Windows 2000 install/setup CDRom, when it boots you must press a key to boot from CDRom. If no key was pressed it boots from the hard drive. Is there a way to do the same thing on a bootable CD using a floppy boot image? [A] Yes, two options: 1. This can be done using Diskemu. 2. Use the jo.sys loader I've created. 6. [Q] Mkisofs says: "Warning: creating filesystem that does not conform to ISO-9660" [A] This is normal, ignore it. 7. [Q] Can I emulate writing CDs using cdrecord? [A] Yes, add the "-dummy" option to cdrecord. This executes everything with the laser turned off. 8. [Q] Can I blank a CDRW using cdrecord? [A] Yes. use the "blank" option in cdrecord.exe For a "fast" erase: cdrecord dev=x,y,z blank=fast For a "full" erase: cdrecord dev=x,y,z blank=all When using cdrpack there is a checkbox called "Blank CDRW media before recording" just check it before burning... 9. [Q] How can I see what's inside a .ISO file? [A] Use ISOINFO (get it from the latest cdrtools-x.xxx-win32-bin.zip) or IsoBuster. To see the information from the primary volume descriptor: isoinfo -d -i mycd.iso To see all the files in the ISO image isoinfo -l -i mycd.iso 10. [Q] I have created a multi boot CD, is it possible to name the items as they come up? (I only see numbers) [A] No, your BIOS is limited in this way. It just displays the numbers and media types. There is only one way around this: use diskem1x. 11. [Q] Is it possible to make a bootable CD that will completely boot up Windows as if it was booting from the hard drive? [A] [Updated April 25, 2003] * For Windows XP, try using my PE builder. * For Windows 9x, checkout c't 11/99, page 206 - Booting Windows From CD-Rom. (Not easy! Some people have trouble doing this for windows 98, so you should try windows 95). * For Windows NT4.0, you will need a special version of Windows NT 4.0 called Windows NT Embedded. This is a minimal version of Windows NT4.0 (service pack 5 integrated) with special target design tools. There is an evaluation kit available for a small price. Also not easy! 12. [Q] I don't have a 2.88MB floppy drive. How do I make a bootable 2.88MB Dos-based floppy image? [A] Use bfd. 13. [Q] The information on this page is a real lifesaver... How can I thank Bart for his help? How can I do something in return? [A] Look here: http://www.nu2.nu/thanks/bart/. 14. [Q] When building the ISO file I get this message: "mkisofs.exe: Uh oh, I cant find the boot image '%file%.img' !" (where %file% is the name of your boot image) [A] Mkisofs.exe cannot find the bootimage file, remember that mkisofs.exe is a Posix/Unix application and it is case sensitive. Try renaming your file into lowercase... 15. [Q] I've burned a bootable NT4/W2K/XP CDRom using Nero. When booting I can get the message "BOOT: Couldn't find NTLDR" [A] You need to disable ISO9660 file versions, in Nero you need to do a registry setting: HKEY_CURRENT_USER\Software\ahead\Nero - Burning Rom\General\AddISOFileVersion Set the value to 0 (zero). Newer version of Nero have an option in the "ISO" page, Relax ISO Restictions, Enable "Do not add ';1' ISO file version extensions". 16. [Q] I don't trust my CD-Rom drive, how can I test it? [A] Use Bst5. Check the page. Links For a list of bootable CD-Rom related links, goto the "Bootable CD-Rom" section of the links page. Revision history The modifications made with each new revision: * 0.48 Added Clean Bootable CD-Rom * . 0.47 Rewrote Windows 2000 * . 0.46 Added "Offline NT Password & Registry Editor, Bootdisk". * 0.45 Added Bootable Dos CD-Rom (multiple boot images) section. * 0.44 Rewrote the Bootable Dos CD-Rom (single boot image) section. * Now using BFD and BCD. 0.43 Updated the elghost section. Now using CD-Rom boot disk. * 0.42 Updated the elghost section. * 0.41 Added Multiple boot images (isolinux/memdisk). * 0.40 Minor changes and cleanup. * 0.39 Minor overall changes. * Also updated the makefile to v1.4, this should solve "/bin/sh.exe: Command not found" issues. 0.38 Updated Windows XP section! * 0.37 Rewrote most of the page. Now using cdrpack! * 0.36 Rewrote Example5 to use diskem1x.bin v1.1BETA and cdrpack v1.2 workspace. Much more easier to use! * 0.35 Updated Example5 to meet diskemu.bin v0.9BETA requirements. [snip]... Thank you A big "thank you" goes to: * Martin Moens, for hosting this page from december 1999 until november 2001 (for free)! * Denis (saburovo.com) for currently hosting the nu2 site (also for free)! * Gary Tong, for writing the first version(s) of diskemu.bin/eltorito.sys * Everybody who gave me feedback See also: JO.SYS - Bart's Boot Image Extractor - Multiboot disk emulator