Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
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] [--ex-
     tended]  [--force]  [--help]  [--hex]  [--id]  [--inhex=FN]   [--json[=JO]]
     [--js-file=JFN]  [--len=LEN]  [--long]  [--maxlen=LEN] [--only] [--page=PG]
     [--quiet] [--raw]	[--sinq_inraw=RFN]  [--vendor]	[--verbose]  [--version]
     [--vpd] DEVICE

     sg_inq  [-36]  [-a] [-A] [-b] [--B=0|1] [-c] [-cl] [-d] [-e] [-f] [-h] [-H]
     [-i] [-I=FN] [-j[=JO]] [-l=LEN] [-L] [-m] [-M] [-o] [-p=VPD_PG]  [-P]  [-q]
     [-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. Formally (i.e. as per SPC stardards) the name of a standard
     INQUIRY  response is the "standard INQUIRY data format" but here the "stan-
     dard INQUIRY response" is used as it is shorter and more descriptive.

     Alternatively the --inhex=FN option can be given. In this case  FN  is  as-
     sumed to be a file name ('-' for stdin) containing ASCII hexadecimal repre-
     senting 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 section. A later
     section titled OLDER COMMAND LINE OPTIONS describes the second group of op-
     tions.

     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. The sg_vpd(8) utility is specialized
     for  decoding VPD pages and shares code with this utility for that purpose.
     The sdparm(8) utility which is in a package of that name also  decodes  VPD
     pages although its major purpose is to access and modify SCSI mode pages.

     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). For more information see the ATA DEVICES sec-
     tion below.

     In some operating systems a NVMe device (e.g. SSD) may be given as the  DE-
     VICE. For more information see the NVME DEVICES section below.

     The  reference  document used for interpreting an INQUIRY is T10/BSR INCITS
     566 Revision 6 which is draft SPC-6 dated 22 October 2021. It can be  found
     at  https://www.t10.org  .  Obsolete and reserved items in the standard IN-
     QUIRY response output are displayed in square brackets.

OPTIONS
     Arguments to long options are mandatory for short options as well.  The op-
     tions 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 com-
	    mand and use either the ATA IDENTIFY DEVICE command (for  non-packet
	    devices)  or the ATA IDENTIFY PACKET DEVICE command. To show the re-
	    sponse in hex, add a '--verbose' option. This option is only  avail-
	    able 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 indi-
	    cated 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 drivers) 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  in-
	    clusive)  only  outputting	a  line for commands that are found. The
	    CmdDt bit is now obsolete; it has been replaced by the  REPORT  SUP-
	    PORTED OPERATION CODES command, see the sg_opcodes(8) utility.

     -d, --descriptors
	    decodes  and  prints the version descriptors found in a standard IN-
	    QUIRY response. There are up to 8 of them. Version descriptors indi-
	    cate which versions of standards and/or drafts the	DEVICE	complies
	    with.  The normal components of a standard INQUIRY are output (typi-
	    cally from the first 36 bytes of the response) followed by the  ver-
	    sion descriptors if any.

     -e     see entry below for --vpd.

     -f, --force
	    As	a  sanity check, the normal action when fetching VPD pages other
	    than page 0x0 (the "Supported VPD pages"  VPD  page),  is  to  first
	    fetch  page  0x0  and  only if the requested page is one of the sup-
	    ported pages, to go ahead and fetch the requested page.
	    When this option is given, skip checking of VPD page 0x0 before  ac-
	    cessing  the  requested VPD page. The prior check of VPD page 0x0 is
	    known to crash certain USB devices, so use with care.

     -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	informa-
	    tion  in the form: "SCSI_IDENT_<assoc>_<type>=<ident>" to stdout. If
	    the device serial number VPD page 0x80 is given it prints out infor-
	    mation 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_REVI-
	    SION=<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]. It has the same effect
	    as giving the --page=ei option.

     -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  com-
	    mand support data; print out the response in hex and send the output
	    to	stdout.   Error  messages  and	warnings are typically output to
	    stderr. When used twice with the ATA Information VPD page [0x89] de-
	    codes 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) DE-
	    VICE  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]. It  has  the  same
	    effect as giving the --page=di option.

     -I, --inhex=FN
	    FN	is  expected to be a file name (or '-' for stdin) which contains
	    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) that the
	    response is associated with. The hexadecimal 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  a
	    line  is  ignored.	If  the  --raw	option	is also given then FN is
	    treated as binary.

     -j[=JO], --json[=JO]
	    output is in JSON format instead of plain text form. Note that argu-
	    ments to the short and long form  are  themselves  optional  and  if
	    present  start  with  "=" and no whitespace is permitted around that
	    "=".
	    See sg3_utils_json manpage or use '?' for JO to get a summary.

     -J, --js-file=JFN
	    output is in JSON format and it is sent to a file named JFN. If that
	    file exists then it is truncated. By default,  the	JSON  output  is
	    sent to stdout.
	    When  this	option	is  given, the --json[=JO] option is implied and
	    need not be given. The --json[=JO] option may still be needed to set
	    the JO parameter to non-default values.

     -l, --len=LEN
	    the number LEN is the "allocation length" field in the INQUIRY  cdb.
	    This is the (maximum) length of the response returned 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 "ad-
	    ditional  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.
	    This means that the Serial Number (obtained from the  Serial  Number
	    VPD  pgae (0x80)) is not fetched and therefore not printed.  See the
	    NOTES section below about "36 byte INQUIRYs".

     -L, --long
	    this option causes more information to be decoded from the	Identify
	    command sent to a NVMe DEVICE.

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

     -O, --old
	    Switch  to	older  style  options. Please use as first option on the
	    command line.

     -o, --only
	    Do not attempt to additionally retrieve the serial number  VPD  page
	    (0x80) to enhance the output of a standard INQUIRY. So with this op-
	    tion  given and no others, this utility will send a standard INQUIRY
	    SCSI command and decode its response. No other SCSI commands will be
	    sent to the DEVICE.  Without this option an additional SCSI  command
	    is	sent:  a  (non-standard) SCSI INQUIRY to fetch the Serial Number
	    VPD page. However the Serial Number VPD page is not mandatory (while
	    the Device Identification page is mandatory but a billion  USB  keys
	    ignore  that) and may cause nuisance error reports. In most cases if
	    the --maxlen=LEN option is given and LEN is greater than 0 then this
	    option is not needed.
	    For NVMe devices only the Identify controller is performed, even  if
	    the  DEVICE  includes a namespace identifier. For example in FreeBSD
	    given a DEVICE named /dev/nvme0ns1 then an	Identify  controller  is
	    sent  to  /dev/nvme0  and  nothing is sent to its "ns1" (first name-
	    space).

     -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  performed.
	    This can be used to override some guessing logic associated with the
	    --inhex=FN option.
	    If	PG is not found in the 'Supported VPD pages' VPD page (0x0) then
	    EDOM is returned. To bypass this check use the --force option.

     -q, --quiet
	    suppress the amount of decoding and error output.

     -r, --raw
	    in the absence of --inhex=FN then the output response is 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  bi-
	    nary.

     -Q, --sinq_inraw=RFN
	    where  RFN is a filename containing binary standard INQUIRY response
	    data that matches either DEVICE or FN. Linux  places  this	standard
	    INQUIRY  response in its sysfs pseudo filesystem. A typical location
	    is at /sys/class/scsi_device/<hctl>/device/inquiry where <hctl> is a
	    four part numeric tuple separated  by  colons.  This  tuple  distin-
	    guishes  the device from any others on the system. Linux also places
	    some VPD page responses in binary in the same directory  with  names
	    like  "vpd_pg83"  where the last two digits form the hexadecimal VPD
	    page number whose binary contents are therein.
	    Some VPD pages (e.g. the Extended Inquiry VPD page) depend on  know-
	    ing  the  settings in the standard INQUIRY response to interpret the
	    fields in that VPD page. This option together with the --all,  --ex-
	    amine  or --page=PG allows this utility to process both the standard
	    INQUIRY response and VPD pages in the same invocation.
	    The --raw option has no effect on this option. The	DEVICE	argument
	    may be given with this option.

     -s, --vendor
	    output  a  standard  INQUIRY  response's vendor specific fields from
	    offset 36 to 55 in ASCII. When used twice (i.e. '-ss')  also  output
	    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 de-
	    faults 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 (and some lock up if they receive
     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 SCSI ATA INFORMATION VPD  page.  This  returns
     the IDENTIFY (PACKET) DEVICE response amongst other things.  The ATA Infor-
     mation 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 spe-
     cific ('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  identifica-
     tion  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 and later 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.

     The DEVICE is opened with a read-only flag (e.g. in Unix with the	O_RDONLY
     flag).

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 connected 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 com-
     monly used: tunnelling (e.g. STP in Serial Attached SCSI (SAS)) or by  emu-
     lating 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  corre-
     sponding  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.

NVME DEVICES
     Currently these device are typically SSDs (Solid State Disks) directly con-
     nected to a PCIe connector or via a specialized connector such as a M2 con-
     nector. Linux and FreeBSD treat NVMe storage devices as separate from  SCSI
     storage  with  device  names like /dev/nvme0n1 (in Linux) and /dev/nvme0ns1
     (in FreeBSD). The NVM Express group has a	document  titled  "NVM	Express:
     SCSI  Translation Reference" which defines a partial "SCSI to NVMe Transla-
     tion Layer" often known by its acronym: SNTL.

     On operating systems where it is supported by this  package,  this  utility
     will  detect  NVMe  storage devices directly connected and send an Identify
     controller NVMe Admin command and decode its response. A NVMe controller is
     architecturally similar to a SCSI target device. If the NVMe  DEVICE  indi-
     cates  a namespace then an Identify namespace NVMe Admin command is sent to
     that namespace and its response is decoded. Namespaces are numbered sequen-
     tially starting from 1. Namespaces are similar to SCSI  Logical  Units  and
     their identifiers (nsid_s) can be thought of as SCSI LUNs. In the Linux and
     FreeBSD  example  device  names above the "n1" and the "ns1" parts indicate
     nsid 1 . If no namespace is given in the DEVICE then all  namespaces  found
     in  the  controller  are sent Identify namespace commands and the responses
     are decoded.

     To get more details in the response use the --long option. To only get  the
     controller's Identify decoded use the --only option.

     It  is  possible  that even though the DEVICE presents as a NVMe device, it
     has a SNTL and accepts SCSI commands. In this case to send a  SCSI  INQUIRY
     command (and fetch its VPD pages) use the sg_vpd(8) utility.

SG_INQ and SG_VPD
     Both  these  utilities have much in common since VPD pages are fetched with
     the SCSI INQUIRY command. As more VPD pages have been added  (and	existing
     pages expanded) the newer ones were only decoded with sg_vpd. Recently with
     the  optional JSON output work, it was decided to place all VPD page decod-
     ing in a source file called sg_vpd_common.c  that	is  linked  in	by  both
     sg_inq and sg_vpd.

     This  means  that	the  VPD  page	decoding capabilities of both sg_inq and
     sg_vpd will be the same. Their default actions remain as they were,  namely
     when  sg_inq is used without command line options, it decodes the "standard
     INQUIRY data format" (usually called the "standard INQUIRY  response")  re-
     sponse while when sg_vpd is used without options, it decodes the "Supported
     VPD pages" VPD page.

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 . Since then this utility defaults to the newer  command  line
     options which can be overridden by using --old (or -O) as the first option.
     See  the  ENVIRONMENT VARIABLES section for another way to force the use of
     these older command line options.

     -36    only requests 36 bytes of response data for an INQUIRY.  Furthermore
	    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 section.

     -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) and later.

     -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 -p=VPD_PG option to  specify  the  SCSI
	    command  opcode  to query. Equivalent to --cmddt in the OPTIONS sec-
	    tion.

     -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 version descriptors
	    (if  any)  are  listed following a standard INQUIRY response. In the
	    version descriptors sense, equivalent to --descriptors  in	the  OP-
	    TIONS 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.

     -f     Equivalent to --force in the OPTIONS section.

     -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 "desig-
	    nation  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.

     -j[=JO]
	    equivalent to --json[=JO] in the OPTIONS section.

     -l=LEN
	    equivalent to --len=LEN in the OPTIONS section.

     -L     equivalent to --long in the OPTIONS section.

     -m     decodes the Management network addresses VPD page [0x85]. Equivalent
	    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, --new
	    Switch to the newer style options.

     -o     equivalent to --only in the OPTIONS section.

     -p=VPD_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 number.  The  argu-
	    ment  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 manda-
	    tory  device identification page (0x83) use the -i option. A now ob-
	    solete usage is when the -c option is given in which case the  argu-
	    ment 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     decodes  the Unit Path Report VPD page [0xc0] which is EMC specific.
	    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>/identify" 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

     In  Linux,  binary images of some important VPD page responses (e.g. 0, 80h
     and 83h) are cached in files within the sysfs pseudo file system. Since VPD
     pages hardly ever change their contents, decoding those files will give the
     same output as probing the device with  the  added  benefit  that	decoding
     those files doesn't need root permissions. If /dev/sg3 is a disk at 2:0:0:0
     , then these three invocations should result in the same output:

	sg_inq --raw --inhex=/sys/class/scsi_generic/sg3/device/vpd_pg83

	sg_inq -rI /sys/class/scsi_generic/sg3/device/vpd_pg83

	sg_inq -r -I /sys/class/scsi_disk/2:0:0:0/device/vpd_pg83

     Without  the  --raw option, the --inhex=FN option would expect the contents
     of those files to be hexadecimal. vpd_pg83 contains the  response	(in  bi-
     nary)  to the Device Identification VPD page whose page number is 83h (i.e.
     hexadecimal).

     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 https://sg.danny.cz/sg/sg3_utils.html web page.

ENVIRONMENT VARIABLES
     Since sg3_utils version 1.23 the  environment  variable  SG3_UTILS_OLD_OPTS
     can be given. When it is present this utility will expect the older command
     line options. So the presence of this environment variable is equivalent to
     using --old (or -O) as the first command line option.

AUTHOR
     Written by Douglas Gilbert

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

COPYRIGHT
     Copyright (C) 2001-2023 Douglas Gilbert
     This  software  is  distributed under the GPL version 2 or the BSD-2-Clause
     license. There is NO warranty; not even for MERCHANTABILITY or FITNESS  FOR
     A PARTICULAR PURPOSE.

SEE ALSO
     sg_opcodes(8),  sg_vpd(8), sg_logs(8), sg_modes(8), sg_decode_sense(8), sd-
     parm(8), hdparm(8),sgdiag(scsirastools)

sg3_utils-1.48			   April 2023			       SG_INQ(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=sg_inq&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help