4

I have a WD hard drive that simply refuses to be read when put in a WD enclosure for SATA to USB 2. The drive shows up in macOS, Ubuntu and Windows, but appears uninitialized/unpartitioned.

Here are the details:

  • Fails to read on three separate machines: Raspberry Pi 4, PC laptop, MacBook Air.
  • Fails to read properly in Linux, macOS and Windows.
  • The drive itself works fine (read, write) using another, vertical SATA to USB 3 dock, as well as internal SATA connectors on a fourth machine.
  • Another, identical drive, purchased at the same time, works fine with the problematic enclosure in question. A third unrelated drive also works with the enclosure.
  • Two USB cables tested, yielding the same results.

Additional details

  • The problematic drive is a 1TB WD10EADS.
  • The enclosure is a WD Elements P/N WDBAAU0020HBK-01
  • The enclosure originally came with a 2TB drive, i.e twice the size.
  • Both MBR and GPT drives seem to work with the enclosure — just not this drive.
  • There does not appear to be any problems with the partition table. For one it works using other interfaces, as mentioned, and at that point fdisk finds no problems, and gdisk sees it as pure MBR.

I'm having a hard time figuring out what I've overlooked. What I've done so far suggests that there's no problem with the drive nor the enclosure, and that there isn't a problem with the pairing of the enclosure with this particular HDD model.

Can I do any other tests to understand what the problem is?


Update dec 24 (more details)

  • The original drive for the enclosure is presumed killed by 🐈🐈‍⬛ and plays no part in this question.
  • The enclosure is powered. The power supply measures a stable 12 V (under no significant load).
  • The drives have no -- nor have ever had -- any jumpers. For those interested, on this model the jumper pins provide the features "Spread Spectrum Clocking", "Power Up In Standby" and "1.5GB PHY".

fdisk -l for the two same-model drives in the working SATA to USB 3 dock:

Non-working drive:
Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: EADS-00L5B1     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x6f300962

Device     Boot     Start        End   Sectors   Size Id Type
/dev/sdc1  *         2048  208898047 208896000  99.6G  7 HPFS/NTFS/exFAT
/dev/sdc2       208898048  415746047 206848000  98.6G  7 HPFS/NTFS/exFAT
/dev/sdc3       642889170 1501813170 858924001 409.6G  7 HPFS/NTFS/exFAT
/dev/sdc4       415748094  642888295 227140202 108.3G  f W95 Ext'd (LBA)
/dev/sdc5       529319936  642888295 113568360  54.2G 83 Linux

Partition table entries are not in disk order.

Standard error output:

Partition 3 does not start on physical sector boundary.
Partition 4 does not start on physical sector boundary.
Working drive:
Disk /dev/sdd: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: EADS-00L5B1     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 12B5A74F-A8D5-4556-AF05-6CB2229DCBA0

Device          Start        End    Sectors   Size Type
/dev/sdd1        2048 1134325759 1134323712 540.9G Microsoft basic data
/dev/sdd2  1134325760 1953521663  819195904 390.6G Microsoft basic data

If the request for "fdisk -l in both cases" means "...in both enclosures" then this is the output with the non-working enclosure:

fdisk: cannot open /dev/sdc: Input/output error

Update 25 dec

  • The original drive for the enclosure is a WD20EARX-00PASB0, i.e. a WD Caviar Green, just like the problem drive.
  • Both the original drive and the problematic one are "512e" according to a price comparison site (the only source I could find for that info — I sure didn't see it in the official product data sheet which is itself impossible to find without resorting to third party sites)
  • Using a working drive in the problematic enclosure fdisk -l still reports that both logical and physical sectors are 512 in size, just like when using the USB 3 dock or the internal SATA connection. I don't understand in what way the enclosure changes the sector sizes, if it does.
  • The fdisk reported "I/O size" does change between interfaces, but the phrase "I/O size" is extremely vague and I can't find any explanation of that field in the fdisk manual, rendering it meaningless to me. This definition leaves me none the wiser since in my eyes that's just the definition of the logical sector size.
  • The identical working drive seems to "work" in the enclosure to the extent that macOS detects and mounts a volume on it, after which I concluded it was "working". Now it seems that macOS only sees one out of two partitions on it using the enclosure (!). See fdisk -l output below.

fdisk -l of "working" identical drive in enclosure:

GPT PMBR size mismatch (1953525167 != 1953519615) will be corrected by write.
Disk /dev/sdb: 931.51 GiB, 1000202043392 bytes, 1953519616 sectors
Disk model: Ext HDD 1021    
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00000000

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdb1           1 1953519615 1953519615 931.5G ee GPT

In words, the working drive + enclosure can be read properly but does not appear to expose a usable partition table on Linux. This seems like a tangential problem perhaps explained by the Advanced Format answers below. Compare this output with using it in the USB 3 dock above, where it exposes a working partition table: the sector sizes are the same but "I/O size" isn't: I/O size (minimum/optimal): 4096 bytes / 4096 bytes. Once again it's not at all clear what "I/O size" even means, making it difficult to form a proper understanding of the situation and make any use of the fdisk output. We'll leave this problem here though, since it's not the focus of this question.

dmesg -w comparison when plugging in the enclosure

The working drive
[ 2253.906554] usb 3-1: new high-speed USB device number 7 using xhci_hcd
[ 2254.055583] usb 3-1: New USB device found, idVendor=1058, idProduct=1021, bcdDevice=20.21
[ 2254.055605] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2254.055612] usb 3-1: Product: Ext HDD 1021
[ 2254.055617] usb 3-1: Manufacturer: Western Digital
[ 2254.055622] usb 3-1: SerialNumber: 574341553437333531363634
[ 2254.059918] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 2254.061302] scsi host7: usb-storage 3-1:1.0
[ 2255.073051] scsi 7:0:0:0: Direct-Access     WD       Ext HDD 1021     2021 PQ: 0 ANSI: 4
[ 2255.074288] sd 7:0:0:0: Attached scsi generic sg1 type 0
[ 2255.074871] sd 7:0:0:0: [sdb] 1953519616 512-byte logical blocks: (1.00 TB/932 GiB)
[ 2255.076423] sd 7:0:0:0: [sdb] Write Protect is off
[ 2255.076430] sd 7:0:0:0: [sdb] Mode Sense: 17 00 10 08
[ 2255.077935] sd 7:0:0:0: [sdb] No Caching mode page found
[ 2255.077942] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 2255.107533] sd 7:0:0:0: [sdb] Attached SCSI disk
The non-working drive
[ 2428.062663] usb 3-1: new high-speed USB device number 8 using xhci_hcd
[ 2428.211750] usb 3-1: New USB device found, idVendor=1058, idProduct=1021, bcdDevice=20.21
[ 2428.211773] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2428.211781] usb 3-1: Product: Ext HDD 1021
[ 2428.211786] usb 3-1: Manufacturer: Western Digital
[ 2428.211791] usb 3-1: SerialNumber: 574341553437333731323230
[ 2428.217156] usb-storage 3-1:1.0: USB Mass Storage device detected
[ 2428.217966] scsi host7: usb-storage 3-1:1.0
[ 2429.245027] scsi 7:0:0:0: Direct-Access     WD       Ext HDD 1021     2021 PQ: 0 ANSI: 4
[ 2429.246381] sd 7:0:0:0: Attached scsi generic sg1 type 0
[ 2429.246863] sd 7:0:0:0: [sdb] 1953519616 512-byte logical blocks: (1.00 TB/932 GiB)
[ 2429.248354] sd 7:0:0:0: [sdb] Write Protect is off
[ 2429.248358] sd 7:0:0:0: [sdb] Mode Sense: 17 00 10 08
[ 2429.249861] sd 7:0:0:0: [sdb] No Caching mode page found
[ 2429.249868] sd 7:0:0:0: [sdb] Assuming drive cache: write through
[ 2429.254561] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.254570] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.254575] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.254579] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.254582] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.254590] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.255141] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.255147] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.255152] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.255156] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.255159] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.255166] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.255680] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.255685] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.255690] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.255694] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.255696] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.255703] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.255716] ldm_validate_partition_table(): Disk read failed.
[ 2429.256223] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.256228] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.256233] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.256237] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.256239] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.256245] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.256765] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.256770] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.256775] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.256778] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.256781] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.256787] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.257305] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.257309] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.257314] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.257318] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.257320] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.257326] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.261410] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.261420] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.261425] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.261430] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.261432] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.261441] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.261460] Dev sdb: unable to read RDB block 0
[ 2429.262000] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.262006] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.262011] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.262015] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.262017] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.262024] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.262578] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.262584] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.262589] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.262593] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 00 00 00 08 00
[ 2429.262595] critical target error, dev sdb, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.262602] Buffer I/O error on dev sdb, logical block 0, async page read
[ 2429.263143] sd 7:0:0:0: [sdb] tag#0 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_OK cmd_age=0s
[ 2429.263151] sd 7:0:0:0: [sdb] tag#0 Sense Key : Data Protect [current] 
[ 2429.263156] sd 7:0:0:0: [sdb] tag#0 Add. Sense: Logical unit access not authorized
[ 2429.263160] sd 7:0:0:0: [sdb] tag#0 CDB: Read(10) 28 00 00 00 00 18 00 00 08 00
[ 2429.263162] critical target error, dev sdb, sector 24 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0
[ 2429.263169] Buffer I/O error on dev sdb, logical block 3, async page read
[ 2429.264241]  sdb: unable to read partition table
[ 2429.264353] sd 7:0:0:0: [sdb] Attached SCSI disk

hdparm -I of faulty drive

/dev/sdc:

ATA device, with non-removable media
Standards:
    Likely used: 1
Configuration:
    Logical     max current
    cylinders   0   0
    heads       0   0
    sectors/track   0   0
    --
    Logical/Physical Sector size:           512 bytes
    device size with M = 1024*1024:           0 MBytes
    device size with M = 1000*1000:           0 MBytes 
    cache/buffer size  = unknown
Capabilities:
    IORDY not likely
    Cannot perform double-word IO
    R/W multiple sector transfer: not supported
    DMA: not supported
    PIO: pio0 
11
  • Can you add the outputs of fdisk -l in both cases?
    – Tom Yan
    Commented Dec 24, 2022 at 4:21
  • @Giacomo1968 and why do you think fdisk -l is all about the drive itself? The point was to see if there's a change in logical block size / number of blocks between the two cases, and whether the MBR / partition table is entirely invisible in the not working case. It's not a SMART scan that I asked for / it would do.
    – Tom Yan
    Commented Dec 24, 2022 at 19:51
  • Hmm okay so I missed the fact that an identical drive works with the enclosure. While you get I/O error when fdisk -l, does SCSI read capacity work at all? (I mean like, with dmesg -w running, what's the new output do you can when you plug the non-working drive+enclosure in?)
    – Tom Yan
    Commented Dec 25, 2022 at 3:51
  • 1
    One big problem here is that the non-working enslosure somehow reports a wrong disk size (1953519616 instead of 1953525168) for both identical drives. Unless you have the reason and solution for it, I'd say you should probably stop trying to get it work. (I haven't really check what exactly you are asked to do in the modification / hacking answer but I suppose it's probably one of the best shots for your final attempt.)
    – Tom Yan
    Commented Dec 26, 2022 at 9:28
  • 1
    Well, 5552 = 1953525168 % 2048 + 4096 and 4144 = 976773168 % 2048 + 4096. (Not that 4096 here is a number of 512-byte blocks, i.e. 2MiB, not a number of bytes.) While we got the math, we still have no idea what exactly it's doing behind the scene, let alone "fixing" it...
    – Tom Yan
    Commented Dec 27, 2022 at 5:33

3 Answers 3

2

WD enclosures adjust the block/sector size that is presented to the OS. The structure is known as Advanced Format.

The long & short of this is that you may need to reformat a drive if you add it to the enclosure after formatting elsewhere, or the sector emulation doesn't map properly to the drive itself.

See WD - Advanced Format White Paper

Note: No jumper adjustment should be necessary to use as a consumer drive, the factory setting is sufficient.

11
  • Although the LBA numbers would become invalid, the partition table should still be visible in this case though, IIRC. More precisely logical block size of 4096 bytes was coined the term AF 4Kn. (Both 512e and 4Kn are considered / part of AF.)
    – Tom Yan
    Commented Dec 24, 2022 at 8:53
  • @TomYan - but was this also true the 15 or so years ago that these components were new?
    – Tetsujin
    Commented Dec 24, 2022 at 8:59
  • Except the drive is behaving differently to others of the same model, and per the link in my answer the jumpers are not related to advanced format...
    – davidgo
    Commented Dec 24, 2022 at 9:21
  • Sure, the very reason AF 512e existed was because AF 4Kn requires support from the OSes and even in some cases userspace programs. The real "essence" of AF is the change of physical block size (or "sector" size, as in the actual sectors in the spinning drives; which is why IMO AF is sort of an outdated term, since while you can "format" / choose the logical block size (among 512 and 4096, at least) in most if not all NVMe SSD, using the term AF for them kind of makes no sense.
    – Tom Yan
    Commented Dec 24, 2022 at 9:24
  • 1
    We could see what happens if the OP reformats...
    – Tetsujin
    Commented Dec 24, 2022 at 9:38
-2

I posit that there may be a jumper setting on the drive that needs to be changed - I guess check the working drive and compare!

That drive does have a place for jumpers on the back of the drive next to the SATA connector. See https://crowdxaser.weebly.com/blog/western-digital-wd10eads-jumper-settings

1
  • I don't know the details of the features controlled by the jumper pins, so for all I know your answer may be a valid observation, so thanks for the suggestion. Maybe the downvoters have more in-depth knowledge about that. In this case there's no jumper on any drive though.
    – Andreas
    Commented Dec 27, 2022 at 15:29
-3

There's likely a jumper on the hard drive that's set to master or slave and you already have the other drive set. Normally there's also an Auto jumper on most hard drives, at least on older models. I've have similar problems in the past with drives and it turned out to be those jumpers.

Also have a look through the motherboard manual as you may find you need to set different jumpers on the mother board.

CB

1
  • Master/Slave is only relevant for IDE, which is deprecated for more than a decade, not for SATA. Commented Dec 25, 2022 at 2:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .