Please i want to know if in a dual-boot system, having installed grub and MBR on
different partitions,I would have the chance to select which bootloader should be the default at any point in time.
In other words,can i set grub to have a higher priority than MBR in such a system

Recommended Answers

All 5 Replies

MBR is an area at the very beginning of the hard drive. When you start the computer, the Bios (which is a little hardware program on the motherboard) looks for the hard drive (and other bootable devices) and if it finds a hard-drive, it starts running the code present in the MBR. That code is what is called a bootloader. It's a simple program that launches the operating system. Grub (or Grub2) is one such program. Windows uses its own bootloader as well.

When you install a Linux distro (that uses Grub), you have two choices. First, you can install Grub on the MBR, which overwrites the Windows bootloader. This will make booting to Linux the default but you can still boot to Windows via the last entries in the Grub menu. The second option is to install Grub somewhere else (usually the same partition as the "root" of the Linux distro), which leaves the Windows bootloader intact. At this point, you cannot boot into Linux because the Windows bootloader does not have an entry for that. To fix that issue, you use a program to add an entry to the Windows bootloader, either use BCDEdit or EasyBCD to do so, follow online instructions for that. Basically, after that is done, when your computer starts, the Windows bootloader will appear with the Linux option (in addition to Windows option), and if Linux is selected, it will jump into the Grub bootloader in your Linux partition, at which point, you can boot into Linux.

Personally, I recommend that second option. That is what I have always done and it works very well.

MBR can only boot Windows, and Grub can boot Linux, Windows and other OSes (like BSD).
So if grub is not default, you probably do not have acess to Linux.
That means you have to boot it through a live CD, or if you can't boot live CD you have to re-install Linux (which should set grub as default). So when you have the Linux booted go to terminal and type
$grub
$root (hd%num%,%partition%);
where num is the hard disk and patition is the partition number.
Then type
setup (hd%num%)
You have to have root when you do this.

Thanks.
but i was wondering if after installing grub somewhere else there is a way to skip/disable MBR so BIOS can load from grub directly.
I just don't like the interface MBR gives me.

Well, if you configure the windows bootloader to have only the Linux (grub) option (i.e., by removing the Windows option), then it should boot to grub pretty much directly (the Windows bootloader will not appear at all if there is only one option). Another thing you can do is set the time-out to 1 second for the Windows bootloader, with default option being Linux (grub), this way you will only set the Window bootloader for a very short period of time before it goes to Grub. Both of these can be done easily with EasyBCD (free version).

The last option is to reinstall grub on the MBR, overwriting the Windows bootloader. That's not difficult to do either through the LiveCD menus or from within your installed Linux distro (once you've booted to it). Within Linux, you just enter the command $ grub-install /dev/sda (or whatever device name identifies your hard drive). Here is a complete guide on using and tweaking grub.

One more thing, to clear the misunderstandings:
@ModernC++:

MBR can only boot Windows,

@capton:

I just don't like the interface MBR gives me.

MBR stands for Master Boot Record. This has nothing to do with Windows or any other operating system, it is nothing more than a reserved space at the beginning of any memory device (hard drive, USB stick, CD/DVD, etc.) where the BIOS will look to find code to boot the computer (i.e., the boot-loader). There are also VBRs, for Volume Boot Record, which is the same as MBRs but for individual partitions (a reserved space at the first physical address within a partition). Again, both have nothing to do with any particular OS. Also, when one says to "make a partition / hard-drive / CD / USB bootable", that means to install a bootloader (Grub or otherwise) on its MBR / VBR.

When Windows is installed on a computer, it will install the Windows Boot Manager, usually on the MBR (by default, especially when pre-installed on the computer). But the Windows Boot Manager can also be installed elsewhere (e.g., on the Volume Boot Record of its install partition). This is what you guys are calling the MBR, but it should be called either the Windows Boot Manager, or just "Windows bootloader". To edit the configuration of the Windows bootloader, you use a program like EasyBCD or the Windows system tool called bcdedit.exe.

there is a way to skip/disable MBR so BIOS can load from grub directly.

The BIOS will only skip MBRs that are empty (have no bootloader installed on them). I am not sure it is a good idea to remove the bootloader installed on your MBR, assuming that the BIOS will look further for a bootloader on one of the VBRs. I don't think that the BIOS can do that, I think VBRs are only accessible through a chainloading, which means, that a bootloader on the MBR loads up and looks for a bootloader on a VBR that it is configured to look at.

You can also configure the BIOS's boot order, which means which MBRs will be looked at first, and the first one that contains a bootloader is loaded. I used to do this with an old computer of mine, which is to set to BIOS to first look at external harddrives and boot from that first. Then, if I booted my computer while my external HDD was plugged in, it would boot directly into Linux (on that hard drive) and otherwise it would boot directly into Windows. So, that's also an alternative, but not a particularly convenient one.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.