This may not work for all systems but it will only take 30-60 minutes to make and test!
New eBook on grub4dos is now available. Over 170 pages.
This method is adapted from a post by linuxbyexamples on reboot.pro here. There are also more detailed instructions here.
It makes a fixed size VHD file (min approx 2GB for a full XP OS with no updates or drivers added).
This method in outline is:
- 1. Prepare a fixed size vhd containing Windows XP using Oracle Virtual Box
- 2. Tweak it and add any extra drivers/apps you like
- 3. Copy the .vhd file to an Easy2Boot USB Multiboot drive
- 4. Boot to full XP!
As this uses a .vhd file, you can easily back it up and restore it at any point in the future.
The procedure below worked when the USB drive was booted from an Asus EeePC Atom-based CPU netbook (IDE hard disk) but did not work (blank screen – if safe mode then hangs on mup.sys) when booted from an Acer Aspire 7741G i3 laptop (in either IDE or AHCI mode).
Below is a brief outline – follow the detailed instructions here if you need more help.
PREPARE A FULL WINDOWS XP VHD FILE
1. Install VirtualBox (http://www.virtualbox.org).
2. Create new XP 32-bit IDE-disk based virtual machine using vhd format for the IDE virtual hard disk, vhd=fixed-size.
Notice the vhd hard disk size need to be smaller than the usb drive size (2GB minimum for example is just enough for full winxp with no updates, etc.).
Now use the Settings gearwheel icon to change the CD-ROM contents to your Windows XP Install ISO file (if you have a ISO which has nLited Mass Storage Drivers added, then use that as it may then boot on a wider range of systems. You can instead use DavidB’s Virtual Machine USB Boot utility to boot to an Easy2Boot USB drive and install XP in that way.
3. Fully install XP to the virtual machine vhd hard disk by allowing the VM to boot from the CD ISO file. Format the vhd as NTFS.
Note: if you intend to fully update it and add more software then you will need a larger vhd file, e.g. 10GB!
4. Disable the page-file.
System Properties – Performance Settings – Advanced – Virtual Memory Change – No paging file
and delete the C:\pagefile.sys file.
5. Using Device Manager, Update the IDE/ATAPI controllers to use Standard driver.
Intel (R) 82371AB\EB PCI => Standard Dual Channel PCI IDE Controller
6. Using Device Manager, update the System Devices to use Standard driver.
Intel (R) 82371AB\EB PCI Bus Master => PCI Bus
Intel 82441FX Pentium(r) Pro Processor to PCI Bridge => PCI standard host CPU bridge
7. Install the winVblock driver using the Windows Control Panel – Add New Hardware Wizard. Check that there are now two devices in the SCSI and RAID controllers section of Device Manager (I got one unknown device+WinVBlock Driver). Files are in IMG_XP\WinVBlock_Install (see below).
Alternatively (or as well as) – Install the FiraDisk driver with Right-mouse click on firadisk.inf in IMG_XP\makebt\firadisk-driver-0.0.1.30 folder
8. Close the VM.
This is done on the host computer:
1. Go to this page (or see this post) and download latest Img_XP (IMG_XP_85.exe). This is an .exe file which once you run it, will create a new IMG_XP folder.
2. Then go to the extracted IMG_XP folder and run imdiskinst.exe. This will install ImDisk onto your host computer (if Windows 10 host, you may need to install the latest version of ImDisk).
3. Then run USB_XP_FIX.EXE and select the XP vhd file and hit GO.
4. (optional) Boot from the vhd in VirtualBox again and defragment the Windows drive (c:) (and make any other changes you require.)
5. Now some final tweaks (running XP booted from the VHD file under VBox)…
- Delete the C:\pagefile.sys file (if present)
- Run C:\POST_FIX\intelppm_start3.reg so that it will boot on Intel and AMD systems
- Run the C:\POST_FIX\PURGE_DLLCACHE.BAT file to remove 350MB of uneeded files.
- Reduce size and improve settings as usual and install missing Drivers but NOT a specific Video driver. For Universal XP don’t Install the Video driver. You can still have high resolution on any hardware.
- Set Screen Resolution to 1024 x 768 useful on all monitors (right click on Desktop) (or 800×600 if you will boot on netbooks)
- Using a plain Desktop instead of the Bliss bitmap will improve the time it takes to reach the Desktop.
- (optional) To save space you can compress the the folders (right-click – Properties – advanced – Compress contents to save space). However, do not compress the files in the C:\ folder (ntldr, boot.ini, ntdetect.com)
5. Reboot using the VirtualBox VM and check it is booting OK and that no c:\pagefile.sys exists (paging is off)
MAKE A BOOTABLE USB DRIVE
1. Prepare an Easy2Boot USB Flash drive or hard disk (FAT32 or NTFS for vhd’s over 4GB). Ensure that you have a recent grub4dos (grldr) file – e.g. July 2013 or later.
2. Copy the VHD file to the \_ISO\MAINMENU folder on the Easy2Boot USB drive – rename the file extension to .vhdboot for later versions of E2B.
3. Run WinContig on the USB drive to ensure the VHD file is contiguous (RMPrepUSB – Ctrl+F2 or \MAKE_THIS_DRIVE_CONTIGUOUS.cmd)
4. Now boot from the Easy2Boot USB drive and choose the XP.vhdboot menu entry.
Still having problems? See here. This also describes how you can add driver packs to the VHD so that you can install the correct drivers for any system that you boot the VHD on.
Symptom – On a real system, you see the XP loader bar load until it becomes a solid white bar at the bottom of the screen – then it seems to stop (no LED activity) – repartition the USB drive but reduce the partition size of the USB drive by only a few MB – i.e. do not use MAXIMUM size.
Some USB drives report their maximum size incorrectly and this can cause the XP loader code to almost freeze due to multiple sector access errors from the BIOS. You may not see this if using a VM but only on some real systems.
Alternatively, use version 2.1.710 of RMPrepUSB or later to format the USB drive as MAX size (use ‘Boot as HDD (2PTNS)’ option too).