Sunday, September 22, 2013

Updating Seagate ST3000DM001-9YN166 to CC4H firmware while in external USB 3.0 enclosure

Some time ago I purchased external 3TB USB 3.0 hard disks, TrekStor DataStation maxi light 3TB to be exact. It seem disk models and manufactures used by TrekStor vary, which is no surprise. Therefore I have externally identical disk enclosures with three different models of disks due making three separate purchases over few months.



1st purchase in March 2013: Seagate ST3000DM001-9YN166, firmware CC4B
2nd purchase in April 2013: Seagate ST3000DM001-1CH166, firmware CC44
3rd purchase in August 2013: Toshiba DT01ACA300, firmware MX6OABB0

One with CC4B firmware makes annoying clicking sound and occasional screams which can be cured by either doing firmware upgrade or by disabling APM with hdparm or smartctl. I prefer fixing it once and for all by firmware upgrade. CC44 Seagate and Toshiba are fine, no need to update those.

But how to upgrade firmware when disk is in external USB 3.0 enclosure? Firmware upgrade tool supplied by Seagate runs in DOS and can't upgrade USB disks. Pulling disk and connecting it to AHCI SATA controller would be easy, but there's one those lovely warranty void if seal is broken stickers. Warranty from Seagate would be enough for me even with TrekStor warranty voided, but no luck with that either - disks are OEM versions so no warranty service available from Seagate.

This leaves us only one option: Upgrade firmware over USB. Luckily hdparm can do just that assuming this feature actually works. It might not. And when it doesn't work it will leave your hdd permanently inoperable. Same will happen if you flash wrong firmware so watch out.

Anyway, I can confirm that upgrading 9YN166 from CC4B to CC4H does indeed work over USB3 with TrekStore enclosure.

- Download ISO image version of CC4H firmware update from http://knowledge.seagate.com/articles/en_US/FAQ/223651en
- Mount Barracuda-ALL-GRCC4H.iso ISO-image
- Mount GR-CC4H.ima floppy-image you can find inside ISO
- Unpack LOD.zip which is inside floppy-image
- Now you're left with three firmware upgrade files: GRCC4H6H.LOD, GRCC4H4H.LOD and GRCC4H2H.LOD.
- See decrypted update matrix available on http://www.users.on.net/~fzabkar/HDD/GR-CC4H.TXT to determine which firmware file is correct for your drive. In my case it was GRCC4H6H.LOD.
- Next make sure disk is unmounted so there's no I/O going on during update
- Update disk with following command assuming it's named /dev/sdf
hdparm --fwdownload GRCC4H6H.LOD --yes-i-know-what-i-am-doing --please-destroy-my-drive /dev/sdf
- You'll see bunch of dots and then it hangs for a while. Soon you'll see scary error message and drive emits screeching noise. PANIC! Naah, relax, it's all fine and dandy.
- Wait for a while and power cycle disk using power switch on back of enclosure.
- Verify it still works and check firmware version, it should say CC4H now.

Worked for me, all data is still there and quick checking with md5sum shows no silent errors either. Which was nice.

Since this procedure might be picky regarding hardware and software here's some relevant details:
- Renesas (NEC) USB 3.0 controller model D720202 (PCI ID 1912:0015)
- D-Link 4-port USB 3.0 hub (DUB-1340)
- Ubuntu 12.04 x64 with 3.5.0-37-generic #58~precise1 kernel
- hdparm v9.37



8 comments:

  1. Thanks for the info,
    I have the same problem, unfortunately for me my drive is ST3000DM001-1CH166
    it appears seagate change the firmware upgrade files
    the new firmware CC29 is in different format and doesn't have LOD files

    ReplyDelete
  2. I managed to succesfully update my eight ST3000DM001-9YN166 drives installed in my NAS (Synology DS1812+), using your guide without pulling them off one by one and attaching them to my PC. It took me 5 minutes to update all of them.

    Everybody told me it was not possible to update the firmware of the drives while in the NAS, but being a long time sysadmin, the more they tell me a thing is not possible, the more I try to do it.

    Thank god you wrote this quick guide, I was almost there by myself, but I didn't know which of the 3 firmware images to use for my drives; luckily I have the exact same drives as yours, so it was an easy win. :)

    Thanks a lot my friend, if you come in Rome you'll find a nice beer waiting for you. :)

    ReplyDelete
    Replies
    1. did you dismounted the drives from the synology before you did the upgrade? or did you all as discrebed as above but then within DSM ??

      Delete
  3. Thank you very much. I could update my firmware with this method. I had not realized the .img file was a floppy image disk :-)
    This tutorial should be more widespread.

    ReplyDelete
  4. It worked ecactly as described, thanks a lot!

    External disc connected via USB 3.0.
    Ubuntu 14.04 x64 with 3.13.0-35-generic #62-Ubuntu kernel.
    hdparm 9.43-1ubuntu3

    ReplyDelete
  5. The link is broken I have one version on..

    http://www.users.on.net/~fzabkar/HDD/GR-CC4H.TXT

    www.pk25.com/varios/GR-CC4H.TXT

    ReplyDelete
  6. Thank you for documenting this upgrade procedure.
    It worked perfectly fine despite Seagate's ISO CD-ROM boot failing at disk firmware download stage on the same computer.

    ReplyDelete

Got something to say?!