I know this documented everywhere, but I figured I'd put it out myself as well. Especially with all the Vi$ta installations going on now wiping out the nice multi-boot machines we have. First, make sure you have a live CD of some sort. I like to always carry a copy of the System Rescue CD. It's small and can be put on a thumbdrive if desired.
- Boot the Live CD of your choice. Get it to the point of having a root shell prompt (or be able to execute commands as root with sudo).
- Create a directory in mount that we will use to CHROOT into (basically running as if you booted from your machine instead of the live CD).
# cd /mnt
# mkdir linux
- Mount all of your essential partitions. You need to know which partitions are which for your setup (DO NOT JUST COPY MY EXAMPLE BELOW LINE FOR LINE). You need to have your root partition (sda5 below) and your boot partition (sda3 below) at a minimum. If you only have one single big partition, then you only have to mount one partition.
# mount /dev/sda5 /mnt/linux
# mount /dev/sda3 /mnt/linux/boot
# mount -t proc none /mnt/linux/proc
# mount -o bind /dev /mnt/linux/dev
# chroot /mnt/linux /bin/bash
- Now we just need to reinstall grub (the hd0,2 part needs to be your boot partition (or root if you don't have a separate boot partition). The numbers start at zero, so hd0,2 is sda3, hd0,0 would be sda1, etc.
# grub
grub> root (hd0,2)
grub> setup (hd0)
grub> quit
- Now we need to add Vi$ta as a boot option on the menu. Edit (with whatever editor you're comfortable with) the file /boot/grub/menu.lst and add the following to the very end of the file (change hd0,0 to the partition that contains Vista using the same rules as above for grub. In this case it's the first partition on the first hard drive):
title Windows Vista
root (hd0,0)
savedefault
makeactive
chainloader +1
- Umount all the partitions and reboot
# exit
# umount /mnt/linux/proc
# umount /mnt/linux/dev
# umount /mnt/linux/boot
# umount /mnt/linux
# reboot