Get 160 GB Linux Partition from MAXTOR 160 IDE Drive

Get 156 GB Linux Partition from Maxtor 160 IDE Drive

February 2004

Except for the most recent kernels, Linux will only see 137 GB (128 GB if using powers of 1024) out of the 156 GB on the the Maxtor "160 Gigabyte" Diamondmax 540T drives. I found nothing on the Maxtor or RedHat web sites about this, but a search of the Linux Kernel mailing list produced a number of references to a patch which was purported to work by some people. Some additional directions are available here but for those unwilling or unable to patch their kernel, it is possible to simply upgrade to the latest release if you are using the Redhat distribution.

The following reports my actual experience with the Maxtor drive, but I expect the experience would be the same with the newer Western Digital 180GB WD1800JB drive, which I have never even seen. [Note, since this was first written we have used numerous 200 and 300 gigabyte drives].

Redhat 7.2 will see only 137 GB, but RH 7.3 will see the entire drive. Which comes to 156 GB of usable space. I don't know about the other distributions, but I guess that any based on Kernel 2.4.18-3 or better will be much the same. Somewhere between 2.4.7-10 and 2.4.18-3 the patch may have been accepted into the standard kernel, or perhaps RH just added it to its distribution. It may be in other distributions, also. I'd like to hear from someone who actually knows.

There is some discussion on the Linux Kernel mailing list about which IDE controllers will support the larger drives and some posters alleged BIOS compatibility problems on older motherboards. The most knowledgable participants in the debate say that all controllers will work and there are no BIOS issues. This seems to be incorrect. The new drives use an addressing method known as LBA-48 and require contollers that can send the additional information.

In my experiments the first two channels on a relatively new Gigafast GA-7/DXR motherboard did support the large partition, but two additional motherboard connectors intended for RAID arrays (Promise Technology MBFasTtrak133) did not. A call to the vendor informed me that the 3rd and 4th connectors required a special Linux driver to operate at all, but that PCI based IDE controllers would be supported by any kernel.

I prefer buying new hardware to modifying the kernel. So I bought a Maxtor Ultra100 controller, which did not work (the boot failed at the "Partition check" stage), and later a Maxtor Ultra133 (also called Ultra133TX2 and sometimes bundled with the drive in retail packages) controller, which did work. This leaves me agreeing with the other clueless users who think that a controller compatible with LBA-48 is required and contradicts the wisdom of the cluefull. These controllers include some BIOS code, which might also be helpfull. I did find a press release from Promise Technology claiming that there was a new standard for 48-bit addressing of IDE drives, which they call "Big Drive" rather than LBA-48. Maxtor doesn't mention either on the box, or in the docs supplied with the controller or drive, though. In pratice it seems that controllers claiming to support 133mbs also support LBA-48, but I have not seen any claims of LBA-48 support on any retail package. [Update: a recently purchased SIIG UltraATA 133 PCI card did claim support for >137 gigabytes on the package, and did work with several 250 gigabyte Maxtor drives under RH 9.0 in another server].

The RH default partitions generated by the Redhat 7.3 partitioning tool (as invoked by the initial installation program) are unsuitable for drives so large, so you probably want to do the partitioning yourself. Interestingly enough Disk Druid saw 156,327MB (19,929 cylinders) on 4 of the drives and 156,334 MB (19,930 cylinders) on the other two. And no, it didn't seem to matter which controller or which partition program was used. Another surprise was finding that while all the drives were packed with Cable Select style cables, one (and only one) of the drives came jumpered as "single". Someone at the factory playing little jokes?

We are using this as JBOD, so we did not consider it necessary to restrict ourselves to one drive per IDE cable.

The drives consume about 16 watts each at startup and about 6 watts each in steady state. (We have a meter). Even with no special cooling they do not get hot. The entire box with 6 160 Gigabyte drives consumes 225 watts at start up and 125 watts steady state. I wound up with 885 (true) gigabytes of user file storage for about $2,500.

Introductory Linux documentation doesn't cover adding a hard drive to an existing system, but it is quite easy to do with the sfdisk command. The e2label command is optional, but is used with the new scheme of mounting partitions by Label rather than device name.

#sfdisk /dev/hde #e2label /dev/hde /mountpoint and accept every default to get the entire disk assigned to partition 1. Then add one of the following two lines to /etc/fstab: /dev/hde1 /mountpoint ext3 defaults 1 1 or LABEL=/mountpoint /mountpoint ext3 defaults 1 1 and run #mkfs.ext3 /dev/hde1 #mkdir /mountpoint

/dev/hde is the device name for the first (master) drive on the third ide controller. Since you already have two controllers on the motherboard, the Maxtor controller holds the third and fourth. Drive letters are handed out two to each controller, whether or not drives are present. The drives on the Maxtor card are "numbered" e through h. [Update: Adding a controller can cause a drive renumbering].

With RH 8.0 we used /sbin/mkfs.ext3 to make the filesystem.

Of course you only get the full disk if you start with RH 7.3. I understand that if you go ahead and use an incompatible controller/OS combination that your data is in danger, but I don't have personal experience. These would take a long time to fsck if you actually used an ext2 filesystem.

We tried this project again, with a SOYO SY-K7ADA motherboard. The Maxtor controller saw the drive, but Linux didn't. We think the controller and drive were fine, because Windows 98 did see the drive, and wonder if the SOYO motherboard is insufficiently supported by (supportive of?) Linux. There is no mention of Linux on the SOYO web site, and updating to the June 3rd, 2002 version of the BIOS did not affect the matter.

Note that RH 7.2 did not recognize the Maxtor controller at all.

A third project involved a Soyo SY-7VBA133U motherboard and the same Maxtor controller. By this time RH 8.0 was available. There were no problems recognized, although the number of blocks in the formatted drive was 157,573,436 rather than 152,530,080.

A fourth project used a Gigabyte P4 Titan Series 845GE motherboard and RedHat 9.0. There were no problems with the motherboard IDE controllers or a an ATA-100 controller bundled with the 200 gigabyte Maxtor drive.

We also experimented with USB and Fireware drives. We bought a 3.5" external enclosure from Micro Plus (model ME-720) with both USB 2.0 and Firewire connections. In both cases the drive was recognized within a few seconds of plugging the data cable into the computer. This is with an absolutely stock RH 9.0 install, and while the I/O ports were present while the install took place, the drive certainly wasn't. Performance was about half the theoretical maximum for USB or Firewire. Note that the ME-720 is limited to 137 GB. There is a Granite Digital enclosure that supports larger drives but must be shut off at boot time, and does not support hot-swapping.

It was still necessary to fdisk, mkfs and mount the drive:

sfdisk /dev/sca mount /mnt /dev/sca1

We find then that RedHat 9.0 seems to make large drives quite painless.

[With thanks to Alex Aminoff]

Daniel Feenberg
feenberg @ nber.org