1lsscsi(8)                           LSSCSI                           lsscsi(8)
2
3
4

NAME

6       lsscsi - list SCSI devices (or hosts), list NVMe devices
7

SYNOPSIS

9       lsscsi  [--brief]  [--classic]  [--controllers]  [--device] [--generic]
10       [--help] [--hosts] [--kname] [--list] [--long] [--long-unit] [--lunhex]
11       [--no-nvme]  [--pdt]  [--protection]  [--protmode] [--scsi_id] [--size]
12       [--sysfsroot=PATH]  [--sz-lbs]   [--transport]   [--unit]   [--verbose]
13       [--version] [--wwn] [H:C:T:L]
14

DESCRIPTION

16       Uses  information  in sysfs (Linux kernel series 2.6 and later) to list
17       SCSI devices (or hosts) currently attached to the system. Many non-SCSI
18       storage devices (but not all) used the SCSI subsystem in Linux. In lss‐
19       csi version 0.30 support was added to list NVMe devices.
20
21       In single line per device (LU or NVMe  namespace)  mode,  the  default,
22       each  line starts with a 4 element tuple surrounded by square brackets.
23       For SCSI devices the first element 'H' is the host number,  the  second
24       element 'C' is the controller number, the third element 'T' is the tar‐
25       get number and the final element is the Logical Unit Number (LUN).  All
26       four  are  integers.  For NVMe namespaces see two paragraphs down. When
27       the --hosts option is given for SCSI devices the tuple  is  reduced  to
28       one element: the host number.
29
30       If  a H:C:T:L tuple is given as an argument on the command line then it
31       acts as a filter and only devices that match it are listed. The  colons
32       don't  have  to  be present, and '-', '*', '?' or missing components at
33       the end are interpreted as wildcards. The default  is  '*:*:*:*'  which
34       means  to  match devices (i.e.  Logical Units). Any filter string using
35       '*' of '?'  should be surrounded by single or  double  quotes  to  stop
36       shell  expansions.   If '-' is used as a wildcard then the whole filter
37       tuple should be prefixed by '-- ' to tell this  utility  there  are  no
38       more  options on the command line to be interpreted.  A leading '[' and
39       trailing ']' are permitted ( e.g. '[1:0:0]' matches all LUNs on 1:0:0).
40       May  also  be used to filter --hosts in which case only the H is active
41       and may be either a number or in the form "host<n>" where <n> is a host
42       number.
43
44       For  NVMe  devices and controllers almost all of the previous paragraph
45       applies. The main difference is that "N" appears in the 'H' (first) po‐
46       sition.   The 'C' position for NVMe is the controller's Linux generated
47       "char" device minor number which is the first number that appears in  a
48       typical  NVMe controller name, for example: "/dev/nvme2". The 'T' posi‐
49       tion for NVMe is the "CNTLID" value. The final 'L' position is the NVMe
50       namespace  identifier which is typically a sequential value starting at
51       1. The leading explicit "N" for NVMe devices  is  converted  internally
52       into  a  large  value (32,767) that should not interfere with any Linux
53       generated SCSI host number; it also means that the numeric sort used to
54       show hosts (controllers) and devices (LUs or logical units) will always
55       place NVMe devices and controllers after those that use the  SCSI  sub‐
56       system.  To  filter  using  a  H:C:T:L  argument  for NVMe controllers,
57       "hostN", "hostN:<num>", "N" or "N:<num>" may be used; when  no  "<num>"
58       is  given,  only NVMe controllers will be listed (i.e. it lists no SCSI
59       hosts (HBAs)).
60
61       By default in this  utility  device  node  names  (e.g.  "/dev/sda"  or
62       "/dev/root_disk")  are  obtained  by noting the major and minor numbers
63       for the listed  device  obtained  from  sysfs  (e.g.  the  contents  of
64       "/sys/block/sda/dev") and then looking for a match in the "/dev" direc‐
65       tory. This "match by major and minor" will allow devices that have been
66       given  a  different name by udev (for example) to be correctly reported
67       by this utility.
68
69       In some situations it may be useful to see the device  node  name  that
70       Linux  would produce by default, so the --kname option is provided.  An
71       example of where this may be useful is kernel error logs which tend  to
72       report disk error messages using the disk's default kernel name.
73

OPTIONS

75       Arguments  to long options are mandatory for short options as well. The
76       options are arranged in alphabetical order based  on  the  long  option
77       name.  Hyphenated long options can also take underscore, and vice versa
78       (e.g. --scsi_id or --scsi-id are acceptable).
79
80       -b, --brief
81              reduces one line per device output to the tuple and the  primary
82              device  name.  This may simplify scripts that process the output
83              of this utility. With the --generic option it will show on  each
84              line  the tuple (from which the bsg pass-through device name can
85              be deduced), the primary device name (which the block  subsystem
86              uses) and the sg device name (also a pass-through).
87              When the --pdt option is used together with this option the SCSI
88              Peripheral Device Type (PDT) is displayed in hex (with a leading
89              "0x")  between  the  tuple and the primary device name. For NVMe
90              namespaces "0x0" is displayed (for a disk or direct  access  de‐
91              vice).
92
93       -c, --classic
94              The   output   is   similar   to   that   obtained   from   'cat
95              /proc/scsi/scsi'
96
97       -C, --controllers
98              Lists NVMe controllers and SCSI hosts. This is a synonym for the
99              --hosts option.
100
101       -d, --device
102              After outputting the (probable) SCSI device name the device node
103              major  and  minor  numbers   are   shown   in   brackets   (e.g.
104              "/dev/sda[8:0]").
105
106       -g, --generic
107              Output  the  SCSI  generic device file name. Note that if the sg
108              driver is a module it may need to be loaded  otherwise  '-'  may
109              appear.
110              NVMe  does  not have generic (char) devices in the same sense as
111              SCSI.  Instead NVMe Admin, NVM (i.e. block type commands such as
112              Read  and Write) and MI (Management Interface (e.g. to an enclo‐
113              sure)) commands are all sent to the containing controller  whose
114              device name is shown when the --hosts option is used.
115              To  unclutter the single line per device mode the --brief option
116              combined with this option should help.
117
118       -h, --help
119              Output the usage message and exit.
120
121       -H, --hosts
122              List the SCSI hosts and NVMe controllers currently  attached  to
123              the  system.  If this option is not given (and the --controllers
124              option is not given) then SCSI  devices  (logical  units  (LUs))
125              followed by NVMe devices (namespaces) are listed.
126
127       -k, --kname
128              Use Linux default algorithm for naming devices (e.g. block major
129              8, minor 0 is "/dev/sda") rather than the "match  by  major  and
130              minor" in the "/dev" directory as discussed above.
131
132       -L, --list
133              Output additional information in <attribute_name>=<value> pairs,
134              one pair per line preceded by two spaces. This  option  has  the
135              same effect as '-lll'.
136
137       -l, --long
138              Output  additional  information for each SCSI device (host). Can
139              be used multiple times for more output in which case the shorter
140              option  form  is  more convenient (e.g. '-lll'). When used three
141              times (i.e. '-lll') outputs SCSI device  (host)  attributes  one
142              per   line;  preceded  by  two  spaces;  in  the  form  "<attri‐
143              bute_name>=<value>".
144
145       -U, --long-unit
146              Output logical unit name in full, if available. It replaces  the
147              normal  vendor, product and revision strings given in the single
148              logical unit per line mode. If no logical  unit  name  is  found
149              "none"  is  printed.  If  the  logical unit name is long (e.g. a
150              UUID) then following fields are pushed further to the  right  as
151              required.  This  option is functionally equivalent to the '-uuu'
152              option.
153              If the option is used twice (e.g. '-UU') then EUI, NAA, UUID and
154              T10  vendor  ID  formats are prefixed by "eui.", "naa.", "uuid."
155              and "t10." respectively.  Note that SCSI  name  format  used  by
156              iSCSI  should  already be prefixed by 'iqn.'. Using the '--unit'
157              option 4 or more times (e.g. '-uuuu') will have the same  action
158              as '-UU'.
159              --long_unit  is  also  an acceptable form when invoking this op‐
160              tion.
161
162       -x, --lunhex
163              when this option is used once the LUN in the tuple (at the start
164              of  each device line) is shown in "T10" format which is up to 16
165              hexadecimal digits. It is prefixed by "0x"  to  distinguish  the
166              LUN  from the decimal value shown in the absence of this option.
167              Also hierarchal LUNs are shown with a "_"  character  separating
168              the  levels.  For  example the two level LUN: 0x0355006600000000
169              will appear as 0x0355_0066. If this option is given twice  (e.g.
170              using the short form: '-xx') then the full 16 hexadecimal digits
171              are shown for each LUN, prefixed by "0x".
172              For NVMe, the namespace identifier (nsid) is shown  in  the  "L"
173              position.  The nsid is a 32 bit unsigned quantities with 0x0 and
174              0xffffffff reserved.  Without this option, the nsid is shown  in
175              decimal. When this option is used once the nsid is output in hex
176              with a lead 0x and with up to 3 leading zeros.  When this option
177              is used twice the nsid is output in hex with up to 7 leading ze‐
178              ros.
179
180       -N, --no-nvme
181              this option excludes NVMe devices and controllers for  the  out‐
182              put. This option may be needed to stop NVMe device output inter‐
183              fering with specific format output like that produced  when  the
184              --classic option is used.
185              To  only  show  NVMe  devices, use 'lsscsi N', to only show NVMe
186              controllers, use 'lsscsi -H N'.
187
188       -D, --pdt
189              this option displays the SCSI Peripheral Device  Type  (PDT)  in
190              hex  preceded  by  "0x".  For NVME namespaces "0x0' is displayed
191              which corresponds to a disk ("Direct Access Device" or SSD).  In
192              single  line output this hex PDT replaces the device type abbre‐
193              viation (e.g. "0x0     " replaces "disk    ") and appears  after
194              the tuple.
195
196       -p, --protection
197              Output target (DIF) and initiator (DIX) protection types.
198
199       -P, --protmode
200              Output  effective  protection information mode for each disk de‐
201              vice.
202
203       -i, --scsi_id
204              outputs   the   udev    derived    matching    id    found    in
205              /dev/disk/by-id/scsi*  .   This is only for disk (and disk like)
206              devices. If no match is found then "dm-uuid-mpath*"  and  "usb*"
207              are  searched in the same directory.  If there is still no match
208              then the /sys/class/block/<disk>/holders directory is  searched.
209              The  matching  id  is  printed  following  the device name (e.g.
210              /dev/sdc) and if there is no match "-" is output. Note that only
211              disk (like) devices are matched by this option; so, for example,
212              a SCSI enclosure will have an identifier of '-'.
213              Prior to revision 164 the first match  in  /dev/disk/by-id/scsi*
214              was printed. A change was added at that point to check for iden‐
215              tifiers in a specific order as some  are  considered  "stronger"
216              than others.  See the ORDER OF SCSI IDENTIFIERS section below.
217
218       -s, --size
219              Print  disk  capacity  in  human readable form. When given once,
220              normal base 10 SI units are used as a prefix for  'B'  which  is
221              bytes  (aka  octets).  For example MB, GB and TB stand for 10^6,
222              10^9 and 10^12 bytes respectively. When given twice, IEC 80000-3
223              prefixes  for  'B'  are used; for example MiB, GiB and TiB stand
224              for 2^20, 2^30  and  2^40  bytes  respectively.  The  output  is
225              rounded  to  3  or less significant figures in order to fit on a
226              single line.  It will also  output  the  size  of  RBC  devices,
227              CD/DVD  media  and  host managed ZBC disks. Host aware ZBC disks
228              have their "peripheral device type" set to 0 (the same as normal
229              disks) so their size is output.
230              If given three times (short form is the more convenient: '-sss')
231              then the disk capacity as a logical block count is  given.  This
232              is  an exact figure in decimal reported by the storage device at
233              discovery. Discovery is typically just after boot time, or  when
234              it was last attached if the storage device is removable.
235              To  unclutter the single line per device mode the --brief option
236              combined with this option should help.
237
238       -y, --sysfsroot=PATH
239              assumes sysfs is mounted at PATH instead of the default '/sys' .
240              If  this  option  is given PATH should be an absolute path (i.e.
241              start with '/').
242
243       -S, --sz-lbs
244              Print disk capacity as a number of logical blocks (which is  the
245              same  as  '-sss').  When used twice a comma is added followed by
246              the logical block size in bytes. It should be a number like  512
247              or 4096.
248              If the logical block size cannot be found (e.g. because the ver‐
249              sion of Linux predates  the  /sys/block/<dev_name>/queue  direc‐
250              tory) then the number of 512 byte blocks followed comma and then
251              '512' is output irrespective of what the true logical block size
252              of  the  device is. This special case action occurs whether this
253              option is given one or more times.
254              To unclutter the single line per device mode the --brief  option
255              combined with this option should help.
256
257       -t, --transport
258              Output transport information. This will be target related infor‐
259              mation or, if --hosts is given, initiator  related  information.
260              When  used  without  --list,  a name or identifier (or both) are
261              output on a single line, usually prefixed by the type of  trans‐
262              port.  For  devices this information replaces the normal vendor,
263              product and revision strings. When the  --list  option  is  also
264              given  then  additionally multiple lines of attribute_name=value
265              pairs are output, each indented by two spaces. See  the  section
266              on transports below.
267
268       -u, --unit
269              Output  logical unit name, if available. If this option is given
270              once or twice, then the 30 character  field  where  the  vendor,
271              product  and  revision strings are usually placed is expanded to
272              32 characters and replaced by the logical unit name. If no logi‐
273              cal  unit  name  is found "none" is printed.  The first found of
274              the NAA, EUI-64 or SCSI name string is output unless a SCSI name
275              string  is  found  and  the associated target port indicates the
276              iSCSI protocol, in which case the SCSI name string is preferred.
277              Finally  if  there  is no match on the above and a T10 Vendor ID
278              descriptor is found then it is used.
279              If the name cannot fit in the 32  character  field  then  it  is
280              truncated  to  the right and a trailing '_' character is used to
281              alert the reader to the truncation. The 32  character  width  is
282              chosen  since that is large enough to hold 16 byte NAA or EUI-64
283              identifiers. However SCSI name strings as used by iSCSI  can  be
284              larger than that.
285              If  this option is used twice then this field is also 32 charac‐
286              ter wide. If the logical unit name cannot fit then  it  will  be
287              truncated  to  the  left  and a leading '_' character is used to
288              alert the reader to the truncation.
289              If this option is used three times the whole logical  unit  name
290              is output, followed by several spaces.
291              In  order  for this option to work, it needs a Linux kernel from
292              and including 3.15 . It accesses the sysfs vpd_pg83 file for the
293              device  in  question.  Old SCSI and ATA (SATA) equipment may not
294              provide this information. If it is provided by ATA  (SATA)  then
295              it will be the WWN.
296
297       -v, --verbose
298              outputs directory names where information is found. Use multiple
299              times for more output.
300
301       -V, --version
302              outputs version information then exits. If used once outputs  to
303              stderr; if used twice outputs to stdout and shortens the date to
304              yyyymmdd numeric format. The first number in the version  string
305              is the release number.
306
307       -w, --wwn
308              outputs the WWN for disks instead of manufacturer, model and re‐
309              vision (or instead of transport  information).  The  World  Wide
310              Name  (WWN)  is typically 64 bits long (16 hex digits) but could
311              be up to 128 bits long. To indicate the WWN is  hexadecimal,  it
312              is  prefixed by "0x". The ATA/SATA WWN is referred to as LU name
313              in SCSI jargon; hence this option is more or less superseded  by
314              the --unit and --long-unit options.
315

TRANSPORTS

317       This  utility  lists SCSI devices which are known as logical units (LU)
318       in the SCSI Architecture Model (ref: SAM-5 at  https://www.t10.org)  or
319       hosts  when  the --hosts option is given. A host is called an initiator
320       in SAM-5. A SCSI command travels out  via  an  initiator,  across  some
321       transport  to a target and then onwards to a logical unit. A target de‐
322       vice may contain several logical units. A target device has one or more
323       ports  that can be viewed as transport end points. Each FC and SAS disk
324       is a single target that has two ports and contains one logical unit. If
325       both  target  ports  on a FC or SAS disk are connected and visible to a
326       machine, then lsscsi will show two  entries.  Initiators  (i.e.  hosts)
327       also  have  one  or more ports and some HBAs in Linux have a host entry
328       per initiator port while others have a host entry per initiator device.
329
330       When the --transport option is given for  devices  (i.e.   --hosts  not
331       given)  then  most  of the information produced by lsscsi is associated
332       with the target, or more precisely: the target port, through which SCSI
333       commands pass that access a logical unit.
334
335       Typically  this  utility  provides  one  line of output per "device" or
336       host.  Significantly more information can be  obtained  by  adding  the
337       --list  option.  When  used together with the --transport option, after
338       the summary line, multiple lines of transport specific  information  in
339       the  form  "<attribute_name>=<value>"  are output, each indented by two
340       spaces.  Using a filter argument will reduce the volume of output if  a
341       lot of devices or hosts are present.
342
343       The  transports  that are currently recognized are: IEEE 1394, ATA, FC,
344       iSCSI, SAS, SATA, SPI, SRP and USB.
345
346       For IEEE 1394 (a.k.a. Firewire and "SBP" when storage is involved), the
347       EUI-64  based  target port name is output when --transport is given, in
348       the absence of the --hosts option. When the  --hosts  option  is  given
349       then  the  EUI-64  initiator port name is output. Output on the summary
350       line specific to the IEEE 1394 transport is prefixed by "sbp:".
351
352       To detect ATA and SATA devices a crude check is performed on the driver
353       name  (after  the  checks for other transports are exhausted). Based on
354       the driver name either the ATA or SATA transport type is chosen. Output
355       on  the  summary line is either "ata:" or "sata:". A search is made for
356       an associated vpd_pg83 file in sysfs, if found it may contain  the  de‐
357       vice's WWN which is output if present. The WWN will not appear in Linux
358       kernels before 3.15 and with old PATA and SATA devices. Most device and
359       hosts flagged as "ata:" will use the parallel ATA transport (PATA). For
360       SATA devices that are attached via a SAS expander, see  the  SAS  para‐
361       graph below.
362
363       For  Fibre  Channel  (FC)  the port name and port identifier are output
364       when --transport is given. In the absence of the --hosts  option  these
365       ids  will  be  for  the target port associated with the device (logical
366       unit) being listed. When the --hosts option is given then the  ids  are
367       for  the  initiator  port  used by the host. Output on the summary line
368       specific to the FC transport is prefixed by "fc:".  If FCoE (over  Eth‐
369       ernet) is detected the prefix is changed to "fcoe:".
370
371       For  iSCSI the target port name is output when --transport is given, in
372       the absence of the --hosts option. This is made up of  the  iSCSI  name
373       and the target portal group tag. Since the iSCSI name starts with "iqn"
374       no further prefix is used. When the --hosts option is given  then  only
375       "iscsi:" is output on the summary line.
376
377       For Serial Attached SCSI the SAS address of the target port (or initia‐
378       tor port if --hosts option is also given) is output.  This  will  be  a
379       naa-5 address. For SAS HBAs and SAS targets (such as SAS disks and tape
380       drives) the SAS address will be world wide unique. For SATA  disks  at‐
381       tached  to  a  SAS  expander,  the expander provides the SAS address by
382       adding a non zero value to its (i.e. the expander's) SAS address  (e.g.
383       expander_sas_address + phy_id + 1). SATA disks directly attached to SAS
384       HBAs seem to have an indeterminate SAS address. Output on  the  summary
385       line specific to the SAS transport is prefixed by "sas:".
386
387       For  SATA  devices, see the paragraph above on ATA devices. As noted in
388       the previous paragraph, SATA devices attached  to  SAS  expanders  will
389       display  a  manufactured SAS transport address (manufactured by the ex‐
390       pander) rather than the SATA device's WWN.
391
392       For the SCSI Parallel Interface (SPI) the target port identifier  (usu‐
393       ally a number between 0 and 15 inclusive) is output when --transport is
394       given, in the absence of the --hosts option. When the --hosts option is
395       given then only "spi:" is output on the summary line.
396
397       For the PCIe transport (a.k.a. PCI Express) there at two possible stor‐
398       age types: NVMe and SOP/PQI (SCSI over PCIe). There are very few  exam‐
399       ples of the latter currently so this utility concentrates on NVMe. NVMe
400       uses its own command set and not SCSI but has many  things  in  common.
401       Rather than re-invent everything currently in use that SCSI has accumu‐
402       lated over nearly 40 years, NVMe is beginning  to  use  some  parts  of
403       SCSI.  A  recent example is the SES-3 standard for enclosure management
404       which has been adopted by NVMe.  In SCSI a SES device is a logical unit
405       with  a  peripheral device type (PDT) of 0xd (for enclosure) so it will
406       appear when the lsscsi utility is invoked without any options. In  NVMe
407       is  seems  that  an enclosure with appear as attached to the management
408       interface (MI) of a NVMe controller. This means it should  appear  when
409       "lsscsi  --hosts"  is  invoked.  It is unclear whether such a NVMe con‐
410       troller can have any storage namespaces associated with it. The  sg_ses
411       utility  (in  the  sg3_utils  package) can then be given that NVMe con‐
412       troller's device name (e.g. /dev/nmve1).
413       When the --transport option  is  given,  after  "pcie"  the  NVMe  con‐
414       troller's  subsystem vendor id and device id are output, separated by a
415       colon (e.g. "pcie 0x8086:0x390a").
416
417       For the SCSI RDMA Protocol (SRP) the IB  (InfiniBand)  port's  GUID  is
418       given.  As an example, it has a form like this: 0002:c903:00fa:abcd .
419
420       When  a USB transport is detected, the summary line will contain "usb:"
421       followed by a USB device  name.  The  USB  device  name  has  the  form
422       "<b>-<p1>[.<p2>[.<p3>]]:<c>.<i>"  where <b> is the USB bus number, <p1>
423       is the port on the host. <p2> is a port on a  host  connected  hub,  if
424       present.   If  needed  <p3> is a USB hub port closer to the USB storage
425       device. <c> refers to the configuration number while <i> is the  inter‐
426       face  number. There is a separate SCSI host for each USB (SCSI) target.
427       A USB SCSI target may contain multiple logical  units.  Thus  the  same
428       "usb: <device_name>" string appears for a USB SCSI host and all logical
429       units that belong to the USB SCSI target associated with that USB  SCSI
430       host.
431

LUNS

433       For  historical reasons and as used by several other Unix based Operat‐
434       ing Systems, Linux uses a tuple of integers to describe (a path  to)  a
435       SCSI  device  (also  know  as a Logical Unit (LU)). The last element of
436       that tuple is the so-called Logical Unit Number (LUN).  And  originally
437       in  SCSI  a  LUN  was  an integer, at first 3 bits long, then 8 then 16
438       bits. SCSI LUNs today (SAM-5 section 4.7) are 64 bits  but  SCSI  stan‐
439       dards now consider a LUN to be an array of 8 bytes.
440
441       Up until 2013, Linux mapped SCSI LUNs to a 32 bit integer by taking the
442       first 4 bytes of the SCSI LUN and ignoring  the  last  4  bytes.  Linux
443       treated  the  first two bytes of the SCSI LUN as a unit (a word) and it
444       became the least significant 16 bits in the Linux LUN integer. The next
445       two bytes of the SCSI LUN became the upper 16 bits in the Linux LUN in‐
446       teger. The rationale for this was to  keep  commonly  used  LUNs  small
447       Linux  LUN integers. The most common LUN (by far) in SCSI LUN (hex) no‐
448       tation is 00 00 00 00 00 00 00 00 and this becomes the Linux LUN  inte‐
449       ger 0. The next most common LUN is 00 01 00 00 00 00 00 00 and this be‐
450       comes the Linux LUN integer 1.
451
452       In 2013 it is proposed to increase Linux LUNs to a 64  bit  integer  by
453       extending the mapping outlined above. In this case all information that
454       is possible to represent in a SCSI LUN is mapped a Linux LUN  (64  bit)
455       integer. And the mapping can be reversed without losing information.
456
457       This version of the utility supports both 32 and 64 bit Linux LUN inte‐
458       gers.  By default the LUN shown at the end of the tuple commencing each
459       line  is  a Linux LUN as a decimal integer. When the --lunhex option is
460       given then the LUN is in SCSI LUN format with the 8 bytes run together,
461       with the output in hexadecimal and prefixed by '0x'. The LUN is decoded
462       according to SAM-5's description and trailing zeros (i.e. digits to the
463       right)  are not shown. So LUN 0 (i.e. 00 00 00 00 00 00 00 00) is shown
464       as 0x0000 and LUN 65 (i.e. 00 41 00 00 00 00 00 00) is shown as 0x0041.
465       If  the  --lunhex  option is given twice then the full 64 bits (i.e. 16
466       hexadecimal digits) are shown.
467
468       If the --lunhex option is not given on the command line then the  envi‐
469       ronment  variable LSSCSI_LUNHEX_OPT is checked. If LSSCSI_LUNHEX_OPT is
470       present then its associated value  becomes  the  number  of  times  the
471       --lunhex is set internally. So, for example, 'LSSCSI_LUNHEX_OPT=2  lss‐
472       csi' and 'lsscsi -xx' are equivalent.
473

ORDER OF SCSI IDENTIFIERS

475       This section only applies to the --scsi_id option  and  only  for  disk
476       like  devices  (e.g.  not  tapes nor enclosures). There are potentially
477       several SCSI identifiers and from revision 164 they are checked in  the
478       following order and only the first found is output.
479
480       The SCSI identifier preference order is:
481         3 : NAA based (Network address Authority)
482         2 : EUI-64 based
483         8 : SCSI name string (e.g. iSCSI: iqn.1998-01.com.zzware.iscsi:name1)
484         S : serial number from SCSI VPD page 0x80
485         1 : T10 Vendor Identifier
486         0 : Vendor Specific
487       Those  numbers  prefixing  each  entry  are the SCSI 'Designator Types'
488       found in the definition of the Device Identification VPD page (0x83) in
489       SPC/-3,  SPC/-4  and  SPC/-5.  The 'S' of course if not a number and it
490       refers to a different VPD page: the Serial Number VPD page (0x80).
491
492       There is a more general --wwn option that should apply  to  almost  all
493       devices.  The  term "WWN" (world-wide name) comes from the ATA and NVMe
494       standards and corresponds to the "Logical Unit (LU) name" in SCSI.  The
495       LU  name  in  SCSI tends to change by transport. For SAS the LU name is
496       the LU's NAA identifier.
497
498       Plus there the --unit and the --long-unit options that may  be  helpful
499       in uniquely identifying storage devices.
500

EXAMPLES

502       Information about this utility including examples can also be found at:
503       https://sg.danny.cz/scsi/lsscsi.html .
504

NOTES

506       Information for this command is derived from  the  sysfs  file  system,
507       which  is  assumed  to be mounted at /sys unless specified otherwise by
508       the user.  SCSI (pseudo) devices that have been detected  by  the  SCSI
509       mid level will be listed even if the required upper level drivers (i.e.
510       sd, sr, st, osst or ch) have not been loaded. If the appropriate  upper
511       level  driver has not been loaded then the device file name will appear
512       as '-' rather than something like '/dev/st0'. Note  that  some  devices
513       (e.g.  scanners  and medium changers) do not have a primary upper level
514       driver and can only be accessed via a SCSI generic (sg) device name.
515
516       Generic SCSI devices can also be accessed via the bsg driver in  Linux.
517       By  default,  the  bsg  driver's  device  node  names  are  of the form
518       '/dev/bsg/H:C:T:L'. So, for example, the  SCSI  device  shown  by  this
519       utility  on  a line starting with the tuple '6:0:1:2' could be accessed
520       via the bsg driver with the '/dev/bsg/6:0:1:2' device node name.
521
522       lsscsi version 0.21 or later is required to correctly display SCSI  de‐
523       vices  in  Linux  kernel  2.6.26  (and  possibly  later)  when the CON‐
524       FIG_SYSFS_DEPRECATED_V2 kernel option is not defined.
525

AUTHOR

527       Written by Doug Gilbert
528

REPORTING BUGS

530       Report bugs to <dgilbert at interlog dot com>.
531
533       Copyright © 2003-2021 Douglas Gilbert
534       This software is distributed under the GPL version 2. There is NO  war‐
535       ranty;  not  even  for MERCHANTABILITY or FITNESS FOR A PARTICULAR PUR‐
536       POSE.
537

SEE ALSO

539       lspci lsusb lsblk
540
541
542
543lsscsi-0.32                        May 2021                          lsscsi(8)
Impressum