Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm running FreeBSD 7.2, with Seagate Cheetah (Model ST####) drives.

We are having some problems with the SCSI drives on these machines. Our vendor says that updating the firmware on the drives may fix the problems, and a firmware update did seem to fix some SCSI problems on another FreeBSD host.

How can I view the firmware version of these drives? I tried some tips from nixCraft, but nothing has worked so far. In dmesg, I see the Make and Model, but no firmware revision.

In Linux, this information is often in /var/log/dmesg (Although /var/log/dmesg is sometimes out of date), or I often find this information with something like sudo lshw -class disk, lshal or dmidecode.

Update: Wed May 26 12:00:09 PDT 2010

Well, turns out I was wrong. Or a little misled. 'dmesg' will show the firmware version, provided that the files at /var/log/dmesg.today and /var/log/dmesg.yesterday haven't been clobbered by the log rotation. I also didn't recognize that '0003' stood for the firmware revision.

# grep -i seagate /var/log/*
/var/log/dmesg.today:da2: <SEAGATE ST3300655LC 0003> Fixed Direct Access SCSI-3 device 
/var/log/dmesg.today:da3: <SEAGATE ST3300655LC 0003> Fixed Direct Access SCSI-3 device

The fields listed here are <"Make" "Model" "Firmware">.

share|improve this question

1 Answer 1

up vote 3 down vote accepted

Much like on Linux this data may be in your dmesg output (depending on your disk controller: a hardware RAID controller may not pass the firmware data through for an array).

If it's not you can install dmidecode from ports (sysutils/dmidecode) - that should get you what you need. ipmitool is also an option, but probably less likely to get you the data you're looking for.

If you're using a hardware RAID controller your controller firmware will probably tell you what firmware the drives are running, but flashing the drives would be a different can of worms...

share|improve this answer
You are right! It is in dmesg, provided that /var/log/dmesg.today and /var/log/dmesg.yesterday are not out of date (Unfortunately, the /var/log/dmesg.* files on my test system are from March...) –  Stefan Lasiewski May 26 '10 at 18:59
Yup - dmesg output tends to get stale. When I'm looking for this kind of data I tend to bounce the system in a maintenance window to make sure I'm not looking at something way out of date (especially with hot-swap disks) –  voretaq7 May 26 '10 at 20:58
On a default FreeBSD installation, the dmesg messages from boot should be recorded in /var/run/dmesg.boot. –  coneslayer May 28 '10 at 17:42

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.