Andrew Chernow <achernow at esilo dot com> describes how to use partition tables that overcome the limitations of the older MSDOS-style partition tables.


To create partitions that exceed the 95,000 or so fdisk cylinder limit or the 2TB size limit, use GNU's "parted". We just purchased an EtherDrive+RAID 15 bay unit and created a 7 drive RAID5 on it, 500G drives so 3TB usable. The fdisk program was not very happy, even after following CORAID's FAQ on telling fdisk how many cylinders there are. We ended up giving parted a try and were pleasantly surpirsed.

I did not test compatibility with partition tables created with fdisk from parted, being how these drives had nothing on them.

GPT Example

  1. get parted. On gentoo: emerge parted

  2. Use a kernel with GPT support

  3. run parted. This example splits a 3TB AoE target into 3 1TB partitions.

    Must use GPT partition table! Allows for 128 primary partitions and partitions larger than 2TB. See: http://www.wlug.org.nz/GPT.

The following example was created on a system running a 2.6.14-gentoo-r5 kernel.

shell # parted /dev/etherd/e0.0
(parted) mklabel gpt
(parted) print
Disk geometry for /dev/etherd/e0.0: 0kB - 3001GB
Disk label type: gpt
(parted) mkpart primary 0 1000G
(parted) mkpart primary 1000G 2000G
(parted) mkpart primary 2000G 3001G
(parted) print
Disk geometry for /dev/etherd/e0.0: 0kB - 3001GB
Disk label type: gpt
Number  Start   End     Size    File system Name    Flags
1       17kB    1000GB  1000GB
2       1000GB  2000GB  1000GB
3       2000GB  3001GB  1001GB
(parted) quit

shell # cd /dev/etherd/
shell # ls e0.0*
e0.0  e0.0p1  e0.0p2  e0.0p3
shell # mkfs.ext3 /dev/etherd/e0.0p1
shell # mkfs.xfs /dev/etherd/e0.0p2
shell # mkfs.reiserfs /dev/etherd/e0.0p3

Parted can mkfs for you, type "help" at the (parted) prompt.

Kernel Support for GPT

After learning the hard way, which is what testing is for, I found you must have GPT support on in the kernel. This in under:

File Systems
   Partition Types
     [*] Advanced partition selection
     [*] EFI GUID Partition support (NEW)

These must be on! EFI GUID sets the "CONFIG_EFI_PARTITION" flag. The help menu states:

Say Y here if you would like to use hard disks under Linux which were partitioned using EFI GPT. Presently only useful on the IA-64 platform.

The last line is outdated, "Presently" is no longer true. We have it working on a 2.6.14 Intel 32-bit.

Without this on, strange things happen. For instance, rebooting the machine caused the file system to no longer be mountable or the GPT table got corrupted. Nice thing about GPT is that is keeps a backup table at the end of the disk.

When you turn GPT support on, everything works as expected. All problems went away. We could no longer break it.


www.coraid.com