sg_inq man page on Alpinelinux

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

SG_INQ(8)			   SG3_UTILS			     SG_INQ(8)

NAME
       sg_inq - issue SCSI INQUIRY command and/or decode its response

SYNOPSIS
       sg_inq	[--ata]	 [--block=0|1]	[--cmddt]  [--descriptors]  [--export]
       [--extended]   [--help]	 [--hex]   [--id]   [--inhex=FN]   [--len=LEN]
       [--maxlen=LEN]  [--page=PG]  [--raw] [--vendor] [--verbose] [--version]
       [--vpd] DEVICE

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

DESCRIPTION
       This utility, when DEVICE is given, sends a SCSI INQUIRY command to  it
       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 (now obsolete) bits are clear.

       Alternatively the --inhex=FN option can be given. In this  case	FN  is
       assumed	to be a file name ('-' for stdin) containing ASCII hexadecimal
       representing an INQUIRY response.

       This utility supports two command line syntaxes. The preferred  one  is
       shown  first  in the synopsis and is described in the main OPTIONS sec‐
       tion. A later section titled OLDER COMMAND LINE OPTIONS	describes  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.

       In Linux, if the DEVICE exists and the SCSI INQUIRY fails (e.g. 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	 36q  (SPC-4,  12 February 2014) 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  non-packet 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.

       -B, --block=0|1
	      this  option  controls  how  the	file  handle  to the DEVICE is
	      opened. If this argument is 0 then the open is non-blocking.  If
	      the  argument  is	 1  then  the  open  is	 blocking.  In	Unix a
	      non-blocking open is indicated by	 a  O_NONBLOCK	flag  while  a
	      blocking	open  is  indicated  by	 the absence of that flag. The
	      default value depends on the operating system and	 the  type  of
	      DEVICE  node. For Linux pass-throughs (i.e. the sg and bsg driv‐
	      ers) the default is 0.

       -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(7) 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.
	      To  generate  output  suitable for placing in a file that can be
	      used by a later invocation with the --inhex=FN option,  use  the
	      '-HHHH'	option	 (e.g.	 'sg_inq   -p	di  -HHHH  /dev/sg3  >
	      dev_id.hex').

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

       -I, --inhex=FN
	      FN is expected to be a file name (or '-' for stdin)  which  con‐
	      tains  ASCII  hexadecimal	 or  binary  representing  an  INQUIRY
	      (including VPD page) response. This  utility  will  then	decode
	      that  response.  It  is  preferable to also supply the --page=PG
	      option, if not this utility will attempt to guess which VPD page
	      (or standard INQUIRY) the response is associated with. The hexa‐
	      decimal should be arranged as 1 or 2 digits representing a  byte
	      each  of	which  is whitespace or comma separated. Anything from
	      and including a hash mark to the end of line is ignored. If  the
	      --raw option is also given then FN is treated as binary.

       -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).
	      If PG is a negative number, then	a  standard  INQUIRY  is  per‐
	      formed. This can be used to override some guessing logic associ‐
	      ated with the --inhex=FN option.

       -r, --raw
	      in the absence of --inhex=FN then	 output	 response  in  binary.
	      The  output  should  be  piped to a file or another utility when
	      this option is used. The binary is sent to  stdout,  and	errors
	      are sent to stderr.
	      if  used	with  --inhex=FN then the contents of FN is treated as
	      binary.

       -s, --vendor
	      output a standard INQUIRY response's vendor specific field  from
	      offset 36 to 55 in ASCII. When used twice (i.e. '-ss') also out‐
	      put the vendor specific field from offset 96 in ASCII.  This  is
	      only done if the data passes some simple sanity checks.

       -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").

       The number of bytes output by --hex and --raw is 36 bytes or the number
       given to --len=LEN (or --maxlen=LEN). That number  is  reduced  if  the
       "resid"	returned  by  the HBA indicates less bytes were sent back from
       DEVICE.

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 OPTIONS  sec‐
	      tion.

       -a     fetch  the  ATA  Information  VPD	 page  [0x89].	Equivalent  to
	      '--page=ai' in the OPTIONS section. 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 OPTIONS section.

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

       -B=0|1 equivalent to --block=0|1 in OPTIONS section.

       -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  OPTIONS
	      section.

       -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
	      OPTIONS section.

       -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 OPTIONS section.

       -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 OPTIONS section.

       -H     same action as -h.  Equivalent to --hex in the OPTIONS section.

       -i     decodes the Device Identification VPD page [0x83]. Equivalent to
	      --id  in	the  OPTIONS  section. 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'.

       -I=FN  equivalent to --inhex=FN in the OPTIONS section.

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

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

       -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 OPTIONS section.

       -r     outputs the response in binary to stdout.	 Equivalent  to	 --raw
	      in  the  OPTIONS	section.   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 OPTIONS section.

       -u     equivalent to '--export' in the OPTIONS section.

       -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 OPTIONS section.

       -?     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-2014 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.38			  March 2014			     SG_INQ(8)
[top]

List of man pages available for Alpinelinux

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