[PATCH 0/8] partitions/efi: detect hybrid mbrs

From: Davidlohr Bueso
Date: Tue Aug 06 2013 - 01:29:10 EST

This patchset teaches the kernel about hybrid master boot records (MBRs), one of
the most common issues with GUID partition tables, as a workaround to layout
disk partitions to be compatible with both EFI and legacy MBR based systems.
Except for adding more pmbr checks, to better comply with the UEFI/GPT specs, the
functionality is left unchanged - we only inform (through debug) the user about
the used MBR scheme. While it is true that these restrictions can be bypassed when
forcing gpt, this is not the correct or default way of doing things, complicating
users furthermore. More details are in the individual patches.

Patches 1-5 enables the kernel to inform the user about the mbr scheme being used.
They also include more protective mbr checks to be more UEFI compliant - we currently
have a very open and generic gpt implementation that can cause non-GPT disks to be
recognized/probed as GPT.

Patch 6 adds a missing check when verifying the header integrity.

Patches 7 & 8 are trivial cleanups.

All changes were tested on a macbook pro containing a hybrid mbr and a large EFI based
HP server with a standard protective mbr.


Davidlohr Bueso (8):
partitions/efi: use lba-aware partition records
partitions/efi: check pmbr record's starting lba
partitions/efi: do not require gpt partition to begin at sector 1
partitions/efi: detect hybrid MBRs
partitions/efi: account for pmbr size in lba
partitions/efi: compare first and last usable LBAs
partitions/efi: delete annoying emacs style comments
partitions/efi: some style cleanups

block/partitions/efi.c | 128 ++++++++++++++++++++++++++++++++++---------------
block/partitions/efi.h | 38 +++++++--------
2 files changed, 108 insertions(+), 58 deletions(-)


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/