Re: EFI partition code broken..

Linus Torvalds
2004-11-07T21:13:00Z

On Sun, 7 Nov 2004, Matt Domsch wrote:
>
> The check for invalid primary master boot record (PMBR) needs to be
> moved up ahead of the reads for the GPTs (primary at the start of the
> disk, alternate/backup at the end of the disk). When first written,
> Intel didn't specify that the PMBR (a normal DOS-like MBR partition
> table with a single entry of type 0xEE covering the whole disk) *had*
> to exist, so we let the code try looking for GPTs first. When the
> PMBR test was added, it should have been added ahead of the GPT tests,
> not after. I'll work up a patch to do just that, and will then remove
> the dependency on IA64. Fair enough?

Yes, sounds good. Also, if I understand you correctly, I would suggest
actually taking the size of the disk from the PMBR 0xEE entry itself,
rather than depend on what size the disk reports (perhaps double-check
that it is sane, of course - the more careful the better).

With people doing things like concatenating partitions with "md", the size
of the disk itself is less important than what the partition table was set
up with - even if the size reporting of the disk itself is reliable.

For example, let's say that you create a EFI table on a RAID (striped or
whatever), and that in turn then means that the first sub-disk used for
the RAID will contain (as part of the RAID array) the EFI signature in its
PMBR, we don't want to look at the GPT at the end of _that_ disk. See what
I'm saying?

Linus