Unable to change mbr

#1
Have been running vista for a while now on a machine with a single physical HDD. vista installed on partition C:, some free space, and a data partition D:. Today installed fedora 11 into the free space on the drive. I want to use vista bootloader, not fedora's and so, during install, specified that grub should be written on the fedora boot partition, not mbr. The idea is to copy the linux boot sector to a file which is placed in the root of the vista boot partition. Then, add an entry for grub to bcd and I'm done... theoretically.

So I restart the box and see the grub bootloader. Both windows and linux start properly. So I try and start easybcd and get a message that mbr and/or bootsector needs fixing. I select ok, specify the c: drive and eventually get the message "the volume does not contain a recognized file system".

I boot into the vista install disc and start the repair console. Running bootrec /fixmbr works, but running bootsect /nt60 ALL /force does not, same error message "the volume does not contain a recognized file system". I reboot the machine, and still boot into grub. linux and vista both still start properly. This is kind of a strange situation; i thought that bootrec /fixmbr would have caused the machine to boot directly into vista, but its still coming up in grub. Since linux and vista boot properly, I'd prefer not to hose the system trying to get vista's bootloader to come up first rather than grub - any ideas what is going on?
 
#2
Hello mandrews, welcome to NST.
Its sounds like it would be better in your situation to leave Grub installed to the MBR, since both are already booting fine, and the old saying "if it ain't broken, don't fix it"...comes to mind. :wink: But if you feel a pressing necessity to have Vista controlling the boot, then boot from the vista install disk again, select "Repair My Computer", and then run Startup Repair 2-3 times (since it can only fix one thing per pass). That should remove Grub from the MBR, and replace it with Vista's boot code. I don't know why bootrec /fixmbr didn't work, but Grub can be stubborn sometimes, and difficult to remove. :smile:
The reason why bootsect /nt60 ALL /force did not work is because you can't put Vista's bootsector code that looks for bootmgr on partitions with filesystems other than NTFS, and so it didn't write to your Fedora partition, which has an ext3 filesystem (which is completely unrecognized by Windows).
 

Terry60

Knows where his towel is.
Staff member
#3
Hi M,
It sounds like you've got the Fedora partition set "active", so that's where the MBR is looking for the boot sector and finding grub.
EasyBCD looks for the BCD on the "active " partition which would explain why it says "unrecognized file system"
If you want bootmgr to control the boot, the correct sequence would have been
Install fedora to your new partition with grub (don't let it touch the MBR)
Don't copy anything from Fedora to Vista.
Don't touch the "active" flag
Boot Vista as before using the Vista bootmgr
Install EasyBCD 2.0
Add a linux entry to the BCD using Easy2, selecting the fedora partition from the dropdown menu and without ticking the "grub isn't installed..." box.
You'll then have a Vista bootmgr menu with Fedora as a second option.

You can also leave grub in charge of booting as Jake says.
There won't be a problem until you install a service pack or any WUD that affects the bootmgr or BCD. You'll find then that Vista breaks your boot. Microsoft is not good at acknowledging the possibility of any anything else being higher in the boot chain than itself.
 
Last edited:
#4
Just saw this thread, it was like deja vu!

Grub clearly has no problem booting non-active partitions, I wonder why the Vista BM needs to do that? Since only one partition can be active it must make it difficult if you want two separate bootable Vista partitions.
 

Terry60

Knows where his towel is.
Staff member
#5
It's not Vista that needs to be active to boot.
"active" just tells the MBR where to look for the boot manager.
That applies whether it's grub, NTLDR or bootmgr.
Unfortunately MS assumes that it's always going to be in charge, and ignores the possibility that some other boot manager might be chaining to it.
That gets its knickers in a twist when it updates making false assumptions instead of actually looking !
 
#6
Right you are Terry60, the linux partition is active. The thing is, during installation, I very carefully instructed anaconda to install grub on the /boot partition of fedora, ~not~ the mbr. Even so, it appears that grub replaced the microsoft IPL in the mbr. I was surprised; it shouldn't have touched the IPL and reboot should have used bootmgr into vista. I've done this before with earlier dual boot configurations (windows XP/ fedora 9) and in that case, i would copy the fedora bootsector in a file to the windows partition, edit boot.ini to run the file, which in turn ran grub.

I'm quite sure I followed the initial step you outlined:
If you want bootmgr to control the boot, the correct sequence would have been :
Install fedora to your new partition with grub (don't let it touch the MBR)
it's the "don't let it touch the MBR" part, because I thought thats what i did! I'm posting on some linux sites to see if this is an intentional change, or a bug.
Of course it could be pilot error, but i was very careful... they all say that though, eh?

Thx for the help
 

Terry60

Knows where his towel is.
Staff member
#7
Certainly Ubuntu leaves the MBR alone when you tell it to, but I've never installed Fedora, so can't say.
Chances are it didn't change the MBR though.
Did you alter the "active" flag ?
The MBR IPL will just look for the PBR in the active partition. If that's grub in your Linux, or bootmgr in your Vista, thats what will control the boot.
If you switch Vista back as active, you should see it boot directly, and you could add a Linux entry to the BCD as described before, or you can leave it so that grub controls things. Your choice.