How to install Windows XP from Ubuntu via USB
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):
https://superuser.com/questions/99478/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
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):
http://unetbootin.sourceforge.net/
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.
You can use UNetBootin, i think, but you need unetbootin-494 for it to work, because a newer version than that won't find drives formatted to NTFS. I installed my Windows 7 on that way and now I'm trying it with Windows XP.