Professional Documents
Culture Documents
Adventures With Advanced Format HDD's and Third Party Firmware
Adventures With Advanced Format HDD's and Third Party Firmware
Routed Logic
Toggle navigation
Home
Tools
About
Contact
Recently we bought a couple of cheap servers with 24 x 2.5″ SAS disks; and a large batch of 900GB 2.5″ 10K disks seperately.
These are for a (very cheap) development platform that doesn’t require vendor support or replacement components within a specific time. Hence buying off eBay.
Unfortunately; while the cheap as chips servers were great, the cheap disk batch was slightly less so.
They were sold as “Seagate Savvio 10K.5 900GB 2.5″ SAS Hard Drive, Model Number ST9900805SS” which are genuinely good enterprise drives that should
work on any 6Gbps SAS backplane/controller.
However… while the labels on them confirmed they’re supposed to be that… the didn’t behave as such.
The first problem was that fdisk/cfdisk wouldn’t read them. It’d just error and bail. What was the issue? 520 byte sectors, aka. Advanced Format sectors.
520 or 528 byte sectors can be used on many enterprise HDD’s; though they’re very rarely used directly by O/S’es; rather they’re used as part of vendor specific
and proprietary disk formats which include firmware/software level error detection. e.g. the extra 8 or 16 bytes are used for checksums or some other form of error
detection mechanism.
The Linux kernel doesn’t support anything other than 512 byte sectors at this time. So this is the kind of kernel message you’ll get if you’ve got a disk that’s
formatted with something else,
This is a not uncommon problem. Even many enterprisey-style RAID controllers/cards for will use 520/528 byte sectors if the disks support them. You move them
disks and expose them directly to the O/S and you’ll be unable to read or write to the disks.
This is easily fixed . On Linux you can use sg_format or st (from SeaGate Enterprise Tools download) to re-format the disk to 512-bytes. e.g.
All of the disks also passed SeaGate Enterprise Tools initiated Drive Self Test (DST) routines without issue. In short… at a basic level the disks appeared to be
fine.
But, while fdisk/cfdisk could interact with the disks after the 512-byte format, any attempt to write to the disk failed. They all appeared to be locked in some kind
of read-only mode for some bizarre reason.
Long story short: it turned out that the firmware was not SeaGate firmware.
Using smartctl and the SeaGate Enterprise tools; this is what one of the disks would report when first inspected.
1 of 5 11/7/18, 1:58 PM
Adventures with Advanced Format HDD's and third party firmware https://webcache.googleusercontent.com/search?q=cache:roRIp...
[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
No self-tests have been logged
[root@san02 ~]#
Note the Product = DKS5D-J900SS which is NOT the ST9900805SS model that was expected.
A quick Google will lead to the conclusion that these disks are actually manufactured by Hitachi. What gives?
Firmware. They’re SeaGate disks with Hitachi firmware. Because they were pulled from a Hitachi storage system.
Many storage system providers reinvent the wheel and do their own things with disks; this includes writing customised firmware that does everything differently
for no good reason.
After tracking down the latest official SeaGate firmware I did some research on doing HDD firmware updates from within Linux, which boil down to the
following:
1. Use official vendor tools if available, e.g. “st” from SeaGate Enterprise Tools
2. Use ‘hdparm –fwdownload’
3. Use ‘sg_write_buffer’ command
If you’ve got firmware from another vendor on you disk; you may or may not be able to use their tools.
e.g. because the disks are reporting a different product ID, they may fail.
2 of 5 11/7/18, 1:58 PM
Adventures with Advanced Format HDD's and third party firmware https://webcache.googleusercontent.com/search?q=cache:roRIp...
So you try hdparm… which may not work because the firmware on the disk doesn’t behave as hdparm expects.
/dev/sdm:
SG_IO: bad/missing sense data, sb[]: 70 00 05 00 00 00 00 13 00 00 00 00 20 00 01 cf 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
DOWNLOAD_MICROCODE: not supported by device
[root@san02 firmware]#
So you resort to sg_write_buffer… which doesn’t do much more than blindly dump code to the disk… not safe… but if you’re certain the firmware file is legit,
appropriate for the drive, and isn’t corrupted it should be OK.
[GLTSD (Global Logging Target Save Disable) set. Enable Save with '-S on']
No self-tests have been logged
3 of 5 11/7/18, 1:58 PM
Adventures with Advanced Format HDD's and third party firmware https://webcache.googleusercontent.com/search?q=cache:roRIp...
[root@san02 firmware]#
Writes by fdisk/cfdisk work; and the partitions can be formatted using mkfs.* tools.
Best of luck…
UPDATE 2018/03/15 - For anyone looking for the firmware file CP-SAS-0004.LOD you can grab the original Seagate .zip I pulled that from my Google Drive
here
firmware,hdd,hitachi,seagate,sectors
4 of 5 11/7/18, 1:58 PM
Adventures with Advanced Format HDD's and third party firmware https://webcache.googleusercontent.com/search?q=cache:roRIp...
!
Routed Logic Comment Policy
Don't be a douche.
Name
Follow
Recent Post
Tags
Recent Post
Tags
5 of 5 11/7/18, 1:58 PM