I'm in a bit of a trouble after trying to apply Vista SP2 on a dual-boot (GRUB, Windows Vista 32 bits and Linux OpenSUSE 11.1 x64). Here is the history:
- SP2 would fail to install at the last stage (after rebooting), by searching I assumed it was due to the dual-boot because many other people reported the same error message in the same conditions.
- Waiting for the MS support, I tried a few things from the DVD "Repair your computer", console:
bootrec /fixmbr, no effect;bootrec /fixboot, gives an "Element not found" error;bootrec /rebuildbcd, gives an "Element not found" error;bootrec /scanos, finds the Windows Vista OS on C:, trying again the commands above without result.
- Microsoft support told to try a startup repair from the DVD: "Repair your computer", "Startup repair", which is supposed to re-install the Windows boot in the MBR. From that moment on, the HD would not boot.
- From the DVD repair / console, I tried the commands above once more:
bootrec /fixmbr, no effect;bootrec /fixboot, no error anymore, no effect;bootrec /rebuildbcd, no error anymore, no effect;bootrec /scanos, does not find any OS.
Then I tried from an OpenSUSE 11.1 installation disk,
- restoring the boot sector, adding a chainloader for Windows to the Linux entry that it had already found automatically;
- rebooting successfully gave me the GRUB menu, from which I could start Windows Vista (or Linux).
The troubling issue is that now, I have to do that everytime. If I switch the computer off, either from Windows Vista or OpenSUSE, the next time it cannot boot from the HD directly, I have to boot from the DVD, re-install GRUB, then restart. Then, when it hot-reboots, it successfully uses the restored boot loader.
It could be a HD failure, and the BIOS reading the cached MBR at hot-reboot, which would explain the symptoms. But I find it hard to believe grub-install would not check the MBR properly. Besides, it would be very suspicious that the MBR cluster would suddenly break down right when I used the Vista repair option (and would not be detected either).
Here is the list of the partitions, from TestDisk (fdisk agrees with this): Current partition structure:
1 * HPFS - NTFS 0 32 33 16709 117 48 268435456 [OS]
2 P HPFS - NTFS 16709 117 49 50128 33 17 536870912 [Projects]
3 E extended LBA 50129 0 1 60800 254 63 171445680
5 L Linux Swap 50129 1 1 50390 254 63 4208967
X extended 50391 0 1 53001 254 63 41945715
6 L Linux 50391 1 1 53001 254 63 41945652
X extended 53002 0 1 55612 254 63 41945715
7 L Linux 53002 1 1 55612 254 63 41945652
Vista uses 1 and 2, OpenSUSE 3 (with 5, 6 and 7 as extended partitions). Nothing out of the ordinary.
I didn't try Windows Drive:\boot\Bootsect.exe –NT60 All yet, because I have no idea what it would do. There might be other solutions too, but I would like to know if anyone out there already has suffered from the same problem and found a good solution? (Microsoft support seems not to have any clue and says to re-install everything, which I'm not even sure would work).
Edit: just seen that the GRUB boot loader would still work after a Windows session when restarting from shutdown /t 0 /r, so it appears the only boot that fails is a cold boot from the BIOS. It invalidates the cache theory for good.
Edit2:
Noticed that the grub-install was in fact disabled with OpenSUSE 11.1, it ignores the parameters and uses the standard configuration file. Trying a manual install gave some hint:
I get an "Error 17 : Cannot mount selected partition".
Which means GRUB can't identify the partition type, whereas I can mount it normally by specifying it's NTFS. fdisk -l also recognizes it:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x9913fa82
Device Boot Start End Blocks Id System
/dev/sda1 * 1 16710 134217728 7 HPFS/NTFS
/dev/sda2 16710 50129 268435456 7 HPFS/NTFS
/dev/sda3 * 50130 60801 85722840 f W95 Ext'd (LBA)
/dev/sda5 50130 50391 2104483+ 82 Linux swap / Solaris
/dev/sda6 50392 53002 20972826 83 Linux
/dev/sda7 53003 55613 20972826 83 Linux
My guess is that somehow the "repair" of Vista messed up information related to the first partition. Does that gives an idea to anyone?