| .TH SG_MAP26 "8" "November 2012" "sg3_utils\-1.35" SG3_UTILS |
| .SH NAME |
| sg_map26 \- map SCSI generic (sg) device to corresponding device names |
| .SH SYNOPSIS |
| .B sg_map26 |
| [\fI\-\-dev_dir=DIR\fR] [\fI\-\-given_is=\fR0|1] [\fI\-\-help\fR] |
| [\fI\-\-result=\fR0|1|2|3] [\fI\-\-symlink\fR] [\fI\-\-verbose\fR] |
| [\fI\-\-version\fR] \fIDEVICE\fR |
| .SH DESCRIPTION |
| .\" Add any additional description here |
| .PP |
| 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'. |
| .PP |
| 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. |
| .PP |
| 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). |
| .PP |
| 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'. |
| .SH OPTIONS |
| Arguments to long options are mandatory for short options as well. |
| .TP |
| \fB\-d\fR, \fB\-\-dev_dir\fR=\fIDIR\fR |
| where \fIDIR\fR 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 \fIDEVICE\fR is |
| a device special file then the directory part of \fIDEVICE\fR is assumed. |
| If this option is not given and \fIDEVICE\fR is a sysfs name, then if |
| necessary '/dev' is assumed as the directory. |
| .TP |
| \fB\-g\fR, \fB\-\-given_is\fR=0 | 1 |
| specifies the \fIDEVICE\fR 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 \fIDEVICE\fR. |
| .TP |
| \fB\-h\fR, \fB\-\-help\fR |
| output the usage message then exit. |
| .TP |
| \fB\-r\fR, \fB\-\-result\fR=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. |
| .TP |
| \fB\-s\fR, \fB\-\-symlink\fR |
| 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. |
| .TP |
| \fB\-v\fR, \fB\-\-verbose\fR |
| increase the level of verbosity, (i.e. debug output). |
| .TP |
| \fB\-V\fR, \fB\-\-version\fR |
| print the version string and then exit. |
| .SH 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. |
| .PP |
| 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. |
| .SH EXAMPLES |
| Assume sg2 maps to sdb while dvd, cdrom and hdc are all matching. |
| .PP |
| # sg_map26 /dev/sg2 |
| .br |
| /dev/sdb |
| .PP |
| # sg_map26 /dev/sdb |
| .br |
| /dev/sg2 |
| .PP |
| # sg_map26 \-\-result=0 /dev/sdb |
| .br |
| /dev/sg2 |
| .PP |
| # sg_map26 \-\-result=3 /dev/sdb |
| .br |
| /sys/block/sda |
| .PP |
| # sg_map26 \-\-result=1 /dev/sdb |
| .br |
| /sys/class/scsi_generic/sg0 |
| .PP |
| Now look at '/dev/hdc' and friends |
| .PP |
| # sg_map26 /dev/hdc |
| .br |
| <error: a hd device does not map to a sg device> |
| .PP |
| # sg_map26 \-\-result=3 /dev/hdc |
| .br |
| /sys/block/hdc |
| .PP |
| # sg_map26 \-\-result=2 /dev/hdc |
| .br |
| /dev/hdc |
| .PP |
| # sg_map26 \-\-result=2 \-\-symlink /dev/hdc |
| .br |
| /dev/cdrom |
| .br |
| /dev/dvd |
| .br |
| /dev/hdc |
| .PP |
| # sg_map26 \-\-result=2 \-\-symlink /sys/block/hdc |
| .br |
| /dev/cdrom |
| .br |
| /dev/dvd |
| .br |
| /dev/hdc |
| .SH EXIT STATUS |
| The exit status of sg_map26 is 0 when it is successful. Otherwise see |
| the sg3_utils(8) man page. |
| .SH AUTHORS |
| Written by Douglas Gilbert. |
| .SH "REPORTING BUGS" |
| Report bugs to <dgilbert at interlog dot com>. |
| .SH COPYRIGHT |
| Copyright \(co 2005\-2012 Douglas Gilbert |
| .br |
| This software is distributed under a BSD\-2\-Clause license. There is NO |
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
| .SH "SEE ALSO" |
| .B udev(7), lsscsi(lsscsi) |