K.Mandla's blog of Linux experiences

Howto: Build a better dual boot

Since I scrambled an entire installation by not paying closer attention to how rescue mode works in Ubuntu, I should really make a note of it here, so I don’t make a similar mistake in the future … if the opportunity presents itself. Of course, that episode was sufficiently traumatizing to scorch it into my brain, so I probably won’t be making that mistake again any time soon. Still …

This “howto,” if I may call it that, works with Windows XP and Ubuntu 8.04, and adds GAG 4.9 to the pair for a really cute, quite newbie-friendly dual boot system. Why bother doing this? I mean, why not just keep the default Grub setup, and let that handle the boot process?

Well, mostly because the GAG boot screen is infinitely more attractive and intuitive than the Grub boot screen. With GAG, you can set up two options to boot into both systems, you get a graphic timer, you get a nifty logo for prettification’s sake, and it’s adjustable without massive editing from a terminal or root-user permissions or updating Grub as an extra step.

Furthermore, the Grub menu is nothing less than annoying on something like a long-term release, where you can expect new kernels to be added over the course of years, meaning that the already ugly Grub menu is going to be further uglified by the addition of more kernel options and more kernel options and more kernel options.

It’s true, you can remove those lines by removing the alternative kernels from the system. It’s not difficult. But let me illustrate the simplicity of this minor improvement, with a true-to-life case study. Two years ago I built a dual-boot system on an Inspiron 600m for my parents, using Windows XP and Ubuntu 6.06. I didn’t know about GAG back then, and if I had, I would have saved myself endless bellyaching from the pro-Windows contingent that the Windows option kept getting bumped down the list every time Ubuntu updated the kernel. If I had known about it, it would have been a simple matter to avoid all that noise, once and for all.

Enough rationale, though. Here’s how it’s done.

First, install XP as you normally would, but leave the drive partially unpartitioned. Divide the drive however you like, but for illustration’s sake I’m going to say it’s split half and half. I made a point of updating XP to the logical end (which was four or five reboots, really) before getting ready for the Ubuntu side of the house.

Hardy’s installer can build a default partition array in the remaining space, and it will assign the root partition to /dev/sda5 — and that’s the most important thing to remember. When you get to the option to install Grub to the MBR … don’t. Stop there and tell Ubuntu to put it on /dev/sda5, and finish the installation.

This is kind of an oddball way to do business, since it effectively makes your new system unbootable. If you restart the machine at this point, Windows still has control of the MBR, and will only boot into Redmondland. The Linux system is still accessible, but you’d have to boot into a live CD and pass control to the /dev/sda5 partition in order to get to it (use an Arch CD to do that, if you have to). Be aware of that, in the case that you have a strange system that is difficult to get on its feet on the first boot.

Instead of restarting your computer normally, drop in the GAG 4.9 CD (or floppy, I suppose) and boot to that. GAG setup is fairly intuitive — it’s a simple menu-driven affair that lists all the alternative choices at once, usually with single keypresses as your only options. Omigosh, it’s almost idiot-proof! 😯

Build up GAG’s start menu, making sure you give Linux a nifty little Tux icon and XP a pretty little Windows icon, and arrange them in the order you want. Point the Linux option at the Linux partition, and the Windows one at the other. Set up a boot timer or password option, if you must have those (I add a 10-second timer that jumps to Ubuntu, just because).

After that, press H to write GAG to the MBR.

At this point, Windows will behave normally, but Ubuntu still needs a little tweaking. GAG will pass control to Grub, which still thinks it’s in charge and at large, and will show its own boot menu, with a 30-second timeout as an additional annoyance.

We can change that by booting into Ubuntu and opening a terminal. Edit the /boot/grub/menu.lst file to hide the menu, and to change the timeout to 2 seconds. When you’re done, run update-grub and you’re finished.

So what happens now when you boot the machine? You get your normal system start to BIOS, followed by the cute XP-plus-Tux graphical login. Starting Windows is normal, but starting Ubuntu jumps straight at Grub. But now Grub is just a two-second blip before it passes control to the initial kernel setup and the splash display, which means all you’ll see is the emergency-escape message before it gets to work.

And from there, it’s delicious cake. Do your updates, set up your system, etc. You’re pretty much done.

Future system changes are done through the GAG setup option, which is visible at every boot. Grub updates at kernel changes will still add kernel lines to the menu, but you’ll never see them since the menu is hidden and Grub only appears for two seconds. And as an emergency measure, you can still jump back into Windows by selecting it from the Grub display.

All in all this is a much more newbie-friendly way to set up a dual boot system. The people I’ve shown it to thought it quite appealing (the word “cute” was bandied about quite frequently), and it’s much more comfortable than the Grub menu. Do it right the first time though: On that, I speak from experience. 🙄 😀

Yes and no … I think. GAG just points to the bootloader for the distro, it doesn’t actually start the loading process (as far as I can tell). The few times I tried to install it to take the place of Grub, I was left with an unbootable system.