A proposal to extend MS MBR disc labels to support LBA-48

  • Thread starter Andrew Buckeridge
  • Start date
A

Andrew Buckeridge

A standard MS MBR disc label as used by GNU/Linux only supports
LBA-32. The bogus CHS junk could be used to add support for
the LBA-48 capability of ATA drives. Given that 1 TB discs are
available the 2 TiB MS MBR limit could be reached with a RAID.

A partition entry in an MS MBR disc label: -

0x1be 0x80 part0 boot flag
0x1bf 0x01 part0 Head 1 8-bits 0...254
0x1c0 0x01 part0 Sect 1 6-bits 1...63
0x1c1 0x00 part0 Cylinder 0 10-bits 0...1023
0x1c2 0x0c part0 type FAT32
0x1c3 0xfe part0 Head 254 8-bits 0...254
0x1c4 0xff part0 Sect 63 6-bits 1...63
0x1c5 0xff part0 Cylinder 1023 10-bits 0...1023
0x1c6 0x3f part0 first LBA0
0x1c7 0x00 part0 first LBA1
0x1c8 0x00 part0 first LBA2
0x1c9 0x00 part0 first LBA3
0x1ca 0xc1 part0 size LBA0
0x1cb 0x03 part0 size LBA1
0x1cc 0xfb part0 size LBA2
0x1cd 0x00 part0 size LBA3

An LBA-32 disc can be identified by the 0xfeffff CHS entries.
As 0xffxxxx is illegal we could use this to flag LBA-48 entries.

0x1be 0x80 part0 boot flag
0x1bf 0xff part0 LBA-48 flag as no such thing as head 255
0x1c0 0x00 part0 first LBA4
0x1c1 0x00 part0 first LBA5
0x1c2 0x0c part0 type FAT32
0x1c3 0xff part0 LBA-48 flag as no such thing as head 255
0x1c4 0x00 part0 size LBA4
0x1c5 0x00 part0 size LBA5
0x1c6 0x3f part0 first LBA0
0x1c7 0x00 part0 first LBA1
0x1c8 0x00 part0 first LBA2
0x1c9 0x00 part0 first LBA3
0x1ca 0xc1 part0 size LBA0
0x1cb 0x03 part0 size LBA1
0x1cc 0xfb part0 size LBA2
0x1cd 0x00 part0 size LBA3

This provides a 48-bit address to match the capability of ATA.
 
R

rich.remer

This is much better than the alternate proposal to change the boot flag field (search for Wikipedia 48-bit LBA MBR). Here's hoping for more support for this idea.


Rich
 
Top