GPT - (last) call for action
Matthew Dillon
dillon at apollo.backplane.com
Mon Jun 11 20:33:48 UTC 2007
:>> # gpt -r show /dev/rdisk0
:>> start size index contents
:>> 0 1 PMBR
:>> 1 1 Pri GPT header
:>> 2 32 Pri GPT table
:>> 34 6
:>> 40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-
:>> xxxxxxxxxxxx
:>> 409640 159414704 2 GPT part - 48465300-0000-11AA-AA11-
:>> xxxxxxxxxxxx
:...
:> Well, what's happening is that Boot Camp syncs the BIOS partition
:> table with the GPT table, so the first partition should start at 40,
:> just like the GPT.
:>
:> Why does it start at 40 ? Because you need room for the PMBR, the
:> Primary GPT header and the Primary GPT table.
:
:Agreed, you need about 32 sectors for the GPT header+table.
It makes sense for them to point the first MBR slice at the first
partition in the GPT, even though the standard says something else.
It really sounds like they are making an accomodation for BIOS
booting or older Windows booting... or *something* of that sort. The
fact that the bootability bit is not set in the MBR (I'm not sure about
that, is it set or not?)... that seems to imply a compatibility issue
with other OS's like Windows in a multi-boot environment.
They are just doing it all with a single slice instead of having
two slices.
I'll bet they found that the two-slice method doesn't work in some
cases and the one-slice method does. The standard document doesn't
allow either method but it does seem to be a bit less insistent on
the starting sector for slice 1 then it does on there only being
one slice in the MBR, period. I can also see some OS's / disk managers
barfing on having two slices which overlap each other.
So it really does make sense for them to point the MBR at sector 40.
The more I think about it, the more sense it makes.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the freebsd-hackers
mailing list