I need to install Windows XP on my machine that currently runs Ubuntu 10.10. I have a slipstreamed ISO for XP and only a USB to boot from. I do not have access to another Windows machine, and my Windows virtual machine does not recognise my USB drive. The solution needs to be purely linux-based.
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):
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.
You can sure use UNetbootin. Although there are a few important things to be aware of, or else it won't work:
First, be sure to format you usb key to NTFS and flag it as bootable -- you can use gparted to do that (
sudo apt-get install gparted).
Then run UNetbootin with your usb key already mounted. On its interface, select "Diskimage" and then browse for your .ISO file.
Check the "Show all drives" box (so it can find your NTFS formatted usb key) and select the right drive (be careful!) -- on my case, it was "/dev/sdd1".
Click "Ok" and wait. It takes a long time to finish copying all the files. So wait.
This utility will run in Linux (presumably it works with Ubuntu):
It says you can just give it an ISO file and it will make the USB stick a bootable copy of that ISO. Then boot off the USB device from the BIOS.
This might work for bare metal> http://ansi.interblc.com/2010/02/06/howto-boot-iso-images-via-grub2-with-ubuntu/. of course it could also just make the installer puke...haven't tried it.
Another option might be booting bartpe from usb and staging the installation files in an i386 folder like you were doing an oem install and copying the boot sector from the iso to the HD. this can get really hairy, but I got it to work once.