Provided by: sg3-utils_1.46-1ubuntu0.22.04.1_amd64 bug

NAME

       sg_map26 - map SCSI generic (sg) device to corresponding device names

SYNOPSIS

       sg_map26   [--dev_dir=DIR]   [--given_is=0|1]   [--help]   [--result=0|1|2|3]  [--symlink]
       [--verbose] [--version] DEVICE

DESCRIPTION

       Maps a special file (block or char) associated with a SCSI  device  to  the  corresponding
       SCSI  generic  (sg)  device,  or  vice versa.  Can also be given a sysfs file, for example
       '/sys/block/sda' or '/sys/block/sda/dev'.

       Rather than map to or from a sg device, the  sysfs  file  name  matching  a  given  device
       special  file  (or  vice  versa)  can  be  requested.  This  is done with '--result=2' and
       '--result=3'.  This feature works on ATA devices (e.g. 'dev/hdc') as well as SCSI devices.

       In this utility, "mapped" refers to finding the relationship between a SCSI  generic  (sg)
       node  and  the  higher  level  SCSI device name; or vice versa. For example '/dev/sg0' may
       "map" to '/dev/sda'.  Mappings may not exist, if a relevant  module  is  not  loaded,  for
       example.  Also there are SCSI devices that can only be accessed via a sg node (e.g. SAF-TE
       and some SES devices).

       In this utility, "matching"  refers  to  different  representations  of  the  same  device
       accessed  via  the same driver. For example, '/dev/hdc' and '/sys/block/hdc' usually refer
       to the same device and thus would be  considered  matching.  A  related  example  is  that
       '/dev/cdrom'  and  '/dev/hdc' are also considered matching if '/dev/cdrom' is a symlink to
       '/dev/hdc'.

OPTIONS

       Arguments to long options are mandatory for short options as well.

       -d, --dev_dir=DIR
              where DIR is the directory to search for resultant  device  special  files  in  (or
              symlinks  to same). Only active when '--result=0' (the default) or '--result=2'. If
              this option is not given and DEVICE is a device special  file  then  the  directory
              part of DEVICE is assumed.  If this option is not given and DEVICE is a sysfs name,
              then if necessary '/dev' is assumed as the directory.

       -g, --given_is=0 | 1
              specifies the DEVICE is either a device special file (when the argument is 0), or a
              sysfs  'dev'  file  (when the argument is 1). The parent directory of a sysfs 'dev'
              file is also accepted (e.g.  either '/sys/block/sda/dev'  or  '/sys/block/sda'  are
              accepted).  Usually  there  is no need to give this option since this utility first
              checks for special files (or symlinks to special files) and if not, assumes it  has
              been  given  a  sysfs  'dev'  file (or its parent). Generates an error if given and
              disagrees with variety of DEVICE.

       -h, --help
              output the usage message then exit.

       -r, --result=0 | 1 | 2 | 3
              specifies what variety of file (or files) that this utility  tries  to  find.   The
              default  is  a  "mapped"  device  special  file,  when the argument is 0.  When the
              argument is 1, this utility tries to find the "mapped" sysfs node  name.  When  the
              argument  is 2, this utility tries to find the "matching" device special file. When
              the argument is 3, this utility tries to find the "matching" sysfs node name.

       -s, --symlink
              when a device special file is being sought (i.e. when '--result=0' (the default) or
              '--result=2')  then  also look for symlinks to that device special file in the same
              directory.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output).

       -V, --version
              print the version string and then exit.

NOTES

       This utility is designed for the Linux 2.6 (and later) kernel  series.   It  uses  special
       file major and minor numbers (and whether the special is block or character) together with
       sysfs to do its mapping or matching. In the  absence  of  any  other  information,  device
       special  files  are  assumed  to  be  in the '/dev' directory while sysfs is assumed to be
       mounted at '/sys'. Device names in sysfs are predictable, given  the  corresponding  major
       and  minor  number  of  the device. However, due to udev rules, the name of device special
       files  can  be   anything   the   user   desires   (e.g.   '/dev/sda'   could   be   named
       '/dev/my_boot_disk').  When  trying  to find a resultant device special file, this utility
       uses the major and minor numbers (and whether a block or char device is sought) to  search
       the device directory.

       This  utility  only  shows  one  relationship  at  a  time. To get an overview of all SCSI
       devices, with special file names and optionally the  "mapped"  sg  device  name,  see  the
       lsscsi utility.

EXAMPLES

       Assume sg2 maps to sdb while dvd, cdrom and hdc are all matching.

         # sg_map26 /dev/sg2
         /dev/sdb

         # sg_map26 /dev/sdb
         /dev/sg2

         # sg_map26 --result=0 /dev/sdb
         /dev/sg2

         # sg_map26 --result=3 /dev/sdb
         /sys/block/sda

         # sg_map26 --result=1 /dev/sdb
         /sys/class/scsi_generic/sg0

       Now look at '/dev/hdc' and friends

         # sg_map26 /dev/hdc
         <error: a hd device does not map to a sg device>

         # sg_map26 --result=3 /dev/hdc
         /sys/block/hdc

         # sg_map26 --result=2 /dev/hdc
         /dev/hdc

         # sg_map26 --result=2 --symlink /dev/hdc
         /dev/cdrom
         /dev/dvd
         /dev/hdc

         # sg_map26 --result=2 --symlink /sys/block/hdc
         /dev/cdrom
         /dev/dvd
         /dev/hdc

EXIT STATUS

       The exit status of sg_map26 is 0 when it is successful. Otherwise see the sg3_utils(8) man
       page.

AUTHORS

       Written by Douglas Gilbert.

REPORTING BUGS

       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT

       Copyright © 2005-2012 Douglas Gilbert
       This software is distributed under a FreeBSD license. There is NO warranty; not  even  for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       udev(7), lsscsi(lsscsi)