30 - How to install XP onto a Hard Disk from an XP ISO on a bootable USB drive

unique hits tumblr visitor stats
If you want to make a USB Flash drive that can install Windows 7 32/64bit, XP Home and Pro, Vista 32/64bit and W2K8R2 see Tutorial #63 which combines this tutorial and Tutorial #43 into one!

Note: This method may not work work on some non-Intel chipset systems. The main advantage of this method however is that it is very quick to try out - just drop your ISO files on the USB drive and test it! If this method does not work then I would recommend trying WinSetupFromUSB instead (see Troubleshooting section below).

This tutorial explains how you can add an XP Install 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 or see Tutorial #63 which combines this tutorial and Tutorial #43 into one.

Tutorial #82 explains how you can use one XP ISO to start an automated, semi-automated or manual install onto any system, and automatically add the specific drivers and applications for that particular system all from one USB bootable drive. For instance, you could have a bootable USB hard disk which could be used to automatically install (with all drivers and applications) a netbook, a Dell PC, an Asus notebook and an HP PC all using the same XP ISO but all having different drivers and applications without using an image.

NEW!!!!! Click here for Easy2Boot V1
supports all Windows Install ISOs and all linux ISOs - just drag and drop!







This video moves quite fast, so use the pause button to see each step and all settings used!


Some points to note about this method of installing XP from an XP ISO file are:
  • You only need the unmodified ISO file of the XP install CD (which you can make if you have the CD and do not have an ISO file) - modified ISOs may or may not work because they might contain a modified i386\winnt.sif file - so try it and see...
  • You do not need to modify the XP ISO file to add mass storage drivers (F6 can be used to add Intel mass storage drivers manually)
  • You can only install XP onto a system that has 1GB or more of RAM as the ISO file is loaded into RAM
  • Supports modern Intel AHCI/SATA BIOSes. You can install a vanilla XP CD ISO onto any system - even if it has an AHCI-mode hard disk drive by using F6 to add extra mass storage drivers.
  • This method does not produce a fully automated install - you will need to press a few keys (similar to running setup from the XP CD)
  • It takes a total of approx 20 minutes from first boot from your USB flash drive to get to the fully installed Windows XP Desktop.
  • If you have a non-Intel or new AHCI or RAID controller, you may need to modify the WinVBlock/FiraDisk floppy disk image (instructions provided at the end of this article).

Introduction

This method uses WinVBlock and/or FiraDisk which are virtual disk drivers (RAM disks) which can be recognised by grub4dos and XP.
Both virtual disk drivers are similar and both 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 both FiraDisk and WinVBlock unless you can be bothered to experiment to see if only one is needed! However, if you get problems (e.g. BSOD) just try one of the FiraDisk or WInVBlock drivers.

On your USB Drive you will only need these 4 or 5 files after you follow this tutorial:

menu.lst - two menu items are needed in this file - add them to your existing file if you already have one
grldr - this is copied on when you install grub4dos using RMPrepUSB
winvblock.ima.gz - this file is a floppy disk image which contains txtsetup.oem and WinVBlock and FiraDisk driver + added Intel AHCI and RAID drivers for XP
XP.ISO - this is a copy of a standard XP SP2 or SP3 install CD-ROM
PCIID.ima.gz - optional floppy disk image which runs FreeDOS and lists the Mass Storage PCI IDs in your system

ALTERNATIVE DOWNLOAD: winvblockJmicron_C600.ima.gz.gz (see bottom of page - unzip it to get new winvblock.ima.gz file) - experimental F6 floppy disk which includes:
JMicron JMB363 PCI Express to SATA II x2 and PATA Host Controller - PCI\VEN_197B&DEV_2363
Intel C600/X79 series chipset 6-Port SATA AHCI Controller - 1D02 - PCI\VEN_8086&DEV_1D02
Only use if you have one of these two devices - otherwise use the standard download.

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 BIOS=AHCI HDD):

Atom + WinVBlock + AHCI = works
Atom + FiraDisk + WinVBlock + AHCI = works
Atom + Firadisk + AHCI= works
DQ67 + WinVBlock + AHCI= missing files cmprops.dll, iexplore_ex_
DQ67 + Firadisk + AHCI= works
DQ67 + WinVBlock + Firadisk + AHCI = works
DQ67 + FiraDisk + WinVBlock + AHCI = works

Aim

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 (no BIOS IDE/Compatible mode in the BIOS menu). No special nLited or modified XP CD/ISO is required.

This tutorial was tested by installing an Atom based netbook (HP mini 100e netbook - SATA AHCI mode) which did 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.

Method

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 unmodified XP SP3 ISO file to this new C:\XPINST folder (modified ISOs may not work). 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...

Name the file XP.ISO and place it in the C:\XPINST folder.

3. Download the file winvblock.ima.gz from the Beta Downloads - Tutorials section of this website. Place it in the C:\XPINST folder (do not unzip it).

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 (press F4 in RMPrepUSB) and cut and paste this text into menu.lst. Save the file as C:\XPINST\Menu.lst (WARNING: If using Notepad, make sure you use File - Save As (*.*) or else it may save the file as menu.lst.txt - we need it to be called menu.lst!) . Check that the file extension is .lst by setting Windows Explorer - Organize - Folder and Search Options - View - and untick 'Hide extensions for known file types' so that the file extension will be displayed.

menu.lst

#hd0 is USB
#hd1 is real HDD
# note: --mem is not needed to load XP.ISO in this step
title INSTALL XP - STEP 1 - XP Setup from ISO file using FiraDisk\nRemember to select both AHCI driver AND FiraDisk driver!!!
find --set-root --ignore-floppies --ignore-cd /winvblock.ima.gz
map --mem /winvblock.ima.gz (fd0)
map --mem /winvblock.ima.gz (fd1)
# if this loads the ISO into memory slowly - then you need to run WinContig on the ISO file on your USB drive to speed it up!
map /XP.iso (0xff) || map --mem /XP.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (0xff)
if not exist (0xff)/i386/setupldr.bin echo WARNING: The ISO is not an XP Install ISO!!! && pause
chainloader (0xff)/i386/setupldr.bin || chainloader (0xff)/I386/SETUPLDR.BIN || chainloader (0xff)
pause If you have an AHCI HDD you MUST press F6 when prompted, then hit S to select WinVBlock or FiraDisk (recommended) driver, then hit S again to select your AHCI driver (e.g. Atom Netbook=WinVBlock+ICH7R/DH, DQ67 series 6=FiraDisk+Desktop,Workstation,Server Express)
pause Now quickly hit [Enter] twice (and then F6 if you need to install an AHCI driver) ...


#hd0 is USB
#hd1 is real HDD
#boot.ini
# note: --mem is used first - if not enough memory then retry try without loading iso into ramdrive (but may get BSOD)
title INSTALL XP - STEP 2 - Install XP from ISO file (phase 2)\n2nd phase of setup will complete the install and reboot from the hard disk
find --set-root --ignore-floppies --ignore-cd /winvblock.ima.gz
# we must load the ISO into memory, so it will be slow to load here ...
map --mem /XP.iso (0xff) || map /XP.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0,0)
chainloader (hd0)+1
pause Press ENTER and then unplug this USB drive...

title INSTALL XP - STEP 1A (USE IF PREVIOUS STEP 1 GAVE BSOD 7B ERROR) - XP Setup from ISO file using FiraDisk\nRemember to select both AHCI driver AND FiraDisk driver!!!
find --set-root --ignore-floppies --ignore-cd /winvblock.ima.gz
map --mem /winvblock.ima.gz (fd0)
map --mem /winvblock.ima.gz (fd1)
map --mem /XP.iso (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (0xff)
chainloader (0xff)/i386/setupldr.bin || chainloader (0xff)/I386/SETUPLDR.BIN || chainloader (0xff)
pause If you have an AHCI HDD you MUST press F6 when prompted, then hit S to select WinVBlock or FiraDisk (recommended) driver, then hit S again to select your AHCI driver (e.g. Atom Netbook=WinVBlock+ICH7R/DH, DQ67 series 6=FiraDisk+Desktop,Workstation,Server Express)
pause Now quickly hit [Enter] twice (and then F6 if you need to install an AHCI driver) ...

title INSTALL XP - STEP 2A FOR LOW RAM SYSTEMS (FASTER) - direct ISO map\nDoes not work on some systems - e.g. some Atom CPU based netbooks
map --mem /winvblock.ima.gz (fd0)
map --mem /winvblock.ima.gz (fd1)
map /XP.iso (0xA0)
checkrange 0x80 read 0x8280 && map (hd0) (hd1)
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
map --hook
map --rd-size=2048
map --mem (rd)+4 (0x55)
map --rehook
write (0x55) #!GRUB4DOS\x00v=1\x00XP.iso\x00\xA0\x00
rootnoverify (hd0,0)
chainloader (hd0)+1
pause Keep the USB drive connected until Setup completes!


title Boot from 1st Hard Disk \nBoot from MBR of first hard disk
map (hd0) (hd1)
map (hd1) (hd0)