Triple boot:XP,ubuntu&FC5 grub failed

Mike McCarty Mike.McCarty at sbcglobal.net
Tue Sep 12 04:44:28 UTC 2006


Jim Cornette wrote:
> Mike McCarty wrote:
> 
>> Jim Cornette wrote:
>>
>>> Mike McCarty wrote:
>>>
>>>> The BIOS does NOT search the partition table for an active partition.
>>>> It is the code in the MBR which does that. All the BIOS looks for
>>>> is the first physical sector on the physical volume having the BOOT
>>>> RECORD signature (AA55) in the last two bytes. The BIOS accesses the
>>>> disc in a physical manner (LBA translation aside). It knows nothing
>>>> about partitions. Indeed, there are more than one way of partitioning
>>>> discs, and the "traditional" method is not the only one. Anyway, if
>>>> the BIOS finds the BR signature in the first physical sector, then it
>>>> simply loads it to 0000:7C00 (IIRC) and jumps to it. [NB: The 
>>>> processors
>>>> all reset to REAL mode, so this is not a selector address, but a
>>>> segmented address.]
> 
> 

[snip]

> So you are saying above that the MBR has the default code to search for 
> the active partition. The BIOS does not know about active partitions 

I don't know what is in your MBR, but is has the *only* (not just
default) code to search for "active partitions".

> without instruction from the MBR. Now if I took a brand new disk with 

The BIOS does not receive instructions from the MBR. The MBR contains
a little program which gets loaded by the BIOS. It, like any other
program, does whatever it does once it is loaded into memory. When
it is executing, the BIOS has relinquished control, and no longer
runs the show. It is out of the picture entirely.[*]

> nothing on it, partitioned as described above and toggled the active 
> partition, it would just come up confused without some OS writing 
> information into the MBR?

When you get a "blank disc" and "partition it" you use a tool
to write the Partition Table. The PT is *part* of the MBR.
That tool, usually, also writes the code portion of the MBR
with a program which can read and interpret the PT. What gets
put into the MBR depends on what tool you use to create the
initial partitions. This tool also often writes the BRs at the
beginning of the partitions, which contain the BPBs or "geometries"
of the partitions.

> It works if you wanted to simply toggle active partitions instead of 
> chainloading installations. Grub has to be putting some information in 
> the partitions for this to work. So you should be able to add entries 
> within grub in order to chainload either installation and forget about 
> adding grub to the MBR.

GRUB, when installed into the MBR, *is* the code portion of the MBR.
There must be *some* code in the MBR, otherwise there is nothing
to interpret the PT, and find what is active and what is not.

> By the way, selecting advanced options during installation allows you to 
> choose where you want to install grub. Otherwise, it defaults to 
> installing grub into the MBR.

It really isn't necessary to quote everything which went before.

[*] Well, not *completely* entirely :-) The code in the MBR makes
BIOS service calls to read the disc, and display messages on the
screen, using software interrupt services. But the MBR code is
in the driver's seat, and the BIOS is just a bunch of I/O services
at that point.

Mike
-- 
p="p=%c%s%c;main(){printf(p,34,p,34);}";main(){printf(p,34,p,34);}
This message made from 100% recycled bits.
You have found the bank of Larn.
I can explain it for you, but I can't understand it for you.
I speak only for myself, and I am unanimous in that!




More information about the fedora-list mailing list