This video moves quite fast, so use the pause button to see each step
and all settings used!
Note: This method is new and not 100% guaranteed to work on all makes and models of systems. The main advantage of this method is that it is very quick to try as you do not need to create a new ISO which can take an hour or more! If this method does not work then I would recommend trying WinSetupFromUSB instead (see Troubleshooting section below).
On older computers with IDE hard disks you can use the method described here, but on AHCI mode hard disk systems you will need to use the method below to install the AHCI driver.
This tutorial explains how you can add an XP Install CD as an ISO file to your grub4dos bootable USB flash drive. It is the perfect companion for Tutorial #43 and can easily be added to the menu.lst used in that tutorial. Some points to note about this method are:
The original unmodifed WinVBlock (does not include AHCI/RAID drivers) can be downloaded from here.
For this tutorial you will need the new modified version from the Beta Downloads - Tutorials section of this website.
Note: WinVBlock now updated! The version of WinVBlock I was using was an old version! The Beta download section of this web site now has the new version (as of 22-Feb-2011) - please use this new version.
This method uses WinVBlock and/or FiraDisk which are virtual disk drivers (RAM disks) which can be recognised by grub4dos and XP.
Both drivers are similar and do a similar job. I found WinVBlock to be faster during the Step 1 file copy stage for some reason, but on some hardware platforms the XP Setup failed during the GUI mode (step 2). So for a reliable method, I would recommend always using FiraDisk unless you can be bothered to experiment with WinVBlock!
On your USB Drive you will only need these 4 or 5 files after you follow this tutorial:
During testing, I found that WinVBlock failed when used with a DQ57 Intel mainboard in STEP 2 and prompted me for a cmprops.dll file which it could not find as the virtual CD loaded by grub4dos had disappeared! I also got the same error when running under the QEMU emulator. If however, I used FiraDisk, then it installed XP fine. Here are my test results for an HP mini 100e netbook (Atom N455 CPU) and an Intel DQ67OW Intel Series 6 chipset mainboard (both running under AHCI HDD):
To boot a PC or notebook from a USB Drive (USB flash drive or USB hard disk) and install XP onto the hard disk of that computer, even if the computer BIOS only supports AHCI mode for the hard disk (not BIOS IDE/Compatible mode). No special nLited or modified XP CD/ISO is required.
This tutorial was tested by installing an Atom based netbook (HP mini 100e) which does not have an IDE/Compatibility mode setting in it's BIOS and also on an Intel DQ67 board in both AHCI and IDE hard disk modes.
1. Create an empty folder on your Windows hard drive - let's call it C:\XPINST.
(Note: you do not need to use the exact same filenames or paths mentioned in this tutorial, you can change these to anything you like as long as the menu entries match the file paths.)
2. Add your XP ISO file. If you do not have an XP Setup ISO file (XP install CD ISO), then make one from an XP install CD using an iso imaging tool such as Nero. MagicISO can also do this - follow the tutorial here. Alternatively, use WinImage - Disk - Use CD-ROM F:, then Disk - Create CD-ROM ISO image...
3. Download the file winvblock.ima.gz from the Beta Downloads - Tutorials section of this website. Place it in the C:\XPINST folder
4. Prepare a menu.lst file. If you already have one on your USB bootable drive that you use with grub4dos, then cut and paste the following entries into it. If you do not already have a menu.lst file, simply open Notepad and cut and paste this text into it. Save the file as C:\XPINST\Menu.lst.
5. (optional - will slow down the install) - if you need to save space on your USB drive, you can use 7Zip to compress the XP.ISO file to a .GZ file. If so you will need to reference the filename in menu.lst as XP.ISO.GZ instead of just XP.ISO - you will also need to add the --mem option to the iso map command in menu.lst STEP 1 - i.e. map --mem /XP.iso.gz (0xff). Once done, delete the .ISO file from the USB drive as you only need the compressed iso.gz file.
6. Download and add /PCIID.ima.gz for the List Mass Storage menu item, if you require this. The file is in the Beta Downloads page on this website.
7. Now it is time to make your USB drive. If you already have a bootable USB drive with a grubdos bootloader installed, just copy the contents of the C:\XPINST folder to the USB drive. If you want to wipe a USB drive, reformat it and make it bootable, then proceed as follows:
7.1. Download and install RMPrepUSB (v2.1.618 Beta or later is recommended)
7.2. Run RMPrepUSB and set the options as follows:
1 - MAX
2 - XP INST (or any volume name you like)
3 - WinPE v2
4 - FAT16 if under 2GB, or else FAT32 or NTFS - always tick the 2PTNS box
5 - Tick the Copy OS Files box and set the path to C:\XPINST (do not tick the BartPE -> USB box)
6 - Click on Prepare Drive
When the format has completed, click on Install grub4dos and choose MBR and then say OK to copy over the grldr file.
You should now have a bootable USB drive which has the four or five files listed at the beginning of this section.
If you want to test that it works, press F11 (run QEMU) in RMPrepUSB v2.1.618 or later and choose to create a new virtual hard disk of say 1000MB. Then you can emulate an install of XP from within Windows (it will not affect your current Windows system at all except to create a 1GiB file at RMPrepUSB\QEMU\harddisk.img ).
You will need to boot from the USB drive twice. In step 2, the XP ISO file must be loaded into ram which can take a minute or two.
5.6 At the 'Welcome to Setup' screen press ENTER to set up Windows XP and then press F8 to agree to the EULA. Press ESC as you don't want to repair the current installation. Select the partition you want to install XP to in the usual way.
IMPORTANT NOTE: If you did not select exactly the correct AHCI driver entry, then you will only see your USB drive listed by Windows Setup and no hard disk! If this happens you will have to reboot and choose STEP 1 again and press F6 and select a different AHCI driver (or use the Find PCIID menu to find out which SATA controller you have and then refer to the listing at the bottom of the page to find out it's name in the list).
6. You can delete and reformat the hard disk partitions here if you wish (make sure you don't format your USB drive by mistake though!). The copy files textmode phase should now begin:
At the end of this phase, the computer will reboot and you should again see the menu.lst menu choices (assuming you have set the BIOS boot order to boot to USB devices first).
Stop error 0x0000007B usually means XP cannot access the hard disk. This usually indicates that you have not loaded the correct Mass Storage Driver (hard disk driver or AHCI/RAID driver) for your system when you used F6 in STEP 1.
Stop error 0x00000077 KERNEL_STACK_INPAGE_ERROR - see http://support.microsoft.com/kb/228753 for more info. This usually occurs (annoyingly!) right at the very end of Step 2 and especially on Atom based netbooks and PCs. You should only see this error if you tried using the LOW RAM step 2 option. If the ISO file is loaded into RAM (using --mem) then this error can be avoided.
System reboots at very beginning of Step 2 (GUI mode setup) just after 'Setup is being restarted...' appears - this may indicate a problem with the Firadisk or WinVBlock driver files. Re-download and re-copy the files to your USB drive.
Files Needed pop-up - 'cmprops.dll' is needed when you click on the Browse button - this occurs typically when Windows resets the USB devices and the connection with the ISO file on the USB device is lost. If the ISO file is loaded into RAM (using --mem) then this error can be avoided.
Files Needed pop-up - the file 'asms' is needed - this usually occurs when Step 1 has been completed and then XP Setup boots from the hard disk instead of re-booting from your USB drive for the second time. Insert the USB drive and boot from it, then choose STEP 2 from the menu.
If this method does not work for you, then I recommend using WinSetupFromUSB. It takes rather longer to make the USB drive using WinSetupFromUSB but it should be simpler and give more reliable results than the method described above. WinSetupFromUSB prepares a new, modified ISO file rather than using your original ISO file.
To use WinSetupFromUSB, use the RMPrepUSB button to format your USB drive (if required).
Then select your USB destination drive.
Then select your XP CD (note: it is MUCH FASTER than using a real CD if you mount the XP ISO file as a virtual drive!).
Then press GO.
If you have an AHCI PCI ID (SATA) for an Intel chipset listed by the PCIID menu entry, you can look up the correct driver to select using the table below:
VENDOR=8086 DEVICE=27C1 "Intel(R) ICH7R/DH SATA AHCI Controller"
VENDOR=8086 DEVICE=2681 "Intel(R) ESB2 SATA AHCI Controller"
VENDOR=8086 DEVICE=27C5 "Intel(R) ICH7M/MDH SATA AHCI Controller"
VENDOR=8086 DEVICE=2821 "Intel(R) ICH8R/DH/DO SATA AHCI Controller"
VENDOR=8086 DEVICE=2829 "Intel(R) ICH8M-E/M SATA AHCI Controller"
VENDOR=8086 DEVICE=2922 "Intel(R) ICH9R/DO/DH SATA AHCI Controller"
VENDOR=8086 DEVICE=2929 "Intel(R) ICH9M-E/M SATA AHCI Controller"
VENDOR=8086 DEVICE=3A02 "Intel(R) ICH10D/DO SATA AHCI Controller"
VENDOR=8086 DEVICE=3A22 "Intel(R) ICH10R SATA AHCI Controller"
VENDOR=8086 DEVICE=3B29 "Intel(R) 5 Series 4 Port SATA AHCI Controller"
VENDOR=8086 DEVICE=3B2F "Intel(R) 5 Series 6 Port SATA AHCI Controller"
VENDOR=8086 DEVICE=3B22 "Intel(R) 5 Series/3400 Series SATA AHCI Controller"
VENDOR=8086 DEVICE=1C02 "Intel(R) Desktop/Workstation/Server Express Chipset SATA AHCI Controller"
VENDOR=8086 DEVICE=1C03 "Intel(R) Mobile Express Chipset SATA AHCI Controller"
VENDOR=8086 DEVICE=2682 "Intel(R) ESB2 SATA RAID Controller"
VENDOR=8086 DEVICE=27C3 "Intel(R) ICH7R/DH SATA RAID Controller"
VENDOR=8086 DEVICE=27C6 "Intel(R) ICH7MDH SATA RAID Controller"
VENDOR=8086 DEVICE=2822 "Intel(R) Desktop/Workstation/Server Express Chipset SATA RAID Controller"
VENDOR=8086 DEVICE=282A "Intel(R) Mobile Express Chipset SATA RAID Controller"
For PCI Ids not on this list, see here.
Here are some mainboard or notebook models and the AHCI driver description:
PCI IDs MODEL NAME Description for AHCI driver
8086 3B29 Acer Aspire 7741G Intel(R) 5 Series 4 Port SATA AHCI Controller
8086 27C1 Atom based netbooks Intel(R) ICH7R/DH SATA AHCI Controller
8086 1C02 Intel DQ67 (series 6 chipset) Intel(R) Desktop/Workstation/Server Express Chipset SATA AHCI Controller
Please send me more PCI IDs and driver names and PC/notebook models that you have successfully used and I will add to this list.
Also, if your system did not require a SATA driver, let me know too.
This section describes how to modify the WinVBlock driver floppy disk image and add the correct AHCI or mass storage driver for your hardware, so that it will contain the correct driver for your system. I will assume you have both 7Zip and WinImage already installed on your 'office' PC.
We need to combine the WinVBlock files in the floppy image file and the AHCI Driver files for your system and then edit the TXTSETUP.OEM file so that it has both the AHCI driver entries and the WinVBlock entries in a single TXTSETUP.OEM file. These instructions apply equally to the FiraDisk TXTSETUP,OEM file.
1. Download the correct F6 AHCI/RAID disk image/files for your system. This is normally a 1.44MB floppy disk image, or a group of files comprising txtsetup.oem and at least one .sys, .inf and .cat file. The system manufacturer normally provides these files.
For instance, if you have an Asus EeePC, go to http://support.asus.com/download/download.aspx?SLanguage=en-us and select you model of EeePC, then choose XP as the OS and download the AHCI driver from the SATA drivers section. This is just an example - the Atom AHCI drivers are already included in the WinVBlock.ima.gz disk image.
Place them in a new empty AHCI folder on your hard drive.
2. Extract the image file from the WinVBlock.ima.gz file as follows: double-click on the .gz file to open it in 7Zip and extract the 1.44MB IMA image file to a folder - then double-click the winvblock.ima file to open it in WinImage. Extract the WinVBlock_txtsetup_orig.txt file from this image to a folder on your hard drive.
3. Load the two files txtsetup.oem (from your downloaded file in step 1) and the WinVBlock_txtsetup_orig.txt file from the WinVBlock.ima image into a text editor so you can cut and paste from one to the other (or use the FiraDisk_txtsetup_orig,txt file instead if you want FiraDisk).
We now need to merge the text inside these two txtsetup.oem files. It is easiest to copy the few lines of the WinVBlock (or FiraDisk) text file into your new, larger AHCI txtsetup.oem file. Each section needs to be copied separately - see below for an cut-down example. Save the new file as TXTSETUP.OEM in your AHCI drivers folder (overwriting the original one).
4. The last step is to make a 1.44MB floppy disk image of the new contents. Double-click on the WinVBlock.ima file to open it in WInImage, now use the Image - Inject a Folder toolbar to add all the files from your prepared AHCI driver folder. Then use File - Save As and save it as an .IMA file. You can then use 7Zip to compress it to a .gz file and place it on your USB drive to replace the current one.
Tutorial #33 has some tips on using WinImage with floppy disk images.
---- WinVBlock TXTSETUP.OEM file ----
---- EXAMPLE AHCI DRIVER TXTSETUP.OEM FILE (yours may be much bigger!) -----
----- COMBINED RESULT -----
Here is the end result when we combine the two files by adding the WinVBlock entries to the larger AHCI txtsetup.oem file - note how the Default has been changed to be WINVBLOCK, so if F6 is not pressed, this is always loaded by default. The same procedure applies if using the FiraDisk txtsetup.oem file.
The changes made by adding WinVBlock are in red.
Examine the PCI IDs in the txtsetup.oem file (see end of this page) and compare this with the PCI IDs from your system. For instance, if the SATA PCI ID is listed as Vendor=8086 Device=1C02 by the List Mass storage PCI ID utility, look for this in the listing of txtsetup.oem at the end of this page. You will find it listed as: