linux-stable/block/partitions
Davidlohr Bueso b05ebbbbeb partitions/efi: detect hybrid MBRs
One of the biggest problems with GPT is compatibility with older, non-GPT
systems.  The problem is addressed by creating hybrid mbrs, an extension,
or variant, of the traditional protective mbr.  This contains, apart from
the 0xEE partition, up three additional primary partitions that point to
the same space marked by up to three GPT partitions.  The result is that
legacy OSs can see the three required MBR partitions and at the same time
ignore the GPT-aware partitions that protect the GPT structures.

While hybrid MBRs are hacks, workarounds and simply not part of the GPT
standard, they do exist and we have no way around them.  For instance, by
default, OSX creates a hybrid scheme when using multi-OS booting.

In order for Linux to properly discover protective MBRs, it must be made
aware of devices that have hybrid MBRs.  No functionality is changed by
this patch, just a debug message informing the user of the MBR scheme that
is being used.

[akpm@linux-foundation.org: coding-style fixes]
Signed-off-by: Davidlohr Bueso <davidlohr@hp.com>
Reviewed-by: Karel Zak <kzak@redhat.com>
Acked-by: Matt Fleming <matt.fleming@intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2013-09-11 15:59:16 -07:00
..
acorn.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
acorn.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
aix.c partitions: add aix lvm partition support files 2013-07-09 10:33:28 -07:00
aix.h partitions: add aix lvm partition support files 2013-07-09 10:33:28 -07:00
amiga.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
amiga.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
atari.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
atari.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
check.c block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
check.h block/partitions: optimize memory allocation in check_partition() 2013-02-27 19:10:21 -08:00
cmdline.c block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
cmdline.h block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
efi.c partitions/efi: detect hybrid MBRs 2013-09-11 15:59:16 -07:00
efi.h partitions/efi: detect hybrid MBRs 2013-09-11 15:59:16 -07:00
ibm.c s390/partitions: make partition detection independent from DASD ioctls 2012-09-26 15:45:05 +02:00
ibm.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
karma.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
karma.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
Kconfig block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
ldm.c LDM: Fix reassembly of extended VBLKs. 2012-02-24 09:37:42 +00:00
ldm.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
mac.c block/partitions/mac.c: obey the state->limit constraint 2013-02-27 19:10:21 -08:00
mac.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
Makefile block: support embedded device command line partition 2013-09-11 15:56:57 -07:00
msdos.c partitions/msdos: enumerate also AIX LVM partitions 2013-07-09 10:33:28 -07:00
msdos.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
osf.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
osf.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sgi.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sgi.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sun.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sun.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sysv68.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
sysv68.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
ultrix.c move fs/partitions to block/ 2012-01-03 22:54:06 -05:00
ultrix.h move fs/partitions to block/ 2012-01-03 22:54:06 -05:00