Thursday, February 3, 2011

Creating a FreeDOS USB boot stick for Samsung F4 Firmware updating.

As I wrote in my previous post, the Samsung F4 2 TB drive, Model HD204UI, Firmware Version: 1AQ10001 has a very nasty firmware bug that causes data corruption in the form of failed writes. Samsung only makes the firmware update available as a DOS exectuble (.exe).

Note: It should be possible to extract the .bin or .hex from that and use one of the fwupdate utilities that were popular for CD/DVD burners. I wasn't willing to risk bricking the drive, so I'll leave that to someone else. As I said, even with the firmware fix I'm considering returning the drive, because I find Samsung's handling of this matter difficult to put any faith in.

I was able to do the following. I followed the instructions on this page, written by Timo Heissenbttel to be a reminder for how to do this the next time it comes up. It uses syslinux and FreeDOS. Fortunately enough drivers are there that I was able to boot it on a Dell Poweredge without having to scramble to find lots of drivers. I was able to copy Samsung's F4EG.exe to the thumb drive, after formatting, partitioning, running syslinux and copying freedos to the drive.

Hope This Helps Somebody Else.

Samsung 2 TB HD204UI Firmware Bug,

The Samsung 2 TB SATA Drive, Model HD204UI, Firmware version 1AQ10001, has a nasty bug which causes data corruption if an Identity command issued while the drive is buzy writing with queued requests via NCQ. Smartctl, hdparm, and any number of utilities can issue an Identity request to the drive. I noticed it because I've got smartd (part of the smartmontools package) running in the background to periodically do smart health checks of the drives on my servers.

Samsung appears to be handling this incredibly badly, yet the drives still receives very high reviews.

1. This error is easy to reproduce, I'm really surprised it wasn't caught earlier.

2. New drives as of Dec 2010 are still shipping with the broken firmware.

3. The updated firmware doesn't have a new version number. Let me say that again, They didn't bother to update version number so you can tell if you need to do a firmware update. This also means you can't easily tell if you've successfully updated the drive's firmware. Seriously, as far as I can tell, there is no way to tell a good drive from a bad one.

4. Finding the firmware update on their site is difficult. It is listed in an FAQ entry as "Q. Patch tool for Identify fail during NCQ write command.(Model: F4EG". That's clear as mud isn't it? At least the answer to the question in the FAQ is a little bit clearer "If identify commmand is issued from host during NCQ write command in the condition of PC, write condition is unstable. So It can make the loss of written data."

5. The firmware update is only found on that FAQ page, yet, there is no version number, no date, or any way of knowing if you are downloading the most up-to-date or correct firmware update.

6. The update is in the form of a DOS .exe file. You need a system you can boot DOS to update the firmware.

By a fortunate accident, I was able to spot the problem during the extended drive burn test that I do, which has saved me several times. I wrote my own Perl script to do somewhat of the equivalent of a surface scan, repetitively writing patterns across the whole disk and reading it back. There is some belief that there isn't any value in running your own surface scans any longer since it's been done by the drive manufacturer. My experience is that infant mortality rates on dirt cheap drives seems to be climbing. Testing doesn't appear to be improving.

Given Samsung's mishandling of this. I'm still considering returning this drive. I can see having any faith in Samsung's storage products given the above. To me the worst part is that they couldn't bother to update the fixed firmware version number which shows, IMnsHO, a complete lack of rigor in engineering as well as a complete disregard for customer's time.