Ubuntu – How to install Windows XP from Ubuntu via USB

installationusbwindows xp

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.

Best Answer

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