.TH SG_LUNS "8" "January 2020" "sg3_utils\-1.45" SG3_UTILS
.SH NAME
sg_luns \- send SCSI REPORT LUNS command or decode given LUN
.SH SYNOPSIS
.B sg_luns
[\fI\-\-decode\fR] [\fI\-\-help\fR] [\fI\-\-hex\fR] [\fI\-\-linux\fR]
[\fI\-\-lu_cong\fR] [\fI\-\-maxlen=LEN\fR] [\fI\-\-quiet\fR] [\fI\-\-raw\fR]
[\fI\-\-readonly\fR] [\fI\-\-select=SR\fR] [\fI\-\-verbose\fR]
[\fI\-\-version\fR] \fIDEVICE\fR
.PP
.B sg_luns
\fI\-\-test=ALUN\fR [\fI\-\-decode\fR] [\fI\-\-hex\fR] [\fI\-\-lu_cong\fR]
[\fI\-\-verbose\fR]
.SH DESCRIPTION
.\" Add any additional description here
.PP
In the first form shown in the SYNOPSIS this utility sends the SCSI REPORT
LUNS command to the \fIDEVICE\fR and outputs the response. The response
should be a list of LUNs ("a LUN inventory") for the I_T nexus associated
with the \fIDEVICE\fR. Roughly speaking that is all LUNs that share the
target device that the REPORT LUNS command is sent through. This command
is defined in the SPC\-3 and SPC\-4 SCSI standards and its support is
mandatory. The most recent draft if SPC\-6 revision 1.
.PP
When the \fI\-\-test=ALUN\fR option is given (the second form in the
SYNOPSIS), then the \fIALUN\fR value is decoded as outlined in various
SCSI Architecture Model (SAM) standards and recent drafts (e.g. SAM\-6
revision 2, section 4.7) .
.PP
Where required below the first form shown in the SYNOPSIS is called "device
mode" and the second form is called "test mode".
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-d\fR, \fB\-\-decode\fR
decode LUNs into their component parts, as described in the LUN section
of SAM\-3, SAM\-4 and SAM\-5.
.br
[test mode] \fIALUN\fR is decoded irrespective of whether this option is
given or not. If this option is given once then the given \fIALUN\fR is
output in T10 preferred format (which is 8 pairs of hex digits, each
separated by a space). If given twice then the given \fIALUN\fR is output
in an alternate T10 format made up of four quads of hex digits with each
quad separated by a "-" (e.g. C101\-0000\-0000\-0000).
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit.
.TP
\fB\-H\fR, \fB\-\-hex\fR
[device mode] when given once this utility will output the SCSI
response (i.e. the data\-out buffer) to the REPORT LUNS command in ASCII
hex then exit. When given twice it causes \fI\-\-decode\fR to output
component fields in hex rather than decimal.
.br
[test mode] when this option is given, then decoded component fields of
\fIALUN\fR are output in hex.
.TP
\fB\-l\fR, \fB\-\-linux\fR
this option is only available in Linux. After the T10 representation of
each 64 bit LUN (in 16 hexadecimal digits), if this option is given then
to the right, in square brackets, is the Linux LUN integer in decimal.
If the \fI\-\-hex\fR option is given twice (e.g. \-HH) as well then the
Linux LUN integer is output in hexadecimal.
.TP
\fB\-L\fR, \fB\-\-lu_cong\fR
this option is only considered with \fI\-\-decode\fR. When given once
then the list of LUNs is decoded as if the LU_CONG bit was set in
each LU's corresponding INQUIRY response. When given twice the list of
LUNs is decoded as if the LU_CONG bit was clear in each LU's corresponding
INQUIRY response. When this option is not given and \fI\-\-decode\fR is
given then an INQUIRY is sent to the \fIDEVICE\fR and the setting of
its LU_CONG bit is used to decode the list of LUNs.
.br
[test mode] decode \fIALUN\fR as if the LU_CONG bit is set in its
corresponding standard INQUIRY response. In other words treat \fIALUN\fR
as if it is a conglomerate LUN. If not given (or given twice) then decode
\fIALUN\fR as if the LU_CONG bit is clear.
.TP
\fB\-m\fR, \fB\-\-maxlen\fR=\fILEN\fR
where \fILEN\fR is the (maximum) response length in bytes. It is placed in
the cdb's "allocation length" field. If not given (or \fILEN\fR is zero)
then 8192 is used. The maximum allowed value of \fILEN\fR is 1048576.
.TP
\fB\-q\fR, \fB\-\-quiet\fR
output only the ASCII hex rendering of each report LUN, one per line.
Without the \fI\-\-quiet\fR option, there is header information printed
before the LUN listing.
.TP
\fB\-r\fR, \fB\-\-raw\fR
output the SCSI response (i.e. the data\-out buffer) in binary (to stdout).
.TP
\fB\-R\fR, \fB\-\-readonly\fR
open the \fIDEVICE\fR read\-only (e.g. in Unix with the O_RDONLY flag).
The default is to open it read\-write.
.TP
\fB\-s\fR, \fB\-\-select\fR=\fISR\fR
\fISR\fR is placed in the SELECT REPORT field of the SCSI REPORT LUNS
command. The default value is 0. Hexadecimal values may be given with
a leading "0x" or a trailing "h". For detailed information see the
REPORT LUNS command in SPC (most recent is SPC\-4 revision 37 in section
6.33). To simplify, for the I_T nexus associated with the \fIDEVICE\fR, the
meanings of the \fISR\fR values defined to date for SPC\-4 are:
.br
  \fB0\fR : most luns excluding well known logical unit numbers
.br
  \fB1\fR : well known logical unit numbers
.br
  \fB2\fR : all luns accessible to this I_T nexus
.br
  \fB0x10\fR : only accessible administrative luns
.br
  \fB0x11\fR : administrative luns plus non-conglomerate luns (see SPC\-4)
.br
  \fB0x12\fR : if \fIDEVICE\fR is an administrative LU, then report its
.br
         lun plus its subsidiary luns
.PP
For \fISR\fR values 0x10 and 0x11, the \fIDEVICE\fR must be either LUN 0 or
the REPORT LUNS well known logical unit. Values between 0xf8 and
0xff (inclusive) are vendor specific, other values are reserved. This
utility will accept any value between 0 and 255 (0xff) for \fISR\fR .
.TP
\fB\-t\fR, \fB\-\-test\fR=\fIALUN\fR
\fIALUN\fR is assumed to be a hexadecimal number in ASCII hex or the
letter 'L' followed by a decimal number (see below). The hexadecimal number
can be up to 64 bits in size (i.e. 16 hexadecimal digits) and is padded to
the right if less than 16 hexadecimal digits are given (e.g.
\fI\-\-test=0122003a\fR represents T10 LUN: 01 22 00 3a 00 00 00 00).
\fIALUN\fR may be prefixed by '0x' or '0X' (e.g. the previous example could
have been \fI\-\-test=0x0122003a\fR). \fIALUN\fR may also be given with
spaces, tabs, or a '\-' between each byte (or other grouping (e.g.
c101\-0000\-0000\-0000)). However in the case of space or tab separators
the \fIALUN\fR would need to be surrounded by single or double quotes.
.br
In the leading 'L' case the, following decimal number (hex if preceded
by '0x') is assumed to be a Linux "word flipped" LUN which is converted
into a T10 LUN representation and printed. In both cases the number is
interpreted as a LUN and decoded as if the \fI\-\-decode\fR option had been
given. Also when \fIALUN\fR is a hexadecimal number it can have a
trailing 'L' in which case the corresponding Linux "word flipped" LUN value
is output. The LUN is decoded in all cases.
.br
The action when used with \fI\-\-decode\fR is explained under that option.
.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
The SCSI REPORT LUNS command is important for Logical Unit (LU) discovery.
After a target device is discovered (usually via some transport specific
mechanism) and after sending an INQUIRY command (to determine the LU_CONG
setting), a REPORT LUNS command should either be sent to LUN 0 (which
is Peripheral device addressing method with bus_id=0 and target/lun=0)
or to the REPORT LUNS well known LUN (i.e. 0xc101000000000000). SAM\-5
requires that one of these responds with an inventory of LUNS that are
contained in this target device.
.PP
In test mode, if the \fI\-\-hex\fR option is given once then in the decoded
output, some of the component fields are printed in hex with leading zeros.
The leading zeros are to indicate the size of the component field. For
example: in the Peripheral device addressing method (16 bits overall), the
bus ID is 6 bits wide and the target/LUN field is 8 bits wide; so both are
shown with two hex digits (e.g. bus_id=0x02, target=0x3a).
.SH EXAMPLES
Typically by the time user space programs get to run, SCSI LUs have been
discovered. In Linux the lsscsi utility lists the LUs that are currently
present. The LUN of a device (LU) is the fourth element in the tuple at the
beginning of each line. Below we see a target (or "I_T Nexus": "6:0:0") has
two LUNS: 1 and 49409. If 49409 is converted into T10 LUN format it is
0xc101000000000000 which is the REPORT LUNS well known LUN.
.PP
  # lsscsi \-g
.br
  [6:0:0:1]    disk    Linux    scsi_debug       0004  /dev/sdb   /dev/sg1
.br
  [6:0:0:2]    disk    Linux    scsi_debug       0004  /dev/sdc   /dev/sg2
.br
  [6:0:0:49409]wlun    Linux    scsi_debug       0004  \-          /dev/sg3
.PP
We could send a REPORT LUNS command (with \fISR\fR 0x0, 0x1 or 0x2) to any
of those file device nodes and get the same result. Below we use /dev/sg1 :
.PP
  # sg_luns /dev/sg1
.br
  Lun list length = 16 which imples 2 lun entry
.br
  Report luns [select_report=0x0]:
.br
      0001000000000000
.br
      0002000000000000
.PP
That is a bit noisy so cut down the clutter with \fI\-\-quiet\fR:
.PP
  # sg_luns \-q /dev/sg1
.br
  0001000000000000
.br
  0002000000000000
.PP
Now decode that LUN into its component parts:
.PP
  # sg_luns \-d \-q /dev/sg1
.br
  0001000000000000
.br
        Peripheral device addressing: lun=1
.br
  0002000000000000
.br
        Peripheral device addressing: lun=2
.PP
Now use \fI\-\-select=1\fR to find out if there are any well known
LUNs:
.PP
  # sg_luns \-q \-s 1 /dev/sg1
.br
  c101000000000000
.PP
So how many LUNs do we have all together (associated with the current
I_T Nexus):
.PP
  # sg_luns \-q \-s 2 /dev/sg1
.br
  0001000000000000
.br
  0002000000000000
.br
  c101000000000000
.PP
  # sg_luns \-q \-s 2 \-d /dev/sg1
.br
  0001000000000000
.br
        Peripheral device addressing: lun=1
.br
  0002000000000000
.br
        Peripheral device addressing: lun=1
.br
  c101000000000000
.br
        REPORT LUNS well known logical unit
.PP
The following example uses the \fI\-\-linux\fR option and is not available
in other operating systems. The extra number in square brackets is the
Linux version of T10 LUN shown at the start of the line.
.PP
  # sg_luns \-q \-s 2 \-l /dev/sg1
.br
  0001000000000000    [1]
.br
  0002000000000000    [2]
.br
  c101000000000000    [49409]
.PP
Now we use the \fI\-\-test=\fR option to decode LUNS input on the command
line (rather than send a REPORT LUNS command and act on the response):
.PP
  # sg_luns \-\-test=0002000000000000
.br
  Decoded LUN:
.br
    Peripheral device addressing: lun=2
.PP
  # sg_luns \-\-test="c1 01"
.br
  Decoded LUN:
.br
    REPORT LUNS well known logical unit
.PP
  # sg_luns \-t 0x023a004b \-H
.br
  Decoded LUN:
.br
    Peripheral device addressing: bus_id=0x02, target=0x3a
.br
    >>Second level addressing:
.br
      Peripheral device addressing: lun=0x4b
.PP
The next example is Linux specific as we try to find out what the
Linux LUN 49409 translates to in the T10 world:
.PP
  # sg_luns \-\-test=L49409
.br
  64 bit LUN in T10 preferred (hex) format:  c1 01 00 00 00 00 00 00
.br
  Decoded LUN:
.br
    REPORT LUNS well known logical unit
.PP
And the mapping between T10 and Linux LUN representations can be done the
other way:
.PP
  # sg_luns \-t c101L
.br
  Linux 'word flipped' integer LUN representation: 49409
.br
  Decoded LUN:
.br
    REPORT LUNS well known logical unit
.br
.SH EXIT STATUS
The exit status of sg_luns 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 2004\-2020 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 sg_inq(8)
