completely hide parts of the partition table from Windows?

From: Mikael Pettersson
Date: Tue Aug 18 2009 - 17:22:41 EST


The BIOS on my laptop clips disk capacities to 128GB. There's no BIOS
update or BIOS setup option to fix this. Passing libata.ignore_hpa=1
allows the Linux kernel to access larger disks, so Linux does work Ok
with larger disks.

However, the laptop dual-boots Windows (for work-related stuff), and
Windows has a major problem: if any entry in the msdos partition table
refers to a sector above the BIOS 128GB limit, the Windows kernel
crashes and reboots early in its boot sequence. The type of the
partition doesn't matter, the fact that it describes an area above
the stupid BIOS limit is enough to trigger the crash.

So what I'm looking for is some sub-partition table format with the
following two properties:
1. resides in an msdos partition entry of a type that Windows does
not inspect (for whatever extended partitions or Apple/BSD/Sun
stuff that Windows may have been taught to recognize)
2. the locations and sizes of the sub-partitions are NOT limited by
the parent msdos partition entry

I've looked at the code in fs/partitions/msdos.c, and it seems that
most of the extended/BSD/Sun formats don't give me property #2 above.

The minix and Unixware format parsers look like they ignore the parent
msdos partion entry boundaries, but I'm not sure if that's by design
or just sloppy coding.

Any recommendations? If no existing partition table format is suitable
for my use case then I'm perfectly willing to invent a simple new format
and add the corresponding parser to the kernel.

/Mikael
--
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/