my ideas in action

WD30EZRX Caviar Green 3TB, correct disk size and how to partition in Linux/Unix

I have a new HDD from Western Digital. It is a WD30EZRX Caviar Green. It has 3TB and the price is almost ok. The disk works fine for now so I will detail the way the partition can be done in Linux/Unix.

Why do we care about this ? Well.. because this 3TB is bigger than normal HDD on the market. The forums are full with people asking why do not see the full 3TB size . Well there are some issues with the way the data is addressed. It is nothing wrong with the disk but with the software used to see the partitions or to access the partitions.

In my case I used a old external HDD enclosure to test the drive. It was out of the box, so I was thinking to partition it and then to be screwed in the final rack.

Wrong ! Since my HDD enclosure ( cheap and old case with JMicron SATA-to-USB interface) is accessing the data in 32bit format (hex) the max visible disk size was 746MB. I searched the web and I found many guys complaining that they see the same 746MB size in the 3TB disk. But other people were saying that they see 2.1-2.1TB !?!

Well… after aprox 1 hour of reading the web, I discovered that the problem is do to software and not do to hardware.

Those of you that are using fdisk to see ( and/or partition) this disk will run in the same issue. So I used “parted” in command line. I did not tested with Gparted ( from live Ubuntu distro) but I assume that will work also. So I used the last Parted version and the disk size was ok 3.001TB.

WARNING  !!! : Parted writes the changes directly on the disk !!! (no undo option , and no cancel !! )

So in order to partition with parted ( command line version) you have to do the following steps: (assuming the disk is sdb , if not please change it to your proper value)

1: you have to change the partition table from msdos to gpt.

# parted /dev/sdb
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type ‘help’ to view a list of commands.

(parted) print
Error: /dev/sdb: unrecognized disk label

(parted) mklabel gpt

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start  End  Size  File system  Name  Flags

2: partition the disk

# parted /dev/sdb

(parted) mkpart primary 0GB 3001GB

(parted) print
Model: Unknown (unknown)
Disk /dev/sdb: 3001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3001GB  3001GB               primary

3: then you must format the new partition to the ext2, ext3, ext4 or whatever you want. This step may take few minutes. Wait….

# mkfs.ext2 /dev/sdb1

4: mount the new created partition

# sudo mount /dev/sdb1 /mnt/somefolder

Probably there are other ( more easy or cleaver ) methods but this was working for me.

BTW: in my case I format it as ext2 and at the end I have approx 2.88TB and from this I can use max 2.7TB…

So it appears that this >100GB are lost in filesystem stuff. So please have this in mind for big HDD since it may create disappointment ..(“Look I have a 3TB disk …but I can use only 2.5TB !!”)


For more information on this issues please read :



One response to “WD30EZRX Caviar Green 3TB, correct disk size and how to partition in Linux/Unix

  1. Johan Krüger Haglert September 1, 2013 at 10:48 AM

    3 TB HDD spec translates to 3*1000^3/(3*1024^3)*3 = 2.8 data TB.

    Been like that for over a decade.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: