I'm currently running Windows XP, but have ordered Windows 7. I want to keep Windows XP on a separate partition, and install Ubuntu as well.

In which order should I install the OSs, and is there anything differing from an ordinary single-system install I should keep in mind? For example, does the order of partition make any difference? If I want to have the system drive as "C:" drive in both Win XP and Win 7, what should I do?

  • an observation, in reply to the above: my windows 7 thinks it's on F:. – justin Jun 25 '11 at 5:47

You should install Windows XP first. After that, install Windows 7; its bootloader will take care of XP as well. Also, Windows 7 considers whatever partition it's on as C:\ (at least that's what happened to me).

Lastly, install Ubuntu. Its bootloader will detect all the other 2 operation systems. Have fun!

| improve this answer | |
  • 1
    +1 I've deleted my identical answer as yours is slightly clearer – Tom Robinson Sep 15 '09 at 12:30
  • You could have kept it and improved it. Diversity is always welcomed :) – alex Sep 15 '09 at 12:30
  • 4
    Agreed. As a general rule I always install Windows first, from oldest (e.g. XP) to newest (e.g. 7) then finish off with the Linux distribution (e.g. Ubuntu). – Tom Robinson Sep 15 '09 at 12:32
  • If installing Ubuntu, does it really matter to install the Windows versions in a particular order ? I mean, if it's going to detect them separately anyway, there shouldn't be a problem with that, no ? – Gnoupi Sep 15 '09 at 12:46
  • @Gnoupi - Yes, but if you install the older Windows versions first, the newer ones will find them automatically. – MiffTheFox Sep 15 '09 at 12:48

You should always go from the oldest to the newest, additionally from the "Microsoft"iest to the more open ones.

Windows XP writes its own bootloader into the MBR, regardless of what is installed (With the exception of older Windows versions, like Win98)

Windows 7 will find XP and add it to it's own bootloader.

Ubuntu, in turn, will add the Windows bootloader to its own boot menu (grub), which will make selecting a windows version a bit more complicated (worst case: 4 keystrokes) but it is definitely easiest to install.

You should think about transferring data between the operating systems too, so maybe leave a partition (I would suggest 2-10GB, depending on your hard drive size) for data exchange and format it in FAT32.

A last suggestion: If you no not really need to install every operating system in its native partition, maybe you could use the free Sun VirtualBox to virtualize the operating systems which do not need full native access to the hardware. If you want to play games, I would suggest that the gaming OS should be the host system.

The bonus you get from this setup: snapshots and easy full system backups!

| improve this answer | |
  • About the data exchange partition: is it really needed - I thought Ubuntu can read and write NTFS partitions safely nowadays? – simon Sep 15 '09 at 14:09
  • It is not extremely necessary, but if you want to read files in Windows, which are stored on the Ubuntu drive, you need third party addons, which may break something... It really depends on how you want to use your setup. – brandstaetter Sep 16 '09 at 6:47
  • fs-driver.org can mount ext* partitions from windows. That way you don't need a purpose specific partition for moving things from one OS to another. It does make it easier to break your linux install, though. – Fake Name Feb 27 '10 at 9:17

Alex has suggested installing Windows in order from oldest to newest. This is probably the best suggestion now, but in the past I've done things the other way around as some Windows installers won't install in a separate partition if there is already a Windows installation detected. I don't think this is a problem anymore but in the old days the first readable partition was always C: and Windows always needed to be on C:. Thus you could install Windows NT on NTFS, Windows 9x on Fat32 and Dos/Windows3.11 on Fat16 in that order and each OS would think it was drive C: when it installed. The only drawback is getting a bootloader that recognizes the different OSes, but I had IBM's boot manager (from OS/2) which was very easy to configure. In your case now I'd setup the default bootloader to boot all the other OSes; if Windows shows up first I'd configure the boot.ini to have entries for the other Windowses and Linux, and if Grub shows up first I'd configure Grub to boot Linux and Windows.

| improve this answer | |
  • 1
    +1, good tip regarding the older OS's; as you say, not really necessary anymore, but from what i recall that's an accurate picture of the old boot-many-MS-OS's situation. – quack quixote Feb 25 '10 at 22:32

If the amount of drives is not an issue, as it is for me. would it be quite easy to fresh install each OS on a single drive (unplugging others during the install) and then choosing which drive to boot from the BIOS boot menu (if available) saves worrying about bootloaders as each OS would have it's own. Separate disc for common data, if you want to get rid of an OS just format the appropriate drive :) Just a thought I had for my multi OS system that I will be building next week.

| improve this answer | |

If you don't want Windows 7 to add Windows XP to it's own bootloader you can use a Ubuntu LiveCD in between the installations of XP and 7 to set the hidden-flag for the XP partition with gParted. Then go on and install Windows 7. Then install GRUB.

This is how

  1. Clean install of Windows XP on a new harddrive, leave enough space for other OS
  2. Windows XP Bootloader is installed now
  3. Start Ubuntu LiveCD and set hidden hidden-flag to /dev/sda1(supposedly WinXP partition) with gParted
  4. Next start: install Windows 7
  5. Now Windows 7 Bootloader is installed and knows nothing about WinXP
  6. Start Ubuntu LiveCD, unset the hidden-flag on all partitions and install Grub on /dev/sda3, writing it to the MBR with mount /dev/sda3 /mnt and sudo grub-install --root-directory=/mnt /dev/sda

Thats the main part of Grubs menu.lst:

  • title WindowsXP
  • hide (hd0,1)
  • unhide (hd0,0)
  • root(hd 0,0)
  • makeactive
  • savedefault
  • chainloader +1

  • title Windows7

  • hide (hd0,0)
  • unhide (hd0,1)
  • root (hd0,1)
  • makeactive
  • savedefault$

Here is a (unfortunately German) blog post. Maybe translating with google translate works :P http://repat.de/2013/08/grub-installieren-ohne-linux-mit-wechsel-der-startreihenfolge-unter-windows/

| improve this answer | |

Oldest windows first. partition your drive. stuff XP in first, 7 in second, and Linux third.

Use grub or grub2, or whatever installed by Linux to MBR to boot, consecutively, Windows XP and Win 7, and download Easy BCD to both OS's. When installing, uncheck "run the program now", that is at end of install, to keep from seriously messing up stuff before making sure you always have a way to re-install the bootloader installed by Linux in current configuration (OS on USB, recovery CD, whatever; trust me this is bad to forget on a CD-ROM-less netbook).

Keep a windows recovery method on hand, too, in case you mess up the BCD (which you will).

Boot XP, install a new BCD with Easy BCD containing entries for both your XP and 7 systems. Reboot into 7 and install a BCD to that partition containing only an entry for the 7 system. Reboot into XP and delete the BCD entry for Win 7. Reboot using your recovery method for whatever bootmanager Linux likes and re-install that bootmanager. voila; = a multi-boot system that runs entirely from grub/grub2 with no submenus or extra keypresses.

I have not seen anything to this effect on internet anywhere so far, after quite bits of searching, and since it took many hours to figure out, for those OCD's out there who want it to function cleanly (chainloading menus are ugly), wish to spare you the headache.

My Windows 7 sees the XP partition that thinks of itself as "C:" as "D:", so it should be possible to change drive letter of Win 7 partition from within win 7 to "C:" without breaking anything (if isn't already so).

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.