sg_inq man page on SuSE

Man page or keyword search:  
man Server   14857 pages
apropos Keyword Search (all sections)
Output format
SuSE logo
[printable version]

SG_INQ(8)			   SG3_UTILS			     SG_INQ(8)

NAME
       sg_inq - issue SCSI INQUIRY command, output and decode response

SYNOPSIS
       sg_inq	[--ata]	  [--cmddt]  [--descriptors]  [--export]  [--extended]
       [--help] [--hex] [--id] [--len=LEN] [--maxlen=LEN] [--page=PG]  [--raw]
       [--verbose] [--version] [--vpd] DEVICE

       sg_inq  [-36]  [-a]  [-A]  [-b]	[-c]  [-cl]  [-d]  [-e] [-h] [-H] [-i]
       [-l=LEN] [-m] [-M] [-o=OPCODE_PG] [-p=VPD_PG] [-P] [-r] [-s] [-u]  [-v]
       [-V] [-x] [-36] [-?] DEVICE

DESCRIPTION
       This  utility  by  default  sends  a  SCSI INQUIRY command to the given
       device and then outputs the response. All SCSI  devices	are  meant  to
       respond	to  a  "standard"  INQUIRY  command  with  at  least a 36 byte
       response (in SCSI 2 and higher). An INQUIRY  is	termed	as  "standard"
       when both the EVPD and CmdDt (obsolete) bits are clear.

       This  utility  supports two command line syntaxes, the preferred one is
       shown first in the synopsis and explained in this section. A later sec‐
       tion  on	 the  old  command  line  syntax  outlines the second group of
       options.

       An important "non-standard" INQUIRY page is the	Device	Identification
       Vital  Product  Data  (VPD)  page [0x83]. Since SPC-3, support for this
       page is mandatory. The --id option decodes  this	 page.	New  VPD  page
       information  is	no longer being added to this utility. To get informa‐
       tion on new VPD pages see the sg_vpd(8) or sdparm(8) utilities.

       If the DEVICE exists and the SCSI  INQUIRY  fails  (because  the	 SG_IO
       ioctl  is not supported) then an ATA IDENTIFY (PACKET) DEVICE is tried.
       If it succeeds then device identification strings are output. The --raw
       and  --hex  options  can be used to manipulate the output. If the --ata
       option is given then the SCSI INQUIRY is not performed and  the	DEVICE
       is assumed to be ATA (or ATAPI).

       The  reference  document used for interpreting an INQUIRY is T10/1713-D
       Revision 36e (SPC-4, 24 August  2012)  found  at	 http://www.t10.org  .
       Obsolete and reserved items in the standard INQUIRY response output are
       displayed in brackets. The reference  document  for  the	 ATA  IDENTIFY
       (PACKET) DEVICE command is ATA8-ACS found at http://www.t13.org .

OPTIONS
       Arguments to long options are mandatory for short options as well.  The
       options are arranged in alphabetical order based	 on  the  long	option
       name.

       -a, --ata
	      Assume  given DEVICE is an ATA or ATAPI device which can receive
	      ATA commands from the  host  operating  system.  Skip  the  SCSI
	      INQUIRY  command	and use either the ATA IDENTIFY DEVICE command
	      (for nonpacket devices) or the ATA IDENTIFY PACKET  DEVICE  com‐
	      mand.  To	 show  the  response in hex, add a '--verbose' option.
	      This option is only available in Linux.

       -c, --cmddt
	      set the Command Support Data (CmdDt) bit (defaults to clear(0)).
	      Used in conjunction with the --page=PG option where PG specifies
	      the SCSI command opcode to query. When used twice	 (e.g.	'-cc')
	      this  utility forms a list by looping over all 256 opcodes (0 to
	      255 inclusive) only outputting a line for	 found	commands.  The
	      CmdDt  bit  is now obsolete.  It has been replaced by the REPORT
	      SUPPORTED OPERATION CODES command, see the  sg_opcodes(8)	 util‐
	      ity.

       -d, --descriptors
	      decodes  and  prints the version descriptors found in a standard
	      INQUIRY response. There are up to 8 of them. Version descriptors
	      indicate	which  versions	 of standards and/or drafts the DEVICE
	      complies with. The normal components of a standard  INQUIRY  are
	      output  (typically from the first 36 bytes of the response) fol‐
	      lowed by the version descriptors if any.

       -e     see entry below for --vpd.

       -u, --export
	      prints out information obtained from the device. The output  can
	      be modified by selecting a VPD page with PG (from --page=PG). If
	      the device identification VPD page 0x83 is given it  prints  out
	      information  in the form: "SCSI_IDENT_<assoc>_<type>=<ident>" to
	      stdout. If the device serial number VPD page 0x80	 is  given  it
	      prints out information in the form: "SCSI_SERIAL=<ident>". Other
	      VPD pages are not supported. If no VPD page is given  it	prints
	      out    information    in	 the   form:   "SCSI_VENDOR=<vendor>",
	      "SCSI_MODEL=<model>", and "SCSI_REVISION=<rev>", taken from  the
	      standard	inquiry.  This	may  be	 useful for tools like udev in
	      Linux.

       -E, -x, --extended
	      prints the extended INQUIRY VPD page [0x86].

       -h, --help
	      print out the usage message then exit. When  used	 twice,	 after
	      the  usage  message,  there is a list of available abbreviations
	      than can be given to the --page=PG option.

       -H, --hex
	      rather than decode a standard INQUIRY response, a	 VPD  page  or
	      command  support	data; print out the response in hex to stdout.
	      Error messages and warnings are typically output to stderr. When
	      used  twice with the ATA Information VPD page [0x89] decodes the
	      start of the response then outputs  the  ATA  IDENTIFY  (PACKET)
	      DEVICE  response	in  hexadecimal bytes (not 16 bit words). When
	      used three times with the ATA Information VPD page [0x89] or the
	      --ata  option,  this  utility  outputs the ATA IDENTIFY (PACKET)
	      DEVICE response in  hexadecimal  words  suitable	for  input  to
	      'hdparm --Istdin'.  See note below.

       -i, --id
	      prints the device identification VPD page [0x83].

       -l, --len=LEN
	      the  number  LEN is the "allocation length" field in the INQUIRY
	      cdb.  This is the (maximum) length of the response to be sent by
	      the  device.  The default value of LEN is 0 which is interpreted
	      as: first request is for	36  bytes  and	if  necessary  execute
	      another INQUIRY if the "additional length" field in the response
	      indicates that more than 36  bytes  is  available.   If  LEN  is
	      greater  than 0 then only one INQUIRY command is performed.  See
	      paragraph below about "36 byte INQUIRYs".

       -m, --maxlen=LEN
	      this option has the same action as the --len=LEN option. It  has
	      been  added  for	compatibility  with  the  sg_vpd, sg_modes and
	      sg_logs utilities.

       -O, --old
	      switch to older style options.

       -p, --page=PG
	      the PG argument can be either a number of an abbreviation for  a
	      VPD page. To enumerate the available abbreviations for VPD pages
	      use '-hh' or a bad abbreviation (e.g,  '--page=xxx').  When  the
	      --cmddt  option  is  given  (once)  then PG is interpreted as an
	      opcode number (so VPD page abbreviations make little sense).

       -r, --raw
	      output the response in binary  to	 stdout.  Error	 messages  and
	      warnings, if any, are sent to stderr.

       -v, --verbose
	      increase level of verbosity. Can be used multiple times.

       -V, --version
	      print out version string then exit.

       -e, --vpd
	      set  the	Enable	Vital  Product	Data  (EVPD)  bit (defaults to
	      clear(0)). Used in conjunction with the --page=PG	 option	 where
	      PG  specifies  the VPD page number to query. If the --page=PG is
	      not given then PG defaults to zero which is the  "Supported  VPD
	      pages" VPD page.

NOTES
       Some  devices  with  weak SCSI command set implementations lock up when
       they receive commands they don't understand (or even  response  lengths
       that they don't expect). Such devices need to be treated carefully, use
       the '--len=36' option. Without this option this utility will  issue  an
       initial	standard  INQUIRY requesting 36 bytes of response data. If the
       device indicates it could have supplied more data then a second INQUIRY
       is issued to fetch the longer response. That second command may lock up
       faulty devices.

       ATA or ATAPI devices that use a SCSI to ATA Translation layer (see  SAT
       at  www.t10.org) may support the ATA Information VPD page. This returns
       the IDENTIFY (PACKET) DEVICE response amongst other  things.   The  ATA
       Information VPD page can be fetched with '--page=ai'.

       In  the INQUIRY standard response there is a 'MultiP' flag which is set
       when the device has 2 or more ports. Some  vendors  use	the  preceding
       vendor  specific ('VS') bit to indicate which port is being accessed by
       the INQUIRY command (0 -> relative port 1 (port	"a"),  1  ->  relative
       port 2 (port "b")). When the 'MultiP' flag is set, the preceding vendor
       specific bit is shown in parentheses. SPC-3  compliant  devices	should
       use  the	 device	 identification	 VPD page (0x83) to show which port is
       being used for access and the SCSI ports VPD page (0x88)	 to  show  all
       available ports on the device.

       In  the	2.4  series of Linux kernels the DEVICE must be a SCSI generic
       (sg) device. In the 2.6 series block  devices  (e.g.  disks  and	 ATAPI
       DVDs) can also be specified. For example "sg_inq /dev/sda" will work in
       the 2.6 series kernels. From lk 2.6.6 other SCSI	 "char"	 device	 names
       may be used as well (e.g. "/dev/st0m").

ATA DEVICES
       There  are two major types of ATA devices: non-packet devices (e.g. ATA
       disks) and packet devices (ATAPI). The majority of  ATAPI  devices  are
       CD/DVD/BD drives in which the ATAPI transport carries the MMC set (i.e.
       a SCSI command set). Further, both types of ATA	devices	 can  be  con‐
       nected  to a host computer via a "SCSI" (or some other) transport. When
       an ATA disk is controlled via a SCSI (or non-ATA)  transport  then  two
       approaches  are	commonly used: tunnelling (e.g. STP in Serial Attached
       SCSI (SAS)) or by emulating a SCSI device (e.g.	with  a	 SCSI  to  ATA
       translation  layer,  see	 SAT  at www.t10.org ). Even when the physical
       transport to the host computer is ATA (especially in the case of	 SATA)
       the  operating  system  may  choose  to	put  a SAT layer in the driver
       "stack" (e.g. libata in Linux).

       The main identifying command for any SCSI device	 is  an	 INQUIRY.  The
       corresponding  command  for an ATA non-packet device is IDENTIFY DEVICE
       while for an ATA packet device it is IDENTIFY PACKET DEVICE.

       When this utility is invoked for an  ATAPI  device  (e.g.  a  CD/DVD/BD
       drive with "sg_inq /dev/hdc") then a SCSI INQUIRY is sent to the device
       and if it responds then the response to decoded	and  output  and  this
       utility	exits.	To  see the response for an ATA IDENTIFY PACKET DEVICE
       command add the --ata option (e.g. "sg_inq --ata /dev/hdc).

       This utility doesn't decode the response to an  ATA  IDENTIFY  (PACKET)
       DEVICE  command,	 hdparm does a good job at that. The '-HHH' option has
       been added for use with either the '--ata'  or  '--page=ai'  option  to
       produce	a format acceptable to "hdparm --Istdin".  An example: 'sg_inq
       --ata -HHH /dev/hdc | hdparm --Istdin'. See hdparm.

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

OLDER COMMAND LINE OPTIONS
       The  options  in	 this  section	were  the only ones available prior to
       sg3_utils version 1.23 . In sg3_utils  version  1.23  and  later	 these
       older  options can be selected by either setting the SG3_UTILS_OLD_OPTS
       environment variable or using --old (or -O) as the first option.

       -36    only requests 36 bytes of response data for an INQUIRY. Further‐
	      more  even if the device indicates in its response it can supply
	      more data, a second (longer) INQUIRY is not performed. This is a
	      paranoid setting.	 Equivalent to '--len=36' in the main descrip‐
	      tion.

       -a     fetch  the  ATA  Information  VPD	 page  [0x89].	Equivalent  to
	      '--page=ai' in the main description. This page is defined in SAT
	      (see at www.t10.org).

       -A     Assume given DEVICE is an ATA or ATAPI  device.	Equivalent  to
	      --ata in the main description.

       -b     decodes  the  Block  Limits  VPD	page  [0xb0].	Equivalent  to
	      '--page=bl' in the main description. This	 page  is  defined  in
	      SBC-2 (see www.t10.org).

       -c     set the Command Support Data (CmdDt) bit (defaults to clear(0)).
	      Used in
	       conjunction with the -o=OPCODE_PG option to  specify  the  SCSI
	      command  opcode  to  query.  Equivalent  to  --cmddt in the main
	      description.

       -cl    lists the command data for all supported commands	 (followed  by
	      the  command  name)  by  looping	through	 all 256 opcodes. This
	      option uses the  CmdDt  bit  which  is  now  obsolete.  See  the
	      sg_opcodes(8)  utility.	Equivalent to '--cmddt --cmddt' in the
	      main description.

       -d     decodes depending on context. If -e  option  is  given,  or  any
	      option that implies -e (e.g. '-i' or '-p=80'), then this utility
	      attempts to decode the indicated VPD page.  Otherwise  the  ver‐
	      sion  descriptors	 (if  any)  are	 listed	 following  a standard
	      INQUIRY response. In the version descriptors  sense,  equivalent
	      to --descriptors in the main description.

       -e     enable  (i.e.  sets) the Vital Product Data (EVPD) bit (defaults
	      to clear(0)).  Used in conjunction with the -p=VPD_PG option  to
	      specify  the  VPD	 page to fetch. If -p=VPD_PG is not given then
	      VPD page 0 (list supported VPD pages) is assumed.

       -h     outputs INQUIRY response in hex rather than trying to decode it.
	      Equivalent to --hex in the main description.

       -H     same action as -h.  Equivalent to --hex in the main description.

       -i     decodes the Device Identification VPD page [0x83]. Equivalent to
	      --id in the main description. This page is made  up  of  several
	      "designation  descriptors".  If -h is given then each descriptor
	      header is decoded and the identifier itself is  output  in  hex.
	      To see the whole VPD 0x83 page response in hex use '-p=83 -h'.

       -m     decodes the Management network addresses VPD page [0x85]. Equiv‐
	      alent to '--page=mna' in the main description.

       -M     decodes the Mode page policy VPD	page  [0x87].	Equivalent  to
	      '--page=mpp' in the main description.

       -N     switch to the newer style options.

       -o=OPCODE_PG
	      used  in	conjunction with the -e or -c option. If neither given
	      then the -e option assumed. When the -e option is also given (or
	      assumed)	then  the argument to this option is the VPD page num‐
	      ber.  The argument is interpreted as hexadecimal and is expected
	      to be in the range 0 to ff inclusive. Only VPD page 0 is decoded
	      and it lists supported VPD pages and their names (if known).  To
	      decode  the  mandatory device identification page (0x83) use the
	      -i option. A now obsolete usage is when the -c option  is	 given
	      in  which	 case  the  argument to this option is assumed to be a
	      command opcode number. Recent SCSI draft	standards  have	 moved
	      this   facility  to  a  separate	command	 (see  sg_opcodes(8)).
	      Defaults to 0 so if -e is given without  this  option  then  VPD
	      page 0 is output.

       -p=VPD_PG
	      same  action  as	-o=OPCODE_PG  option described in the previous
	      entry.  Since the opcode value with the CmdDt is	now  obsolete,
	      the  main	 use of this option is to specify the VPD page number.
	      The argument is interpreted as hexadecimal and is expected to be
	      in the range 0 to ff inclusive.  Defaults to 0 so if -e is given
	      without this option then VPD page 0 is output.

       -P     decodes the Unit Path Report VPD page [0xc0] which is  EMC  spe‐
	      cific.  Equivalent to '--page=upr' in the main description.

       -r     outputs  the  response in binary to stdout.  Equivalent to --raw
	      in the main description.	Can be used  twice  (i.e.  '-rr'  (and
	      '-HHH'  has  same	 effect)) and if used with the -A or -a option
	      yields output with the same format as "cat /proc/ide/hd<x>/iden‐
	      tify" so that it can then be piped to "hdparm --Istdin".

       -s     decodes	the   SCSI  Ports  VPD	page  [0x88].	Equivalent  to
	      '--page=sp' in the main description.

       -u     equivalent to '--export' in the main description.

       -v     increase level of verbosity. Can be used multiple times.

       -V     print out version string then exit.

       -x     decodes the Extended INQUIRY data VPD [0x86]  page.   Equivalent
	      to '--page=ei' in the main description.

       -?     output usage message and exit. Ignore all other parameters.

EXAMPLES
       The  examples  in this page use Linux device names. For suitable device
       names in other supported Operating Systems  see	the  sg3_utils(8)  man
       page.

       To view the standard inquiry response use without options:

	  sg_inq /dev/sda

       Some  SCSI  devices  include version descriptors indicating the various
       SCSI standards and drafts they support. They can be viewed with:

	  sg_inq -d /dev/sda

       Modern SCSI devices include Vital Product Data (VPD)pages which can  be
       viewed  with  the SCSI INQUIRY command. To list the supported VPD pages
       (but not their contents) try:

	  sg_inq -e /dev/sda

       Some VPD pages can be read with the sg_inq utility but a newer  utility
       called sg_vpd specializes in showing their contents. The sdparm utility
       can also be used to show the contents of VPD pages.

       Further examples of sg_inq together with some  typical  output  can  be
       found on http://sg.danny.cz/sg/sg3_utils.html web page.

AUTHOR
       Written by Douglas Gilbert

REPORTING BUGS
       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
       Copyright © 2001-2013 Douglas Gilbert
       This  software is distributed under the GPL version 2. There is NO war‐
       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR‐
       POSE.

SEE ALSO
       sg_opcodes(8), sg_vpd(8), sdparm(8), hdparm(8), sgdiag(scsirastools)

sg3_utils-1.35			 January 2013			     SG_INQ(8)
[top]

List of man pages available for SuSE

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net