Can BIOS Limitation Prevent Grub from booting Windows if no boot flag set?
Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then this is the place.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Can BIOS Limitation Prevent Grub from booting Windows if no boot flag set?
I know from experience that I can boot Windows with Grub on my machine even if its partition doesn't have its boot flag set, and this is also the experience of most of my friends. But I have one friend who claims he must have the boot flag set on his Windows partition or he can't boot it with Grub. He claims it is a limitation of his BIOS; I don't understand the logic behind that, because I thought that once BIOS hands the boot process over to the master boot record (MBR), then BIOS doesn't care whether any partition has its boot flag set, only the MBR might. For non-configurable boot loaders like the Win XP MBR, the Win MBR relies on one of the partitions having the boot flag set, because that is how the Win XP MBR decides which partition to boot. But in my experience, that is not the case with Grub, as Grub is happy to boot a partition regardless of whether it is the active partition (i.e. has its boot flag set on).
So does anyone think that BIOS could somehow be stopping Grub from booting his Windows partition just because it is not the active partition? Because that is not the experience of myself or most of my friends. Thanks in advance for any help.
The way the BIOS worked (historically) was to check for a 'magic number' in the MBR; if the magic number was there, it loaded a certain amount of information from the MBR (the 'bootloader') and executed it. Later on the bootloader would typically reside within the partition's own directory table; at this point BIOS mutated to check the MBR but also check for a "bootable" flag to automatically determine where the bootloader is. Once a bootloader is running, BIOS has nothing to do with booting aside from providing system calls to read data.
Your friend shouldn't have to mark a partition as 'bootable' for Grub to boot WinDuhs; there must be something else going on. 'ntldr' will only run from "hd0", so if there are multiple discs and Linux is on hd0, it may be necessary to tell grub to swap hd0,hd1 before chaining to the WinDuhs bootloader.
It would be easiest to check if you can post your friend's Grub menu.lst.
Thanks pinniped, that makes sense. But just to clarify, even though the BIOS always will always try to boot the MBR and not a partition directly (using its partition boot record), you are saying there are some newer BIOSes that will check that one partition on the HDD has its boot flag set? So if no partition is marked active, BIOS could return an error and refuse to hand-off the booting process to the MBR? (Even though a boot loader like Grub in the MBR doesn't care if there are any active partitions?)
If I am not mistaken, the BIOS simply looks for valid boot code in the MBR. At this stage, it knows nothing about bootable partitions. I've installed Linux on maybe 10 different machines---2 of which are quite new. I've never needed a "bootable" flag yet.
I believe it is ntldr that needs to find the bootable flag......
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.