Dual boot Ubuntu 7.04 with XP (Ubuntu 7.04 already installed)
Install Windows XP
Once the CD has loaded, press Enter to install Windows XP, then F8 to accept the license agreement. When the partition screen loads, you can see that Windows Setup can see the two existing Ubuntu partitions and has interestingly assigned them drive letters (even though it can't read them.)
It could be a problem for older apps which don’t look to the Windows settings and make assumptions about where they can install themselves (for example, apps that are hard coded to install to Drive C).
Reboot the system once Windows is installed and you’ll see that it boots straight into XP. Ubuntu’s GRUB bootloader in the MBR (Master Boot Record) has been overwritten, so Ubuntu isn’t bootable at this point in time.
There are ways to make the Ubuntu partition bootable while still using XP’s bootloader in the MBR. However this is fiddly and involves using FAT32 partitions, as FAT32 is readable by both XP and Ubuntu. Wherever possible I avoid using FAT32 – it’s nowhere near as optimised as NTFS, and you lose out on all the enhanced security and permissions features.
Reinstating GRUB as the system bootloader is a much better alternative – it handles pretty much any operating system you care to throw at it, and it’s very easy to administer.
Reinstall GRUB to the MBR
The next step is to reinstate GRUB as the system bootloader. Boot the system using the Ubuntu Live CD.
Go into the GNOME Partition Editor and you can see that the Windows XP Partition is detected as /dev/hda2 and has been marked as the boot partition.It can actually stay as the boot partition, but as we’re going to reinstall GRUB it makes sense to change this – it doesn’t adversely effect XP.
Untick “boot” and select Close.
Then right-click the primary Ubuntu partition (/dev/hda1), select Manage Flags and tick “boot”, then Close. Done.
GParted - Manage FlagsGParted - Manage Flags
GParted - Mark BootableGParted - Mark Bootable
Now to reinstall GRUB. Open up Terminal (Applications, Accessories, Terminal) and type in:
This will launch the GRUB application. Now type in:
find /boot/grub/stage1
GRUB - find grub
This will search for where GRUB has been installed, and you should get the result hd(0,0).
root (hd0,0)
Now we’re going to reinstall GRUB to the MBR rather than the Ubuntu partition.
If we were going to use the Windows XP bootloader then we’d reinstall GRUB to hd(0,0), but as we’re not, type in:
setup (hd0)
GRUB - reinstall grub to MBR
This restores GRUB to the MBR. Type in QUIT and then EXIT to get out of GRUB and Terminal respectively, then reboot the system. Ubuntu will load by default.
Modify the Boot Menu
What we need to do now is modify the GRUB boot menu to allow Windows XP to load. Boot the system into Ubuntu and go to Terminal. Type in:
sudo gedit /boot/grub/menu.lst
GRUB - MENU.LST
This loads the GRUB menu file (which is basically a text file) within GEdit.
Navigate down to the section which after “## ## End Default Options ##".
These are the individual menu items in the GRUB menu.
Ubuntu & XP - GRUB MenuUbuntu & XP - GRUB Menu
To create a new entry, navigate down to the end of the list (although it can go anywhere really) and enter the following lines:
title Windows XP
root (hd0,1)
makeactivechainloader +1
GRUB - Windows XP boot option
This places an item in the boot menu to launch Windows XP from its own partition (hd0,1).
If you like, scroll up to the top of MENU.LST and find the line called TIMEOUT.
The numerical value assigned to TIMEOUT dictates how long you’ve got to go into the boot menu (in seconds) before the default boot item loads.
When configuring a dual-/multi-boot system I find it better to increase this value.
GRUB - timeout
Just above TIMEOUT is DEFAULT. This specifies which boot entry is the default.
The numbering system starts at 0 and counts upwards, so the DEFAULT = 0 means that Ubuntu is always the default entry.
If you want Windows XP to be the default, replace the value.
GRUB - default
Save MENU.LST and exit from GEdit, then restart the system.
Hit ESC when prompted to bring up the boot menu, and there’s the newly-created Windows XP entry.
Navigate to this boot item and hit Enter – Windows XP will load.
Uninstalling Windows XP
If you decide after a while that this dualbooting situation is no good and you wish to scrap Windows XP, it’s actually very easy.
Go through the process outlined above to modify the MENU.LST and remove the Windows boot entry.
Then boot off the Ubuntu Live CD and go into GNOME Partition Editor. Right-click the Windows partition (/dev/hda2) and select Delete.
GParted - Delete Partition
Then right-click the main Ubuntu partition (/dev/hda1) and select Resize/Move.
Drag the edge of the partition to reclaim the space you’ve just freed up by deleting the Windows XP partition and click Resize.
There will now be two actions waiting in the Operations window. Hit Apply and these changes are made.
GParted - Remove Windows XP
This take your system right back to the start before Windows was installed, and is actually quite a graceful exit from the dualboot scenario.