One of the most features that EasyBCD brings to the table is full-blown support for Linux, BSD, Solaris, and more starting from version 1.5, putting it a league above the competition. Most importantly, EasyBCD offers several different ways to get these operating systems working with Vista, just in case one or more fail to work out the way you want them to.

Adding Linux to the Vista Bootloader

Chainloading is a dual-boot term that refers to one bootloader handing off the boot process to another. In this case, we configure the Vista bootloader to ask either Grub or Lilo (the most common Linux bootloaders) to complete the boot process for us – minimizing configuration requirements and ensuring maximum compatibility.

We have distro-specific guides for Fedora and Ubuntu available!

Vista before Linux

EasyBCD makes installing Linux after you have Windows Vista up-and-running a breeze. These steps assume you have Windows Vista properly installed and booting, and are looking to install Linux on a second hard drive or partition. These steps also assume that you are using the default Windows Vista bootloader, and don’t manually change the active partition around. If you had Linux installed before you installed Windows Vista, scroll down to the next section.

  1. Put the Linux CD in the drive, and start the installation normally.
  2. When prompted to set up the bootloader, make sure you specify to install LILO, GRUB, or whatever to the bootsector of the partition that Linux is being installed to and not the MBR of your hard drive.
  3. Finish the Linux installation, take the CD out of the drive, and reboot.

At this point, you’ll go straight back to Windows Vista. Don’t panic, everything is OK – you’ll be in Linux soon enough!

  1. Turn on EasyBCD, go to the “Add/Remove Entries” screen and pick Linux from the tabs at the top.
  2. Pick the appropriate bootloader from the drop-down menu (either GRUB or LILO),
  3. Give the entry a user-friendly name (and if you want to keep “NST Linux Loader” as the text, we won’t say no!)
  4. The hardest part of this mind-numbingly difficult exercise (/sarcasm) is choosing the correct hard drive and partition numbers that correspond to the partition you installed Linux (and most importantly, the bootloader) to.
    In EasyBCD (and Windows in general), drive numbers start at 0, and partitions start at 1. So the second partition of the first drive would be 0, 2.
  5. Press “Add Entry” and reboot.

When the Vista bootloader asks you what OS you’d like to boot into, select Linux to continue the first-run configuration for your brand-spanking-new Linux install.

It’s that simple!

Linux before Vista

These steps assume you had a fully working Linux install before you installed Windows Vista. It also assumes that you’ve been using either GRUB or LILO to boot Linux in the past. If you used some other bootloader, please consult the appropriate documentation on their respective website(s).

At this point, you have two options. The first option is more compatible & more reliable, but it can be a hassle depending on just how much Linux experience you have. The second uses the all-new NeoGrub bootloader in conjunction with the Vista BCD to get Linux running – but it only works on a limited subset of setups. Skip down to the NeoGrub section for more info.

Reinstall the Bootloader

We don’t want to install the Linux bootloader back onto the MBR, because that’ll just erase the Vista bootloader – leaving you with Linux and nothing else. So we install the bootloader onto a hidden sector called a “bootsector” and we tell Windows Vista where it’s installed – then Windows Vista launches (chainloads) this sector on the disk, starting the Linux bootloader up for us.

At this point, we need to install GRUB to the bootsector of our system. You have two ways to proceed: the first is to boot into Linux via a Live CD or a recovery disk. The second (easier) method is to use Super Grub Disk to reinstall GRUB.

Booting into Linux

Reinstalling GRUB in a correct requires that you run the GRUB program from within Linux. If you can boot into your Linux installation or you have a working Live CD, you may do so now. Once the desktop loads, open a console window (like a dos prompt in Windows).

Once the console is open, run the following command:

su -

You should now be in a GRUB shell – basically an OS within an OS. If you’re using Ubuntu or other distributions that work in a similar fashion, use this instead:

sudo bash

At this point, skip this next section and move on to “Installing GRUB

Booting into Super Grub Disk

If you don’t have a Live CD or you’re not comfortable with Linux – no problem.

Super Grub Disk” is a really nifty utility for recovering your GRUB bootloader from a bootable floppy, CD, DVD, or even USB Stick. NeoSmart Technologies has provided a mirror of Super Grub Disk for your convenience – it’s only 400kb. Extract the archive to your desktop, and burn the ISO to a blank CD with your favorite application. If you so choose, you can elect to install it to a floppy or USB stick instead by following these instructions.

Once you have SGD installed to a CD, reboot your PC and boot from the CD. Choose “English” from the Language selection screen, then once SGD has loaded, press a key to continue. At the SGD menu, press the letter ‘c’ to enter a GRUB prompt.

At this point, a GRUB shell will open, and you can proceed to the next step.

Installing GRUB

Now that you’re within the GRUB program (by means of a Live CD or SGD), continue with the following:

find /boot/grub/stage1

It’ll return a (hdx,y) value you can use to setup GRUB. (If it doesn’t, you may need to play around with the path to stage1 which changes from distro to distro, but most likely this is what you’re looking for.)

In Linux, both drive and partition numbers start from zero. For example, if you had Windows on the first partition of the first drive, and Linux on the second partition of the same drive, you would use hd(0,1) to refer to the second partition of the first drive. Read Drive Letters and Numbers for more info and a colorful history of this topic.

(hd0,0)   first primary partition on first hard disk
(hd0,1)   second primary partition
(hd0,2)   third primary partition
(hd0,3)   fourth primary partition (usually an extended partition)
(hd0,4)   first logical partition
(hd0,5)   second logical partition ...

Once you’ve got that value, type this in, substituting (hdx,y) for the output of the previous command.

root (hdx,y)
setup (hdx,y)
setup (hdx,y)

The setup line is repeated twice because often times the first GRUB setup command will error out, and the second will succeed – because of changes made by the first. No harm done running it twice. We’ve just installed GRUB to the bootsector of the partition. (If we wanted to install it to the MBR, we would have written hdx only – but we don’t want to do that!)

If you’re using a Live CD, restart your PC now. The shutdown -r 0 command will reboot your PC. Make sure you’ve removed the CD from the drive so that you can get back into Windows Vista.

Back in Windows Vista

At this point, you should be back in Windows Vista with either GRUB or LILO tucked away in a hidden sector somewhere on your drive. Fire up everyone’s favorite bootloader manager (why, EasyBCD, of course!) and go to the “Add\Remove Entries” screen.

  1. Choose “Linux\BSD” from the tabs on the top.
  2. Select either GRUB or LILO from the drop-down menu depending on what you configured earlier.
  3. Choose the correct drive and partition number for your Linux partition. This should be the same partition as the one we just finished configuring. Refer to the image above for an example.
  4. Enter the name you would like to give the Linux entry in the bootloader.
  5. Press “Add Entry” and reboot to test.

These steps can be a bit tricky, and making mistakes could lead to some unwanted trouble (but don’t worry, nothing that can’t be fixed without dataloss). If you’re hesitant about something, don’t risk it – just ask for help.

Method 2: Using NeoGrub to boot Linux

NeoGrub is NeoSmart Technologies’ implementation of the open-source GRUB bootloader (ported over to Windows by the Grub4Dos team) intended to allow Windows users to boot into Linux without having to resort to rescue discs, second bootloaders, or messy install routines for GRUB or LILO.

NeoGrub is the recommended solution for *nix-phobics – and for people that don’t have a rescue/live CD on hand. It’s a nifty way of getting Linux to boot quickly and efficiently without spending hours switiching CDs and rebooting your PC over and over again.

NeoGrub can be used to read existing menu.lst files from old dual-boot setups and allows for fine-grain control over dual-boot settings for experienced users.

External Links

These are links to external (non-NST) guides that revolve around dual-booting Windows Vista and Linux – with the help of EasyBCD. Please note that these articles were written with regards to EasyBCD 1.5x — EasyBCD 1.6 and newer has some new features that make certain steps used in these guys no longer necessary.