Problem with WD Advanced Format drive in LINUX (WD15EARS)

BTW: Why is this thread marked as solved? There is a workaround but no solution. And for Linux and Windows I’m having no workaround.

Hi Daniel,


The person who started the thread is the one who can mark a post as the solution if it answered their question or solved the issue for them. 


-WendyM

Can you post your partition table here, so others could try to repeat your described problems with the ntfs partition?

I don’t use this drive for dual boot, so I don’t tested this kind of things. But it could be still a important problem to solve in regards to the pending patches for the linux fdisk and parted tools.

After investing some more hours in partitioning a harddisk I have a working setup.

Using the fdisk with -H 224 -S 56 /dev/sdb build a wrong harddisk with problems under windows XP. testdisk shows errors.

Make sure to delete the partitiontable with

dd if=/dev/zero of=/dev/sdb count=1 bs=1k

and create a new one with parted (see other postings). Then make sure to have them at a divide by 8 boundary.

I have to format them under Windows without(!) the quick/fast mode.

I’m still demotivated about the disk…

Hi !

I’ve recently bought a 1.5TB EARS drive, unaware of the 4kB sector issue. Glad I found this thread.

I tried the fdisk approach, followed by creating partitions in gparted but that left me with the partition starting at 63, which I assume is no good.

I then tried the parted approach, which meant I had one big partition, starting at 40. So far so good. But that’s not the layout I wanted, so I fired up gparted to modify the partition(s) to my requirements (2x 15GB, 1x for the rest).

I then ran into problems:

a) gparted didn’t let me create the first partition as 15GB, 22GB was the minimum. Why ?

b) Went ahead and created 1x22GB, 1x15GB, I for the rest.

When finished I noticed that the first partition now started at 63. I’m assuming that using gparted is the issue. Does this mean I have to use parted to create the partitions, making sure I specify start sectors divisible by 8 ? Why 8 ?

Thanks for any help.

BTW Here’s what I’m planning to do, can someone tell me if this will work:

mkpart primary ext2 40 3750000

I’m assuming this will create a partition from secot 40 to sector 3,750,000, which according to my calculations should be approx. 15GB

I would then create another partition like so

mkpart primary ext2 3750008 7,500,008

which hopefully creates another 15GB partition

Followed by

mkpart primary ext2 7500016 -1

which should create one more partition, taking up the rest of the space on the drive

Or am I going about this the wrong way ?

Hi,

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

I was trying to follow and understand all the conversation here and there

http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/2926

But it is difficult to find a final answer. Below the result of hdparm.What matters seems to be:

    Logical  Sector size:                   512 bytes
    Physical Sector size:                  4096 bytes
    Logical Sector-0 offset:                  0 bytes

With these results, do I need to format my disk with a special method?

For now, I formated the disk using this command:

mkfs.ext3 -T largefile4 /dev/sdb1

But the following gives me:

cat /sys/block/sdb/alignment_offset
0

I would like to be sure that I did good before the disk is filled at 80%…

Here my debian config:

linux kernel 2.6.32-8

fdisk -V
fdisk (util-linux-ng 2.16.2)
parted --version
parted (GNU parted) 1.8.8.git-dirty

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 Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6Standards: Supported: 8 7 6 5 Likely used: 8Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 268435455 LBA48 user addressable sectors: 2930277168 Logical Sector size: 512 bytes Physical Sector size: 4096 bytes Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 1430799 MBytes device size with M = 1000*1000: 1500301 MBytes (1500 GB) cache/buffer size = unknownCapabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, with device specific minimum R/W multiple sector transfer: Max = 16 Current = 0 Recommended acoustic management value: 128, current value: 254 DMA: mdma0 mdma1 *mdma2 udma0 udma1 udma2 udma3 udma4 udma5 udma6 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns

i wonder if its worth the time to try  find out, learn, figure out, understand what are you talking about in these 4k sector drives threads LOL

all and all i think those Green 4K hdd are not worth buying, unless you are some HDD guru and intend to use them only with an OS that can use them properly.  Same story with the SSDs as well, so complicated … Moving ahead technologically tries to automate and simplify and make more user friendly some aspects of the the previous generation while adds other complexities and absolute productivity killers about aspects of the forthcoming generation: summary = no change in productivity and user friendliness (ms is the best example of this phenomenon)

Hi community,

Have found a tutorial (source: http://www.brain4free.org/wiki/doku.php/blog:wd_advanced_format_hd_mit_linux), translated it from german:

Good description of the problem:

http://www.anandtech.com/storage/showdoc.aspx?i=3691&p=2

Using linux with WDxxEARS HDDs is possible but to install them correctly is a bit tricky:

For using WDxxEARS with linux no special software is required. But it is absolutely necessary to partition your HDD correctly. Under Windows XP or under linux using fdisk or parted with default settings WDxxEARS HDDs get partitioned incorrectly. To test, how and where your partitions got created, you  can use fdisk:

fdisk -l -u

A typical incorrect example will look like that:

Device Boot Start End Blocks Id System/dev/sdc1 63 2930272064 1465136001 83 Linux

It is absolutely necessary, that start- and end-parameter are divisible by 4. Default settings in fdisk, parted and Windows XP do not manage that problem. For Windows XP you need this separate Utility: http://www.wdc.com/en/products/advancedformat/index.asp

For linux, this tutorial will help:

http://thunk.org/tytso/blog/2009/02/20/aligning-filesystems-to-an-ssds-erase-block-size/

fdisk using this parameters creates all partitions aligned to 4 KByte blockboundaries:

fdisk -H 224 -S 56 /dev/sdb

Create Partitions and for security reasons test them in the end.

gparted-gui does not work. You have to use parted in console. You have to ensure that your partitions begin and end at 4 KByte blockboundaries. You manage that by swiching parted showing all units in KByte. Dead shot exactly in Kibibyte ( http://en.wikipedia.org/wiki/Kibibyte). All Numbers you give in then have to be divisible by 4.

Example for an HDD with one partition (Notice the command “unit kib”):

parted /dev/sdb(parted) unit kib(parted) printModel: ATA WDC WD15EARS-00Z (scsi)Disk /dev/sdc: 1465138584kiBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system Flags 1 31.5kiB 1465136032kiB 1465136001kiB primary xfs(parted) mkpartPartition type? primary/extended? pFile system type? [ext2]? xfsStart? 32End? 1465138584(parted) printModel: ATA WDC WD15EARS-00Z (scsi)Disk /dev/sdc: 1465138584kiBSector size (logical/physical): 512B/512BPartition Table: msdosNumber Start End Size Type File system Flags 1 32.0kiB 1465138584kiB 1465138552kiB primary

Hope this will help many people.

Best regards,

hans1967

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