Creating a Windows XP installation flash drive in linux
The article Create A Bootable Windows 7 USB Drive From Linux (Tested On Ubuntu) describes the procedure. Below is a a summary of the steps :
- Install Gparted and format the USB drive to NTFS.
- Open UNetbootin, select "Diskimage" and then browse for your Windows 7 ISO file.
- Check "Show all Drives" box and select your USB drive, example "/dev/sdb1".
If the drive is "dev/sdb" then select "/dev/sdb1". - Click "OK" button and wait for the files to be copied to the USB drive.
OP asked how to make a USB windows XP intaller:
Unless you have a modified SETUPLDR.BIN, it won't work from USB directly.
Needed:
Modified SETUPLDR.BIN
special stuff in the bootsector of the partition (use ms-sys).
Modified copy of txtsetup.sif copied to the root level
NTDETECT.COM copied to root level
WinUSB does not do this, UNetBootin does not do this, the diskpart tutorial does not do this, WinToFlash does not do this, and bit-banging the iso onto the device with dd does not do this.
Rufus does this. However, it is a Windows-only utility (that is unsupported by Wine), so follow the tutorial here (the big post):
Make a bootable USB to install Windows XP from Linux
You could also try to use QEMU or VirtualBox where you actually make one of the VM's hard drives be your real target hard dirve, and simply have the hypervisor boot the iso like a CD (actual hardware emulation, not BIOS disk emulation that Grub4DOS does. Yes, a "real fake" as opposed to a "fake fake".). Just note that you will need to make a second hardware profile, because Windows configures itself to a specific hardware configuration during the first part of the installation, and the hardware platform conjured by the hypervisor is not the same as your real hardware platform. Not sure if this would work. I recommend imitating Rufus.
The method of loading the whole iso into memory and booting it usually results in a blue screen at some point. Firadisk stops that blue screen. If you really want to do that method, see this: http://diddy.boot-land.net/firadisk/files/win_iso_install.htm
Edit: Just tried Multisystem (a Linux app) for making a USB drive bootable into the XP installer. It does work, however, it uses the method of loading the whole iso into memory in conjunction with Firadisk, as the above link discusses.
Personally, I find Multisystem's specific solution to creating a USB XP installer undesirable. I had to install xterm and run an installation script that downloaded a bunch of stuff. The resultant USB drive of me only telling Multisystem to make it bootable from an XP installation iso included Grub2, Syslinux, Grub4DOS, a bootable Grub2 iso, Plop stuff, and a bunch of menu entries. You have to know to hit "Grub4DOS" under the first menu, the Grub2 menu, to get to the option to install XP. You'd think that if that's the only thing I want it bootable into, XP installation would be in the first menu (yes, I know, it's not possible with the Grub4DOS method, but how about a note in the menu?). Plus it has to load the whole iso into memory which takes both RAM and time. (What if system doesn't have enough RAM?)
And Multisystem insists on installing Grub2 every time you use it with a thumb drive (even if it's already installed) and even wanted to resize my thumb drive's partition. And puts a bunch of extra on there.
Note: must install Firadisk from the non-free tab for it to be able to make a USB XP installer. A howto I read said to also install Plop for creating a USB XP installer, but I don't see how this is needed.
Another Note: you must boot into the second phase of the XP installer with the Grub4DOS menu option to again load the iso into memory, which is still needed in the second phase. (As opposed to just booting into the target hard drive) That is, if you go for the RAM'ed iso + Firadisk method.
I recommend imitating what Rufus does. Just copy the files on and make a few tweaks.
Jake
Since you already have a windows .iso, you may be able to make use of a tool like UNetbootin to make a bootable usb drive from the cd image.