You are correct. Note the partition table - sda1 is type “de” which is “Dell PowerEdge Server utilities (FAT fs)”, i.e., a Dell specific FAT partition. This partition is marked active. When Vista was installed it placed bootmgr.exe in the root of that partition along with the \boot directory in which, among other files, is the bcd registry. The Vista IPL called this partition’s boot sector which in turn executed bootmgr.
For grub to chainload to Vista, it must be able to call this boot sector. There should be a jump instruction in the first 2 bytes of the sector; this is what is chainloaded to. But again, if the Vista IPL could call this then ordinarily grub would be able to as well.
I suspect that the grub syntax tried above will not work. The “chainloader +1” will back-reference the preceding root statement, so if the root statement is for a different partition then the chainloader statement must be fully-qualified. So I would try a rootnoverify statement using a known valid partition plus a fully-qualified chainloader statement, thus:
rootnoverify (hd0,7)
chainloader (hd0,0)+1
or
rootnoverify (hd0,5)
chainloader (hd0,0)+1
One would think that the second stanza in post #10 above would work, but we have seen instances where that is not the case. Grub does have a quirk where it sometimes wants a root statement it can understand (even though it won’t use it for the chainload). So one of the above may work.
The grub error message suggests that it is the boot sector chainload that is not working, rather than a failure of the code in that sector. It may be that you can verify the bootmgr is in sda1 with grub, if that Dell FAT partition file system is readable. You can try:
grub
find /bootmgr
quit
Grub should return (hd0,0). To check whether the other needed files are there, try mounting that partition:
mkdir /mnt/sda1
mount -t vfat /dev/sda1 /mnt/sda1
cd /mnt/sda1
ls
You can also check the contents of the boot sector, at least to verify that Vista is still there:
dd if=/dev/sda1 of=pbrsda1 bs=512 count=1
xxd pbrsda1
You should clearly see text saying stuff like “BOOTMGR is missing. BOOTMGR is compressed” - that tells you the sector is still installed.
If still no joy, you have two choices I can see. The first is to create a 4th primary partition (you only have 3 now) and re-install Vista using it as Vista’s “system volume” (the volume where bootmgr and bcd live); you could still use sda8 for the Vista OS. Given your current layout, that would be complicated if not risky to do.
The other choice would be to use Vista to manage the boot instead of grub. There is a tool called EasyBCD which is excellent for this purpose. If everything is still in sda1 as Vista needs it, all that probably is required is to put a generic IPL in the MBR. YaST should be able to do that for you, but if it won’t, this will:
dd if=/usr/lib/master-boot-code of=/dev/sda bs=440 count=1
Otherwise you’ll have to use the Vista RE (Recovery Environment) to restore the Vista IPL. (Ordinarily a generic IPL will boot Vista, but there are some features of Vista which use byte 440-446, i.e., sometimes the Vista IPL is required.)
Hope that helps.