Note: this is only for Vista, not for 2000/XP
There are of course other bootloader problems; this is simply one of the common ones.
Situation: Vista is installed first on OEM computers. You install openSUSE and Vista won’t boot from the Grub bootloader.
Problem: Yast automatically configures Grub for us in a fashion that used to work with Win 98, 2000 and XP. It puts an entry like this in the Grub configuration file menu.lst located at /boot/grub/menu.lst:
title windows
rootnoverify (hd0,8)
chainloader (hd0,0)+1
The “root” is set to the root partition of the openSUSE installation, in this example partition sda9 [in Grub speak that’s (hd0,8)]. That works for earlier versions of Windows but it doesn’t work so good for Vista.
Solution: You have to edit the file menu.lst with this command in a console for KDE:
kdesu kwrite /boot/grub/menu.lst
or if you have Gnome use this:
gnomesu gedit /boot/grub/menu.lst
and change the windows entry from like this:
title windows
rootnoverify (hd0,8)
chainloader (hd0,0)+1
to like this:
title windows
rootnoverify (hd0,0)
chainloader (hd0,0)+1
Variation for some notebooks: Compaq and some other notebooks don’t preinstall Vista on the first partition [which is designated (hd0,0)]. They have a utility partition as the first partition and Vista on the second. For those cases the correct entry in Grub looks like this, reflecting sda2/(hd0,1):
title windows
rootnoverify (hd0,1)
chainloader (hd0,1)+1
Further problems: This is just one of the quirks that you can get when multibooting Windows and Suse. There’s a fuller rundown on fixing those problems here: GRUB Boot Multiboot openSUSE Windows (2000, XP, Vista) using the Grub bootloader.
Happy Vista-ing with openSUSE