Re: SCSI vs SATA

From: Robert Hancock
Date: Mon Jul 23 2007 - 12:27:24 EST


BuraphaLinux Server wrote:
Hello,

I have had a hard time determining if /dev/sda is SCSI or SATA
from my boot scripts. It matters for smartd which needs an added
parameter -d sat in the configuration file for SATA drives. Finally I
came up with this, but I wonder if there is a better way? It appears
that
vendor is "ATA " (5 trailing spaces) for SATA. If the kernel is
ever fixed to show proper vendor information (Maxtor, Seagate,
whatever) then how can I know if /dev/sda is SCSI or SATA from a bash
script? When flaming me, please also include the proper solution.
Thanks.

#! /bin/bash
drive="sda"
vendor=$(</sys/block/${drive}/device/vendor)
if [[ "${vendor}" = "ATA " ]]
then
printf "SATA\n"
else
printf "SCSI\n"
fi
exit 0

libata follows the SAT standard for ATA device identification as a SCSI device, which specifies the vendor is always supposed to be ATA. Checking for vendor ATA is likely safe then, though if it's not you can't assume it's going to be SCSI as it could also be USB, IEEE1394, etc.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/