Problem with WD Advanced Format drive in LINUX (WD15EARS)

hi dafrizz

i don’t know where your problem with the minimum size partition comes from (normally you get this behaviour for partitions with data on it. am I right that your partition was empty?)

we have to wait for some patches for parted and gparted, so the default behavior is fine for the new drives.

go ahead with parted and you should be fine. i didn’t checked your calculations but what you plan to do looks fine too me. you should get a properly performing drive by that.

hi klubad

please show us your partition details. do this by following what is described in the other posts:

To test, how and where your partitions got created, you can use fdisk:
fdisk -l -u

you only write that you formated the drive, who has created the partition on it? you or during manufacturing?

my guess is, that if you created the partition, you have to go over and follow the instructions here. If the partitioning was made during manufacturing you should be fine.

but thats a quess, please check AND POST your partition table, so we can provide correct instructions for newer My Book Essential drives.

Hi, I recently upgraded my DirecTV HD-DVR HR21 to use the 1.5 Terabyte WD15EARS hard drive.  The OS of the DirecTV receiver is linux.

Could someone help be with the commands to resize the XFS partitions that the DVR creates at bootup?  The output from “fdisk -l -u” is

Disk /dev/sda: 1500.3 GB, 1500301910016 bytes

255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors

Units = sectors of 1 * 512 = 512 bytes

Disk identifier: 0x00000000

Device           Boot            Start                    End                      Blocks                ID         System

/dev/sda1                           63                       1060289             530113+           82         Linux swap / Solaris

/dev/sda2                           1060290            32531624          16735667+      83         Linux

/dev/sda3                           32531625          2930272064     1448870220    83         Linux

When I open the device in G-Parted, sda1 and sda3 show up as unknown, sda2 shows up as xfs.  I must be missing some libraries for g-parted not to identify sda1 and sda3.

Thanks,
Zack      

Well, I repartitioned the whole drive and this time didn’t have any issues with any minimum sizes. This is the output from fdisk -l -u afterwards:

Disk /dev/sdb: 1500.3 GB, 1500301910016 bytes
255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x000350f8

   Device Boot Start End Blocks Id System
/dev/sdb1 64 30716279 15358108 83 Linux
/dev/sdb2 30716280 61432559 15358140 83 Linux
/dev/sdb3 63472816 2930272064 1433399624+ 83 Linux
/dev/sdb4 61432560 63472814 1020127+ 82 Linux swap / Solaris

Partition table entries are not in disk order

Looks to me like the partitions are properly aligned.

Hi,

You can also use LVM to solve the problem:

x64etch:~# hdparm -i /dev/sdc
/dev/sdc:
 Model=WDC WD20EARS-00S8B1, FwRev=80.00A80, SerialNo=WD-WCAVY2798944
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
 BuffType=unknown, BuffSize=unknown, MaxMultSect=16, MultSect=16
 CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=3907027055
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: Unspecified:  ATA/ATAPI-1,2,3,4,5,6,7

1/ delete all partition

x64etch:~# fdisk /dev/sdc
Delete all partition
w

2/ Install lvm (i use debian)

x64etch:~# apt-get install lvm2 dmsetup mdadm

3/ spend a little time to read the man page :slight_smile:

x64etch:~# man pvcreate
    …
    If the 2nd SCSI disk is a 4KB sector drive that compensates for windows partitioning (sector 7 is the lowest aligned logical block, the 4KB sectors start at LBA -1, and consequently sector 63 is
    aligned on a 4KB boundary) manually account for this when initializing for use by LVM:
        pvcreate --dataalignmentoffset 7s /dev/sdb
    …

4/ Prepare the disk

x64etch:~# pvcreate --dataalignmentoffset 7s /dev/sdc
  Physical volume “/dev/sdc” successfully created

5/ Create a volume group

x64etch:~# vgcreate wd2tsata /dev/sdc
  Volume group “wd2tsata” successfully created

6/ and the end create the logical volume

x64etch:~# lvcreate --name vm_storage --size 300G wd2tsata
  Logical volume “vm_storage” created

7/ Format your logical volume

x64etch:~# mkfs.ext4 /dev/wd2tsata/vm_storage

You can change the size has you want. I use the disk on samba file server, and i transfert 4.4 G on it by network share in 45 seconds. I update later the post if i found a problem during the time of used.

have fun.

Source:

http://www.howtoforge.com/linux_lvm

http://www.wdc.com/wdproducts/library/WhitePapers/FRA/2579-771430.pdf

http://www.mentby.com/mike-snitzer-2/data-alignment.html

Stams

klubad wrote:

I bought an external WD HD yesterday, a My Book Essential 1.5T. The HD in the box is a WDC WDC WD15EARS-00Z5B1

 

hdparm -I /dev/sdb/dev/sdb:ATA device, with non-removable media Model Number: WDC WD15EARS-00Z5B1 Serial Number: WD-WMAVUxxxxxxx Firmware Revision: 80.00A80[…] Logical Sector size: 512 bytes Physical Sector size: 4096 bytes Logical Sector-0 offset: 0 bytes

Wait, there seem to be something different (and hopefully good) in what _ klubat _ has posted.

It seems the 1.5 TB drive he got is correctly reporting the 4kB physical block size. This is something I haven’t seen reported by any other Advance Format EARS drive owner in this thread or other Internet discussions so far.

Could it be that WD has changed things in the “00Z5B1” models to correctly report the physical block size for the benefit of the Linux-based partitioning tools and so help people avoid getting non 4kB-aligned partitions?. Or maybe the difference is in the fact he’s is the drive inside a external My Book Essential?.

For comparison, I’ve just bought an internal 1 TB WD10EARS 64MB cache Caviar Green drive with the same firmware version as his (80.00A80) but with a 00Y5B1 suffix in the model number that, just like all other posters’ (here and other Internet discussions), reports  512B both for the physical and logical blocks sizes:

$ sudo ./hdparm -Vhdparm v9.28$ sudo ./hdparm -I /dev/sdb/dev/sdb:ATA device, with non-removable media Model Number: WDC WD10EARS-00Y5B1 Serial Number: WD-WMAV5 ******* Firmware Revision: 80.00A80[...]Configuration:[...] Logical/Physical Sector size: 512 bytes

My kernel version is 2.6.33.x. and the drive has no jumper between pins 7-8.

It’s emulating the 512 bytes, it’s really 4k. 

Hello,

I’m trying to format my new WD15EARS but I’m having some trouble with it. Could someone help me out on this issue?

This is what I’d like to obtain :

(I hope my calculations are correct)

Since I’d like to have more than 4 partitions on this HDD for pratical purposes, I have to use Extended partitions (noted (E) above) to cram two logical drives inside. I can’t figure out how to do this in Parted, and other tools did not allow me to align properly the partitions.

I tried to use GParted to set up the partitions as I wanted, all in Fat32, then tried to use WDAlign to align the partitions and expected to change their format after that. The WD Align tool did not work, the first partition started at 63 (which is bad).

Any help would be appreciated !

Thanks


ramiro_morales wrote:> Could it be that WD has changed things in the “00Z5B1” models to correctly report the physical block size for the benefit of the Linux-based partitioning tools and so help people avoid getting non 4kB-aligned partitions?. Or maybe the difference is in the fact he’s is the drive inside a external My Book Essential?.

I just got a WDC WD15EARS-00Z5B1 (internal drive) and it reports 512 bytes as logical / physical sector size. Using kernel 2.6.34-rc6 and an Intel DP35DP board. So nothing changed.

Getting the alignment correctly on this one was quite a challenge.

GPT partition table (32 partitions), parted couldn’t get the align right by itself, so I wrote a small Python script that calculated partition sizes and alignment for me. (Can be done manually if it’s 2-3 partitions but gets tedious for a larger number).

cryptsetup/LUKS: is luckily automatically aligned to 4k boundaries

LVM: is luckily automatically aligned to 4k boundaries

XFS filesystem: would know to use 4K blocks if the drive reported it correctly, which it doesn’t, so you have to supply the sector size as option to mkfs.xfs. Especially the XFS problem I noticed too late and as a result I spent another day shuffling data around, remaking all my XFS volumes.

However now that all things are done and my encrypted xfs lvm volumes are now running properly aligned on this drive, I’m very happy with its performance. I hope the next generation of drives will report their sector sizes correctly!

Hi all,

Using the information provided by hans 1967 I could format my hd and use it on my linux box.

My disc: WD10EARS ( 1tb).

My problem: I/O operations blocking my machine for the most stupid tasks. This behaviour was exponential woring with svn trunks and many little files. Doing a svn cleanup command would take many minutes to finish.

Error logs: None. I could not even find one error in sata controllers or IO read/write errors, so I pointed my efforts on HD formatting.

HD format was initially done using cfdisk and creating parttions in any place and size. Even using 4k blocks ( by default is in 4k), this was not working ok.

Solution:

  1. run fdisk with the following params:

#fdisk -H 224 -S 56 /dev/sda

  1. Create partitions.
  • NOTE: Use starting cylinders multiples of 4.
  1. The first partition is usually located at cylinder 63 ( leaving some free mb at disk start ).

    As the start cylinder has to be multiple of 4, I had to change it. I preferred to use 64 as start cylinder, didn’t have so much time to test, but 20 would have worked fine. I spent 1 week installing gentoo with this slow disk and reinstalled after the fix :frowning:

    SO: Start cylinder 64.

  1. For partition end cylinder I preferred to specify size and not cylinder using the format +[value]G , of course replace [value] by the size you want.

  2. Done. this is my current table ( notice I dont have swap partition hehe, Im just to create one):

#fdisk -l /dev/sda

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
224 heads, 56 sectors/track, 155733 cylinders
Units = cylinders of 12544 * 512 = 6422528 bytes
Disk identifier: 0x000ea1b2

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          64         146      520576   83  Linux       → notice start cylinder is 64 ( multiple of 4)
/dev/sda2             148       16866   104861568   83  Linux     → notice start cylinder is  multiple of 4
/dev/sda3           16868       75382   367006080   83  Linux   → notice start cylinder is multiple of 4
/dev/sda4           75384      155733   503955200    5  Extended   → start cyl is multiple of 4 and covers the rest of the disk
/dev/sda5           75384       92102   104861540   83  Linux   → start cyl is multiple of 4 and starts in the same place as the extended partition since its a logical unit.

NOTE: Again, the ending cylinder was chosen by fdisk, since I only specified starting cylinder and size.

Good luck to all the linux community. This problem was really annoying for me and I spent too much hours before discovering the disk was ok, and the kernel modules were also ok.

Thanks to all this forum. Thanks to   hans1967  specially, he gave the easiest directives to solve this.

My worst regards to the WD workers who wrote in the harddrive cover:

“For windows installations please align the disk using the utillity. For linux users: IS READY TO USE AS IS” WTF??

Regards,

Gaspar

I just purchased an WD advanced format 2TB drive (WD20EARS). I am using it with Debian 4 on an old Pentium 2 computer. It is really slow. I set it up using fdisk -u and starting the partition at 64 and then using MKFS to format an ext3 filesystem specifying a blocksize of 4096. Unfortunately that did not avoid the performance issue. Does anybody have any ideas? Should I try resetting the jumpers to turn off 4k blocksize? I am trying to decide if I should RMA the drive.

Here is how I can tell the drives are slow. The system has an IDE system drive 12GB w/about 6GB free. It also has a 1TB SATA WD internal drive (WD10EACS). I have added the new 2TB SATA WD (WD20EARS) advanced format drive externally via eSATA. I intend to replace the 1TB drive with the 2TB driver. I copied the data from the 89% full 1TB drive to the new 2TB drive. It took days at under 4MB/s. So I decided to compare the performance of the 1TB and the 2TB. I copied a 5GB file from the 1TB to the IDE drive which averaged about 8MB/s and copying the same file from the 2TB to the IDE drive averaged only 2.9MB/s.  Tried copying the file from the IDE drive to the 1TB at about 9MB/s, and from the IDE drive to the 2TB at about 2.9MB/s.

-Stew

Wow! I upgraded to Debian 5.03 and a Pentium 4 processor and now copying the same file from 2TB EARS to 80GB internal IDE drive is at 83MB/sec and copying from 80 GB IDE to 2TB is 46MB/sec.  Now I can leave it with 4k sectors.

-Stew

I prepare to buy WD15EARS (with 2,930,277,168 sectors) and I don’t understand why in these operations

(parted) mkpartPartition name? []?File system type? [ext2]?Start? 64End? -1

argument “-1” is at “end”. Because 2,930,277,16 7th is a logical last (8’th of 8) block of a one physical sector, isn’t it? But why system tells about 2930277134th sector:

Warning: You requested a partition from 64s to 2930277167s.The closest location we can manage is 64s to 2930277134s.

?

It doesn’t a last, just a 7th of 8.

I tried all steps (described here) with parted and fdisk to configure my WD20EARS under Linux with the actual kernel.

My results are to every time the same. I see 512 bytes as phyiscal and logical and hdparm shows me a value with 50 MB/s. I think this is too slow.

What should i do?

Hi all,

I did use Gparted-LiveCD test version 0.6.2-2.

See:

http://ziggo-gebruikers.nl/forum/showthread.php?t=16533&page=56

Nb!.  Be sure, you have to “resize” the first partition by 1 Mb; this might be a little “bug” in Gparted.

But it looks like you can partition and format your WD20EARS correctly in Advanced Format in Gparted now !

Aligned to Mib. ?

With “fdisk -lu /dev/sdd” I did see:

Disk /dev/sdd: 2000.4 Gb, 2000398934016 bytes
255 Heads, 63 sectors/tracks, 243201 cylinders, total 3907029168 sectors
units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes/512 bytes
Disk identifier: 0x0002decd

Device Boot Start End Blocks Id System

/dev/sdd1 2048 4196351 2097152 83 Linux
Partition 1 does not end on cylinder boundary.  *
/dev/sdd2 4196352 4405247 104448 83 Linux
Partition 2 does not end on cylinder boundary.  *
/dev/sdd3 4405248 38454600191 1925097472 83 Linux
/dev/sdd4 38454600192 3907028991 26214400 83 Linux

The * remarks by “Fdisk” are not correct, I do think!

With “sfdisk -uB -l /dev/sdd”:

Disk /dev/sdd : 243201 cylinders, 255 heads, 63 sectors/track

units = blocks of 1024 bytes, counting from 0

Device Boot Start End #blocks Id System

/dev/sdd1 1024 2098175 2097152 83 Linux

/dev/sdd2 2098176 2202623 104448 83 Linux

/dev/sdd3 2202624 1927300095 1925097472 83 Linux

/dev/sdd4 1927300096 1953514495 26214400 83 Linux

I did re-format the disk with “mkfs.ext3 -b 4096 /dev/sddx” to be sure that 4K blocks where used.

Partition 1, 3 and 4 automatic did format with 4K blocks with “mkfs.ext3 /dev/sddx”; only partition 2 required the “-b 4096” parameter.

But this all did not make a difference for the WD Align Utility; and “sfdisk”, they did both present the same information - before and after.

With the “WD Align Utility - by Acronis” I could see in Windows XP that the disk was Optimally Aligned # ! (The utility displays this information)

The result:

                                                                           Cap              Used                         Start                            End

Disk 4

#  Ext3 (Unlabeled) (H: )             Pri             2 Gb              99,87 Mb Ext3           2048                           4.196.351                \Device\000000921

#  Ext3 (Unlabeled) (J: )              Pri         102 Mb             9,392 Mb Ext3           4.196.352                  4.405.247                 \Device\000000922

#  Ext3 (Unlabeled) (L: )              Pri      1,793 Tb             29,00 Gb Ext3           4.405.248                  3.854.600.191         \Device\000000923

#  Ext3 (Unlabeled) (S: )             Pri            25 Gb             574,4 Mb Ext3           3.854.600.192          3.907.028.991         \Device\000000924

Also the “WD Align System Utility - by Paragon”, tells me, the disk is optimally aligned.

So I think Gparted LiveCD 0.6.2-2 can do the job, my disk “looks” in Advanced Format correctly !

But I’m in doubt, is my HD realy in 4 Kb sector or cluster size?

Last info: I did prepare this disk for replacing my HD 320Gb in my PVR Humax iHDR 5050-c.

And this works. But I like the challenge to use this WD20EARS correctly in AF and aligned.

What is your opinion?

Alfredo

The Netherlands

Hi,

I haven’t been able to try the solution you wrote, but I am not sure that it is exactly the same issue for me.

We have a machine (kernel v. 2.6.32-24-generic) with a WD10EARS at the company, and our current project involves harddrive- speed-critical tasks.

I can remember that there were issues with this machine. When it was received its hdd was so slow we could sit out a single linux installation process. The supplier fixed(?) the problem, and said that it was the BIOS version that caused the trouble. (motherboard: Gigabyte EP45-UD3LR, current bios version: F7)

If I am right the theoretical transfer rate of this hdd is ~300MB/s (200 would perfectly satisfy our needs), but I can only measure ~80MB/s (±20MB/s). (with

Could you measure this rate with the command

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k

or with something similar mesaurement tool, please?

Thanks,

Bálint

Hi,

My motherboard is ASUS P4PE with Pentium4 CPU 2,40 GHz, 2,00 GB

I test the disk in a SATA Docking-station.

I did the following commands:

“hdparm -tT /dev/sdd” - with result:

/dev/sdd:

Timing cached reads: 950 MB in 2,00 seconds = 474,45 MB/sec

Timing buffered disk reads: 84 MB in 3,03 seconds = 27,74 MB/sec

“dd if=/dev/zero of=/tmp/output.img bs=8k count=256k” - with result:

129587+0 records in

129586+0 records out

1061572608 bytes (1,1 GB) copied. 2,77257s, 383 MB/s

My questions:

Did I test my /dev/sdd with this last command ?

Does it mean, that my disk WD20EARS is very fast?

Alfredo

The Netherlands

Hi,

Thanks for the reply. If I’m right “dd” tested the drive where your /tmp is located, and if your OS booted from a live cd (as I can remember you said that you do this with a GParted live) then /tmp is in the memory, so you write only your memory.

“hdparm” actually tests sdd, but I’m afraid that the score you got is not so high.

I keep on finding a solution to speed up my drive or I have to buy another one.

Hi,

Thnx for the reply.

I did another test:

“dd if=/dev/sdd3 of=/output.img bs=8k count=256k”  with result:

128844+0 records in

128843+0 records out

1055485952 bytes (1,1 GB) copied, 31,5859 s, 33,4 MB/s

I do understand, this means:

Slow performance together with my motherboard P4PE CPU 2,40 GHz 2,00GB Memory.

Disillusion for the WD20EARS 2 Tb.

And I can tell you: WD support has insufficient knowledge and is not willing to search for a solution or better information!

I hope you find a way to speed up this HD. Please let me know !

Alfredo

the Netherlands

balint_fodor, the WD10EARS is a green, 5900 RPM drive. As such, I would argue that it is not suitable for “harddrive-speed-critical tasks”.

The theoretical transfer rate of ~300MB/s applies to the SATA interface, ie the “burst rate”. Your Linux tests, OTOH, measure the “sustained” data transfer rate between the buffer and the platters. Therefore the result of your “dd” command will depend on the physical position of the target file on the destination drive, ie whether it is nearer the spindle or the outer cylinders.

Perhaps you can test the read performance by inputting from LBA 0 and outputting to /dev/nul. You should see something like 106 MB/s.