SCSI_ID(8) Linux Administrator's Manual SCSI_ID(8)
scsi_id - retrieve and generate a unique SCSI identifier
scsi_id queries a SCSI device via the SCSI INQUIRY vital product data
(VPD) page 0x80 or 0x83 and uses the resulting data to generate a value
that is unique across all SCSI devices that properly support page 0x80
or page 0x83.
If a result is generated it is sent to standard output, and the program
exits with a zero value. If no identifier is output, the program exits
with a non-zero value.
scsi_id is primarily for use by other utilities such as udev that
require a unique SCSI identifier.
By default all devices are assume black listed, the -g option must be
specified on the command line or in the config file for any useful be-
SCSI commands are sent directly to the device via the SG_IO ioctl
In order to generate unique values for either page 0x80 or page 0x83,
the serial numbers or world wide names are prefixed as follows.
Identifiers based on page 0x80 are prefixed by the character 'S', the
SCSI vendor, the SCSI product (model) and then the the serial number
returned by page 0x80. For example:
# scsi_id -p 0x80 -s /block/sdg
SIBM 3542 1T05078453
Identifiers based on page 0x83 are prefixed by the identifier type fol-
lowed by the page 0x83 identifier. For example, a device with a NAA
(Name Address Authority) type of 3 (also in this case the page 0x83
identifier starts with the NAA value of 6):
# /sbin/scsi_id -p 0x83 -s /block/sdg
Deprecated method: when called with only a single argument with-
out a leading -, runs in a hotplug mode, and expects the envi-
ronment variable DEVPATH to specify the corresponding sysfs
device. See section below on usage with udev.
-b The default behaviour - treat the device as black listed, and do
nothing unless a white listed device is found in the scsi_id
Instead of determining and creating a device node based on a
sysfs dev entry as done for the -s, send SG_IO commands to
device, such as /dev/sdc. This argument should also be used
when invoked via udev to avoid problems with creation of tempo-
rary files on not-yet writable directories.
Read configuration and black/white list entries from config-file
rather than the default /etc/scsi_id.config file.
-g Treat the device as white listed. The -g option must be speci-
fied on the command line or in the scsi_id configuration file
for scsi_id to generate any output.
-i Prefix the identification string with the driver model (sysfs)
bus id of the SCSI device.
-p 0x80 | 0x83
Use SCSI INQUIRY VPD page code 0x80 or 0x83. The default behav-
iour is to query the available VPD pages, and use page 0x83 if
found, else page 0x80 if found, else nothing.
Generate an id for the sysfs-device. The sysfs mount point must
not be included. For example, use /block/sd, not /sys/block/sd.
-u Reformat the output : replace all whitespaces by underscores
-v Generate verbose debugging output.
-V Display version number and exit.
USAGE WITH UDEV
If scsi_id is invoked with one argument without a leading -, it assumes
it is called for a hotplug event, and looks for the sysfs device in the
DEVPATH environment variable. This mode is deprecated, but available
for backwards compatibility.
If the DEVPATH environment variable is set, scsi_id assumes it has been
invoked via udev (or some other hotplug program), and all errors or
warnings are sent using syslog.
To determine the specific value needed in a RESULT key, use the -s
option, for example:
/sbin/scsi_id -s /block/sda
An example udev rule using scsi_id, that will name a block device and
any partitions for the device matching the scsi_id output of 312345:
BUS="scsi", PROGRAM="/sbin/scsi_id -d %N -s %p", RESULT="312345", NAME="disk%n"
/etc/scsi_id.config configuration and black/white list entries
Developed by Patrick Mansfield <patmansATus.com> based on SCSI ID
source included in earlier linux 2.5 kernels, sg_utils source, and SCSI
December 2003 SCSI_ID(8)