There 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:
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 |
Barracuda ES.2 SATA |
DiamondMax 22 |
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/