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.
get parted. On gentoo: emerge parted
Use a kernel with GPT support
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.
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.