Rufus is a very clever Windows utility that will make a bootable USB drive from a bootable ISO file. It is open source and supports EFI booting as well as the normal MBR booting.

It can be used to make an XP install USB drive from an XP ISO.

Note: An unmodified Microsoft XP Install ISO will only install to a system containing IDE hard disks because it does not contain any SATA or SCSI drivers.

The only downside to Rufus is that it does not create a multiboot USB drive – it is not designed to do this – it is intended to create a bootable USB drive from a bootable ISO and it does this well.

If you use Rufus to make an NTFS USB XP install drive – you will find that you can install XP onto a system’s internal hard drive in two stages:

1. Boot from the USB drive and start the textmode setup phase

2. Allow XP Setup to reboot from the internal hard drive (but keep the USB drive connected at all times) and it will begin the GUI mode setup phase automatcially.

Always test the USB drive that is made by Rufus on a real system – it may not work on a virtual machine (e.g. ‘EULA not found’ or may crash!).

The NTFS XP install USB drive that Rufus makes has a bespoke Master Boot Record (MBR) which prompts the user to press a key to boot from the USB drive and then swaps over hd0 with hd1 so that XP is installed to the internal hard disk.

The ‘boot chain’ for Rufus is like this:

Special Rufus MBR – swap over hd0 with hd1 – PBR – BOOTMGR (actually setupldr.bin)


Note: If you have an Easy2Boot multiboot USB drive, you can install directly from a Microsoft XP ISO file and E2B will try to add the correct Mass Storage Driver automatically. This means you can install to systems that contain SATA or SCSI hard disks without needing a modified XP ISO.

You can use the MPI ToolKit to make an image partition (.imgPTN) file directly from a working Rufus USB drive and add the grub4dos menu shown in Step 3.

Instead of Rufus, you might also like to make a USB drive using WinSetupFromUSB (which also can install to SCSI\SATA systems) and then make a partition image from that USB drive to add to E2B as a .imgPTN file.

Once you have made a Rufus XP install USB drive, you can copy over the XP install files to your grub4dos multiboot USB drive as follows:

1. Copy the entire \i386 folder to \i386 on your multiboot drive

2. Copy the following files to the root of your multiboot drive:

\BOOTMGR – but rename as rufus.ntldr (to avoid overwriting any bootmgr file you might already have!) Can be moved to i386 folder and change menu.lst

\txtsetup.sif – can be moved to the \i386 folder

\ntdetect.com – must be in the root or will just reboot!

\WIN51abcdefgall files that start with WIN51 – e.g. if you have XP Pro SP3 for example, you will need WIN51IP (required for 2nd stage to find source files)

3. Use the following menu entry in your menu.lst file:

  • title Rufus XP Install from i386 folder\nKeep the USB drive connected even after reboot
  • map (hd0) (hd1)
  • map (hd1) (hd0)
  • map –hook
  • root (hd1,0)
  • chainloader (hd1,0)/rufus.ntldr

Test the grub4dos USB multiboot drive on a real system (not a virtual machine (unmountable boot volume) or QEMU (can’t find EULA)). After the first copyfiles stage has completed, allow the system to reboot from the internal hard disk (but keep the multiboot USB drive connected).

If you need to load a mass storage txtsetup.oem (F6) floppy disk image (so that you can press F6 during Setup and install an AHCI driver or RAID driver for instance) then add the floppy image using the menu below:

  • title Rufus XP Install from i386 folder\nKeep the USB drive connected even after reboot
  • map (hd0) (hd1)
  • map (hd1) (hd0)
  • map –mem /winvblock.ima.gz (fd0)
  • map –mem /winvblock.ima.gz (fd1)
  • map –hook
  • root (hd1,0)
  • chainloader (hd1,0)/rufus.ntldr

For XP 32-bit Intel AHCI drivers, you can use the winvblock.ima.gz file from the Beta Downloads page.

If you wish you can move the rufus.ntldr file to the i386 folder on your USB drive and change the last line in the menu accordingly.

You can also move the txtsetup.sif file to the \i386 folder and overwrite the old one that is already there.