From The Blog

Do You Have a Seagate Brick?

Seagate has announces, in its Knowlege Base, that the problem is a result of bad firmware and that drive owners can protect themselves by upgrading...

Hard DriveThere have been a number of complaints from owners of large Seagate drives recently. These drives all have one symptom in common. During a power up the drive will seems to disappear. The drive is no longer detected by the PC and does not show at the POST (Bootup) screen or in the BIOS. This problem was first reported with new Seagate 1.0 and 1.5 Terabyte drives, but as more Seagate customers have come forward it appears that the problem is affecting drives from 500gb and up.  The affected product lines are:

Barracuda 7200.11
DiamondMax 22
Barracuda ES.2 SATA
SV35

Seagate has announces, in its Knowlege Base, that the problem is a result of bad firmware and that drive owners can protect themselves by upgrading the firmware for the affected drives. They have also confirmed that the data, while inaccessible to the drive owner, is still intact.   Seagate has released a statement to the folks at TechReport.com saying they will recover the data for customers who experience the failure.

Customers can expedite assistance by sending an email to Seagate (discsupport@seagate.com). Please include the following disk drive information: model number, serial number and current firmware revision. We will respond, promptly, to your email request with appropriate instructions. There is no data loss associated with this issue, and the data still resides on the drive. But if you are unable to access your data due to this issue, Seagate will provide free data recovery services. Seagate will work with you to expedite a remedy to minimize any disruption to you or your business.

There is a bit of a problem with the Seagate KB article though. It assumes that you are a Windows user. They provide a tool to let Windows users scan their drives and discover the model number, serial number, and firmware revision.  However, if you are a Linux user their Knowledge Base article is not going to help you.  Fortunately, this information is very easy retrieve in most Linux installations.  If you are using a Debian or Ubuntu install this method will definitely work.

You can skip down to the end for a simple bash command to get this info, but first I will go through it step by step.

To check the drives, you will need to determine your hard drive device names.  A quick and dirty way to get this information is to check your /dev/disk/by-path folder

~$ ls -l /dev/disk/by-path

You will see all your drives.

On my Desktop I get a list like this:

pci-0000:00:02.1-usb-0:2:1.0-scsi-0:0:0:0 -> ../../sdf
pci-0000:00:02.1-usb-0:2:1.0-scsi-0:0:0:0-part1 -> ../../sdf1
pci-0000:00:02.1-usb-0:2:1.0-scsi-0:0:0:1 -> ../../sdg
pci-0000:00:02.1-usb-0:2:1.0-scsi-0:0:0:1-part1 -> ../../sdg1
pci-0000:00:02.1-usb-0:5:1.0-scsi-0:0:0:0 -> ../../sdm
pci-0000:00:02.1-usb-0:5:1.0-scsi-0:0:0:0-part1 -> ../../sdm1
pci-0000:00:02.1-usb-0:6:1.0-scsi-0:0:0:0 -> ../../sdn
pci-0000:00:02.1-usb-0:6:1.0-scsi-0:0:0:0-part1 -> ../../sdn1
pci-0000:00:02.1-usb-0:8:1.0-scsi-0:0:0:0 -> ../../sdh
pci-0000:00:02.1-usb-0:8:1.0-scsi-0:0:0:1 -> ../../sdi
pci-0000:00:02.1-usb-0:8:1.0-scsi-0:0:0:2 -> ../../sdj
pci-0000:00:02.1-usb-0:8:1.0-scsi-0:0:0:3 -> ../../sdk
pci-0000:00:06.0-scsi-0:0:0:0 -> ../../sdd
pci-0000:00:06.0-scsi-0:0:0:0-part1 -> ../../sdd1
pci-0000:00:06.0-scsi-0:0:1:0 -> ../../sde
pci-0000:00:06.0-scsi-0:0:1:0-part1 -> ../../sde1
pci-0000:00:08.0-scsi-0:0:0:0 -> ../../sda
pci-0000:00:08.0-scsi-0:0:0:0-part1 -> ../../sda1
pci-0000:00:08.0-scsi-0:0:0:0-part2 -> ../../sda2
pci-0000:00:08.0-scsi-1:0:0:0 -> ../../scd0
pci-0000:00:08.1-scsi-0:0:0:0 -> ../../sdb
pci-0000:00:08.1-scsi-0:0:0:0-part1 -> ../../sdb1
pci-0000:00:08.1-scsi-0:0:0:0-part5 -> ../../sdb5
pci-0000:00:08.1-scsi-0:0:0:0-part6 -> ../../sdb6
pci-0000:00:08.1-scsi-0:0:0:0-part7 -> ../../sdb7
pci-0000:00:08.1-scsi-0:0:0:0-part8 -> ../../sdb8
pci-0000:00:08.1-scsi-1:0:0:0 -> ../../sdc
pci-0000:00:08.1-scsi-1:0:0:0-part1 -> ../../sdc1

This technique will not work on USB drives and for our purposes we only care about drives, not partitions so since /dev/sdb1 and /dev/sdb5 etc… are on the same drive we need to whittle down the list a little more.  Your drives could show has /hd* instead of /sd –  just use what you have for the rest of the post. Try this command in your terminal.

~$ ls -l /dev/disk/by-path/ | grep -v usb | grep -v [0-9]$

On my Desktop, this brings our output down to:

pci-0000:00:06.0-scsi-0:0:0:0 -> ../../sdd
pci-0000:00:06.0-scsi-0:0:1:0 -> ../../sde
pci-0000:00:08.0-scsi-0:0:0:0 -> ../../sda
pci-0000:00:08.1-scsi-0:0:0:0 -> ../../sdb
pci-0000:00:08.1-scsi-1:0:0:0 -> ../../sdc

Those are my two internal hard drives so those are the ones I need to query to find out their their information to compare to the Seagate site.
Now at this point we want to remember our drive devices.  Just make a list of the last three letters prefaced with /dev  so for me.

We can do that in the shell by using sed and lets sort them while we are at it.

~$ ls -l /dev/disk/by-path/ | grep -v usb | grep -v [0-9]$ | sed "s/^.*\./\/dev/g" | sort

This gives us:

/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde

The easiest way I know to get the information we need is by using the hdparm tool that is built into most Linux systems.  Two different hdparm commands will provide the information we want.  If you want to see a lot of information in a very pretty format try (substi:

~$ sudo hdparm -I /dev/sda | more

This gives us all kinds of data about that drive:

/dev/sda:

ATA device, with non-removable media
Model Number:       ST3750640AS
Serial Number:      5QD2DLC0
Firmware Revision:  3.AAE
Standards:
Supported: 7 6 5 4
Likely used: 7
Configuration:
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: 1465149168
device size with M = 1024*1024:      715404 MBytes
device size with M = 1000*1000:      750156 MBytes (750 GB)
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, no device specific minimum
R/W multiple sector transfer: Max = 16    Current = 16
Recommended acoustic management value: 254, current value: 0
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
Commands/features:
Enabled    Supported:
*    SMART feature set
Security Mode feature set
*    Power Management feature set
*    Write cache
*    Look-ahead
*    Host Protected Area feature set
*    WRITE_BUFFER command
*    READ_BUFFER command
*    DOWNLOAD_MICROCODE
SET_MAX security extension
*    48-bit Address feature set
*    Device Configuration Overlay feature set
*    Mandatory FLUSH_CACHE
*    FLUSH_CACHE_EXT
*    SMART error logging
*    SMART self-test
*    General Purpose Logging feature set
*    SATA-I signaling speed (1.5Gb/s)
*    Native Command Queueing (NCQ)
*    Phy event counters
Device-initiated interface power management
*    Software settings preservation
Security:
Master password revision code = 65534
supported
not    enabled
not    locked
frozen
not    expired: security count
not    supported: enhanced erase
Checksum: correct

The information we really want is in the top section:

Model Number:       ST3750640AS
Serial Number:      5QD2DLC0
Firmware Revision:  3.AAE

If you only have a couple of drives you can just repeat the hdparm -I /dev/DRIVE for each drive and then use that information to compare to the affected model numbers listed below.  With as many drives as I have, I want to use a different hdparm parameter.  This one outputs much of the same information, but in a more condensed format:

~$ sudo hdparm -i /dev/sda

This time we get back:

/dev/sda:
Model=ST3750640AS, FwRev=3.AAE, SerialNo=5QD2DLC0
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs RotSpdTol>.5% }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=4
BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=1465149168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 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

As you can see, the line starting with Model= has all the information we need.  The rest of the output is nice, but not needed.   We can clean this up and get just what we need by building this command:

TEMPLATE:  sudo hdparm -i /dev/[hs]d[DRIVES] | grep -A 2 dev | sort | uniq | grep Model

In the above line you should replace [DRIVES] with your drive designation letters.  In my case, I want to see the results of /dev/sda, /dev/sdb, /dev/sdc, /dev/sdd, and /dev/sde. So I will replace [DRIVE] with [abcde] in this command:

~$ sudo hdparm -i /dev/[hs]d[abcde] | grep -A 2 dev | sort | uniq | grep Model

This gives me:

Model=ST3750640A, FwRev=3.AAE, SerialNo=5QD3VYA7
Model=ST3750640A, FwRev=3.AAE, SerialNo=5QD4E17G
Model=ST3750640AS, FwRev=3.AAE, SerialNo=5QD1MCM8
Model=ST3750640AS, FwRev=3.AAE, SerialNo=5QD2DLC0
Model=WDC WD7500AACS-00ZJB0, FwRev=01.01B01, SerialNo=WD-WCASJ1008654

Using this information, we need to check the list of Seagate models.  The  models listed below are current as of January 18, 2009.  You may want to visit the Seagate page here in case they add addtional affected models.

Barracuda 7200.11
ST31000340AS
ST31000640AS
ST3750330AS
ST3750630AS
ST3640330AS
ST3640630AS
ST3500320AS
ST3500620AS
ST3500820AS
ST31500341AS
ST31000333AS
ST3640323AS
ST3640623AS
ST3320613AS
ST3320813AS
ST3160813AS

Barracuda ES.2 SATA
ST31000340NS
ST3750330NS
ST3500320NS
ST3250310NS

DiamondMax 22
STM31000340AS
STM31000640AS
STM3750330AS
STM3750630AS
STM3500320AS
STM3500620AS
STM3500820AS
STM31000334AS
STM3320614AS
STM3160813AS

If you are the proud owner of one of these models you will want to follow these instructions from Seagate:

If you have one of the models listed above, Customers can expedite assistance by contacting Seagate via email. Please include the following disk drive information: model number, serial number and current firmware revision.  We will respond, promptly, to your email request with appropriate instructions.

Or you can call Seagate Support at 1-800-SEAGATE.  Please be prepared to give the serial number of your drive as the solution depends on knowing the exact serial number.

For a list of international telephone numbers to Seagate Support and alternative methods of contact, please access http://www.seagate.com/www/en-us/about/contact_us/


Tags: