bionic (8) scsidev.8.gz

Provided by: scsitools_0.12-3ubuntu1_amd64 bug

NAME

       scsidev - populate /dev/scsi with device names that are persistent against SCSI configuration changes.

SYNOPSIS

       scsidev  [ -f ] [ -n ] [ -d ] [ -l ] [ -L ] [ -m mode ] [ -c mxms ] [ -A aliasfile ] [ -r ] [ -M ] [ -e ]
       [ -o ] [ -s ] [ -v ] [ -q ] [ -h ]

DESCRIPTION

       scsidev is a utility that is used to guarantee that the same device node can be used for  the  same  scsi
       device,  no  matter  what other scsi devices are added or removed from the scsi chain.  The need for this
       tool arose because device numbers are assigned dynamically at boot time, and if a new disk were added  to
       the system (or if some disk didn't spin up), then fixed device nodes would cause the wrong filesystems to
       be mounted, checked, etc.  This can also result  in  security  holes,  as  some  device  nodes  may  have
       permissions  that allow general users access to the raw device, and if the mappings were to change, users
       would be able to access different devices.

       scsidev is designed to be used once each time the system boots.  It will scan all of the detected devices
       on  the system, and determine a immutable name that will represent the device.  It first checks to see if
       a node by this name already exists - if this is the case, then  it  checks  to  see  if  the  major/minor
       numbers  are correct.  If a change in the minor number is required, then a new device is created with the
       correct major/minor numbers, and in addition, any ownership  and  permissions  for  the  old  device  are
       applied to the new device.

       Once  this process is complete, then scsidev will scan all of the entries in the /dev/scsi directory, and
       see if any of them are for devices nodes  which  were  added  for  devices  that  are  not  active.   The
       permissions  of  inactive  devices  are  stored  in  a  .shadow. file and the device node is removed as a
       security precaution, since these might have permissions that would allow people to  access  devices  that
       they should not be able to access.  This is the default behaviour and is considered ideal for most cases,
       as it preserves the ownership and permissions of the files and is secure.

       The so called sanitizing can be influenced by the options -f -d -n.

       When you rescan the bus by using the rescan-scsi-bus.sh script or manually by using commands like
       echo "scsi add-single-device C B T U" >/proc/scsi/scsi
       (C = Controller (host) no., B = Bus (Channel), T = Target (SCSI ID), U  =  Unit  (SCSI  LUN))  after  the
       system  is  booted,  then  you will have to rerun scsidev so that the device nodes for the newly detected
       devices are properly updated.

       The device nodes that scsidev creates look something like "sdh4-334c0i0l0p1".  In this case, the  various
       components  of the name represent physical attributes about the device or the host adapter to which it is
       connected.  To begin with, the "h4" indicates that it is connected to an Adaptec 1542.  The "-334"  is  a
       means of identifying which 1542 the device is attached to (since linux supports more than one 1542 in the
       system at the same time) and (in this case) corresponds to the IO Port number  (hex)  of  the  controller
       (this  is  the host adapter id number).  The "c0" represents the channel number (since some host adapters
       can drive multiple scsi busses).  The "i0l0" indicates that this  device  is  scsi  ID  0,  with  lun  0.
       Finally the "p1" indicated partition number 1.

OPTIONS

       -f     Flush  everything  from  /dev/scsi  prior  to  scanning the detected devices.  This means that new
              device nodes will be created even if the old ones were OK.

       -d     Sanitize by deletion. The .shadow. backup files will not be created, so you loose all  non-default
              ownership/permissions that may have been set.

       -n     Don't touch device nodes for non-existing SCSI devices.  This might have security implications and
              is therefore not recommended.

       -l     Symbolic link mode.  Instead of creating nodes, symbolic links are  created  which  point  to  the
              older  /dev/sda1  types  of  device nodes. When using this option, the permissions of the /dev/XXX
              device nodes will be changed to match the ones stored in /dev/scsi/YYY file, if present.

       -L     Use symbolic names for the aliases assigned through the /etc/scsi.alias settings (see below).

       -m mode
              Specifies the mode (permissions) for new entries that need to be created.

       -c maxmiss
              Normally, if scsidev fails to open a generic scsi device, it finishes its scan for  devices.  With
              this option, it goes on until maxmiss missing devices were found.  This is only used, if you don't
              have the /proc/scsi/scsi extensions for large disks.

       -A aliasfile
              Use an alternative file instead of the default /etc/scsi.alias (see below).

       -r     scsidev does first probe the generic and then -- if appropriate --  the  other  highlevel  devices
              (st,  sd,  sr). For removable devices (sd, sr, osst), this will fail, if no medium is inserted, so
              scsidev can not ensure, that the device actually  corresponds  to  the  one  reported  by  the  sg
              interface.  After  the  first  device  scan,  the situation is clear and scsidev will do the right
              guesses. So using -r in bootup scripts is safe. After you removed devices from your  SCSI  config,
              it  isn't  safe any longer.  This is only needed, if you don't have the /proc/scsi/scsi extensions
              for large disks.

       -M     Multipath support.  scsidev normally does complain if a line in scsi.alias matches more  than  one
              device  and  does  not create an alias then. With multipatch support on, it just creates the alias
              for the first device found matching the description in the scsi.alias description.

       -e     Instructs scsidev to use devfs like names, i.e. using the  cbtu  (controller,  bus,  target  unit)
              characters instead of hcil (host, channel, scsi Id, scsi Lun) to build the device name.

       -o     Instructs  scsidev  to  use  scd  instead  of sr for the old names of CD-ROM devices (relevant for
              symlink mode).

       -s     Tells scsidev
               to print out the device serial numbers of all detected devices on the system. This string can  be
              useful for forming aliases.  If supported, also the WWID is printed.

       -v     Verbosity.  Mainly used for debugging purposes.  Use multiple times for more verbosity.

       -q     Be Quiet.  Only produce output, if there are errors.

       -h     Output short usage summary and copyright info and exit.

ALIASES

       It was intended that scsidev be useful without any configuration at all.  There are times when it is much
       more convenient to have symbolic names for various devices.  These symbolic names should track devices as
       they get moved from controller to another, or even if the SCSI id number is changed.

       The  general  idea  is  that  there  is a configuration file /etc/scsi.alias which lists the aliases that
       scsidev will attempt to create.  Each line represents a separate alias,  and  consists  of  a  series  of
       tokens.  Here are a couple of example entries:
       serial_number="DX908FK", devtype=disk, alias=fourgig
       manufacturer=WANGTEK, devtype=tape, alias=qictape
       id=2, devtype=generic, alias=cdwriter
       The  minimum requirements are that each line have a alias and a devtype field.  The alias will be used to
       build the pathnames, and the devtype must be one of disk, tape, osst, cdrom or generic.

       The additional qualifiers are optional, and you must specify a sufficient number of them  such  that  the
       alias will match only one device.  The allowable qualifiers are:

       manufacturer=
              Specifies the name of the manufacturer.  This is the same string that is printed at boot time, and
              is also available through /proc/scsi.

       model= Specifies the model number of the device.  This is the same string that is printed at  boot  time,
              and is also available through /proc/scsi.

       rev=   Specifies the revision string of the device. This is the same string that is printed at boot time,
              and is also available through /proc/scsi.

       serial_number=
              Specifies the serial number of the device.  Not all devices implement this, but for those that  do
              it  provides  a  convenient mechanism to uniquely identify a device no matter where it is found on
              the scsi chain. The serial number is the one reported in INQUIRY page  0x80  with  EVPD=1.  It  is
              displayed by scsidev -s .

       wwid=  Specifies  the  WWID  number  of  a  device.  This  is  a 64bit world wide unique number, which is
              supported by SCSI-3 devices and reported via INQUIRY page 0x83 with  EVPD=1.  If  supported,  it's
              displayed by scsidev -s .

       id=    Specifies the scsi id number for the device.

       lun=   Specifies  the  lun  for the device.  Most devices have a lun of 0, and it is only special devices
              such as cd changers that implement multiple lun devices.

       chan=  Specifies which channel (i.e. which bus) for host adapters that drive multiple channels.

       partition=
              Specifies the partition number for  disk  drives.   If  unspecified,  the  alias  will  match  all
              partitions on the disk.

       hostid=
              Specifies the host adapter id number (0x334 part of sdh4-334c0i0l0p1 for example).

       hostnum=
              Specifies  the  unique  number  that  each  host adpater driver returns.  Generally this number is
              always 0 except for cases where the driver supports more than one device of a given  type  on  the
              system.

       hostname=
              Specifies  the  host adapter driver name. (Only the given chars need to match, so you may omit the
              version number.)

       Note that the specifiers which take string arguments can be quoted if the string contains whitespace.

       For disks, aliases for all partitions will be created (unless partition= is specified). The names  get  a
       -pN  suffix  (N  indicating  the number of the partition. For tapes (st and osst type), the non-rewinding
       variant with an n prepended will be created automatically.

AUTHOR

       scsidev
        ... was written by Eric Youngdale <eric@aib.com>
        ... was enhanced by Kurt Garloff <garloff@suse.de>

BUGS

       Probably there are ...

       The BIOS and LILO do not have the knowledge about the SCSI devices at boot time, so  you  still  have  to
       ensure, your kernel can be loaded when you insert a new disk.

       This  program  is  free  software. You can use it under the terms of the GNU GPL (General Public License)
       Version 2 (or any later version, at your option).  Note, that the GNU  GPL  implies,  that  there  is  NO
       WARRANTY at all.  Full text of the GPL can be found in /usr/share/common-licenses/GPL file.

AVAILABILITY

       scsidev is available from
       http://www.suse.de/~garloff/linux/scsidev/
       and
       http://www.garloff.de/kurt/linux/scsidev/
       and will also be put on standard anonymous ftp servers.
       The old version is available from
       ftp://tsx-11.mit.edu/pub/linux/BETA/scsi/