Provided by: sg3-utils_1.46-1ubuntu0.22.04.1_amd64 bug

NAME

       sginfo - access mode page information for a SCSI (or ATAPI) device

SYNOPSIS

       sginfo [OPTIONS] [DEVICE] [REPLACEMENT_PARAMETERS]

DESCRIPTION

       sginfo  is  a  port  of the Linux scsiinfo program by Eric Youngdale. It uses SCSI generic
       (sg) devices; however in some cases the high level device name (i.e. sd, sr, st, osst,  or
       hd) can also be used. The primary role of this program is to access mode page information.
       If permitted, mode page information can be  altered.  In  addition  information  from  the
       INQUIRY and READ DEFECTS commands are also available.

       This  utility is in legacy mode, only obvious bugs will be fixed. Options like -l (to list
       devices) are broken in recent versions of Linux (e.g. 2.6 series and later); the lsscsi(8)
       utility  can  be used instead. Also mode pages are not being updated as http://www.t10.org
       adds and modifies mode page fields. Those interested in  SCSI  mode  pages  may  find  the
       sdparm utility more up to date and easier use, especially for changing parameters.

       Four  sets of values are maintained by a SCSI device for each mode page: current (active),
       default (manufacturer's supplied values), saved (values that  are  retained  if  the  SCSI
       device  is  powered  down),  and  changeable  (mask  indicating  those  values that can be
       changed).  By default when a mode page is displayed the current values are shown. This can
       be overridden by "-M" (defaults), "-S" (saved) or "-m" (modifiable (i.e. changeable)).

       Many  mode  pages  are  decoded: for disks (see SBC-2), for CD/DVDs (see MMC-2/3/4/5), for
       tapes (see SSC-2) and for enclosures (see SES-2).  Some mode  pages  common  to  all  SCSI
       peripheral  device  types are defined in SPC-4 (primary commands). A decoded mode page has
       its field names in the first column and the corresponding value in the second  column.   A
       "hex"  mode  page  (and  subpage)  has  its  byte position in the first column (in hex and
       starting at 0x2) and the corresponding hex value in the second column. Decoded  pages  can
       be  viewed  with  the '-t' option or with a specific option (e.g. 'c' for the caching mode
       page).  Naturally decoded pages must be supplied by the  DEVICE  and  recognised  by  this
       program.  If  supported  by the device, decoded pages may be modified. All mode pages (and
       subpages) that the device supports can be viewed in hex (and potentially modified) via the
       "-u" option

       If  no  options  are given that will cause mode page(s) or INQUIRY data to be printed out,
       then a brief INQUIRY response is output. This includes the vendor,  product  and  revision
       level of the device.

OPTIONS

       -6     Perform 6 byte MODE SENSE and MODE SELECT commands; by default the 10 byte variants
              are used.

       -a     Display some INQUIRY data and the unit serial number followed  by  all  mode  pages
              reported  by the device. It is similar to the '-t 0x3f' option. If the mode page is
              known then it is output in decoded form otherwise it is output in hexadecimal.

       -A     Display some INQUIRY data and the unit serial number followed by all mode pages and
              all  mode  subpages  reported  by  the device.  It is similar to the '-t 0x3f,0xff'
              option. If a mode (sub)page is known then it is output in decoded form otherwise it
              is output in hexadecimal.

       -c     Access information in the Caching mode page.

       -C     Access information in the Control mode Page.

       -d     Display defect lists (default format: index).

       -D     Access information in the Disconnect-Reconnect mode page.

       -e     Access information in the Error Recovery mode page.

       -E     Access information in the Control Extension mode page.

       -f     Access information in the Format Device mode page.

       -Farg  Format of the defect lists:
                              -Flogical  - logical block addresses (32 bit)
                              -Flba64    - logical block addresses (64 bit)
                              -Fphysical - physical blocks
                              -Findex    - defect bytes from index
                              -Fhead     - sort by head
              Used in conjunction with "-d" or "-G". If a format is not given "index" is assumed.

       -g     Access information in the Rigid Disk Drive Geometry mode page.

       -G     Display grown defect list (default format: index).

       -i     Display the response to a standard INQUIRY command.

       -I     Access the Informational Exceptions mode page.

       -l     Deprecated.  Only  use  in old versions of Linux (e.g. 2.4 and earlier). Please use
              lsscsi(8) in the Linux 2.6 series and later. List known SCSI devices on the system.

       -n     Access information in the Notch and Partition mode page.

       -N     Negate (i.e. stop) mode page changes being placed in the "saved" page  (by  default
              changes go to the current and the saved page).  Only active when used together with
              '-R'.

       -P     Access information in the Power Condition mode page.

       -r     Display all raw (or primary) SCSI device  names  visible  in  the  /dev  directory.
              Examples  are  /dev/sda,  /dev/st1  and /dev/scd2. Does not list sg device names so
              devices such as a SCSI enclosure which only have an sg device name are not listed.

       -s     Display information in the unit serial number  page  which  is  a  INQUIRY  command
              variant.

       -t PN[,SPN]
              Display  information  from mode page number PN (and optionally sub page number SPN)
              in decoded format (if known, otherwise in hex form).  PN is a mode page number in a
              decimal  number  from  0  to  63  inclusive.  SPN is the mode subpage number and is
              assumed to be 0 if not given.  SPN is a decimal number from 1 to 255  inclusive.  A
              page  number  of  63  returns  all pages supported by the device in ascending order
              except for page 0 which, if present, is last. Page 0 is  vendor  specific  and  not
              necessarily  in mode page format. Alternatively hex values can be given for both PN
              and SPN (both prefixed by '0x').

       -T     Trace commands to obtain more verbose output (for debugging). When used  once  SCSI
              commands  are  shown (in hex) and any errors from these SCSI commands are spelt out
              (i.e.  with a decoded and raw sense buffer). When used twice, the  additional  data
              sent with mode select and the response from mode sense are shown (in hex).

       -u PN[,SPN]
              Display  information  from mode page number PN (and optionally SPN) in hex form. PN
              is a mode page number in a decimal number from 0 to 63 inclusive. SPN is  the  mode
              subpage  number and is assumed to be 0 if not given. SPN is a decimal number from 1
              to 255 inclusive. A page number of 63 returns all pages supported by the device  in
              ascending  order  except  for  page  0 which, if present, is last. Page 0 is vendor
              specific and not necessarily in mode page format. Alternatively hex values  can  be
              given  for  both  PN  and  SPN (both prefixed by '0x'). For example 63 and 0x3f are
              equivalent.

       -v     Display version string then exit. [N.B. This option increases  verbosity  for  most
              other  utilities  in this package as outlined in 'man 8 sg3_utils'.  This odd usage
              is for backward compatibility with the scsiinfo utility.]

       -V     Access information in the Verify Error Recovery mode page. [N.B. This option prints
              the  version  string then exits in most other utilities in this package as outlined
              in 'man 8 sg3_utils'. This  odd  usage  is  for  backward  compatibility  with  the
              scsiinfo utility.]

       -z     do  a  single  fetch  for  mode  pages  (over-estimating the expected length of the
              returned response). The default action is to do a double fetch, the first fetch  is
              to  find the response length that could be returned. Devices that closely adhere to
              SCSI standards should not require this option, some real world devices  do  require
              it.

ADVANCED OPTIONS

       Only one of the following three options can be specified.  None of these three implies the
       current values are returned.

       -m     Display modifiable fields instead of current values

       -M     Display manufacturer's defaults instead of current values

       -S     Display saved defaults instead of current values

       The following are advanced options, not generally suited for most users:

       -X     Display output values in a list. Make them suitable for  editing  and  being  given
              back to the '-R' (replace command).

       -R     Replace parameters - best used with -X (expert use only)

CHANGING MODE PAGE PARAMETERS

       Firstly you should know what you are doing before changing existing parameters. Taking the
       control page as an example, first list it out normally (e.g.  "sginfo  -C  /dev/sda")  and
       decide  which  parameter  is  to be changed (note its position relative to the other lines
       output). Then execute the same sginfo command with the "-X" option added; this will output
       the  parameter  values  in  a  single  row  in the same relative positions as the previous
       command. Now execute "sginfo -CXR /dev/sda ..." with the "..." replaced by the single  row
       of  values  output by the previous command, with the relevant parameter changed. Here is a
       simplified example:

          $ sginfo -C /dev/sda
          Control mode page (0xa)
          -----------------------
          TST                        0
          D_SENSE                    0
          GLTSD                      1
          RLEC                       0

       [Actually the Control page has more  parameters  that  shown  above.]  Next  output  those
       parameters in single line form:

          $ sginfo -CX /dev/sda
          0 0 1 0

       Let us assume that the GLTSD bit is to be cleared. The command that will clear it is:

          $ sginfo -CXR /dev/sda 0 0 0 0

       The same number of parameters output by the "-CX" command needs to be placed at the end of
       the "-CXR" command line (after the device name).  Now check that the change took effect:

          $ sginfo -C /dev/sda
          Control mode page (0xa)
          -----------------------
          TST                        0
          D_SENSE                    0
          GLTSD                      0
          RLEC                       0

       When a mode page is "replaced" the default action is to change both the current  page  and
       the  saved  page.  [For  some  reason versions of sginfo and scsiinfo prior to 2.0 did not
       change the "saved" page.] To change only the current mode page but not  the  corresponding
       saved page use the "-N" option.

GENERATING SCRIPT FILES AND HEX PAGES

       The  "-aX"  or  "-AX"  option generates output suitable for a script file.  Mode pages are
       output in list format (after the  INQUIRY  and  serial  number)  one  page  per  line.  To
       facilitate  running  the  output  as  (part  of)  a script file to assert chosen mode page
       values, each line is prefixed by "sginfo -t PN[,SPN] -XR ". When such  a  script  file  is
       run,  it  will have the effect of re-asserting the mode page values to what they were when
       the "-aX" generated the output.

       All mode pages (and subpages) supported by the device can be accessed via the  -t  and  -u
       options. To see all mode pages supported by the device use "-u 63". [To see all mode pages
       and all subpages use "-u 63,255".] To list the control mode page in hex (mode  page  index
       in  the  first column and the corresponding byte value in the second column) use "-u 0xa".
       Mode pages (subpage code == 0) start at index position 2 while  subpages  start  at  index
       position  4.  If the "-Xu ..." option is used then a list a hex values each value prefixed
       by "@" is output. Mode (sub)page values can then be modified with the "-RXu ..." option.

RESTRICTIONS

       The SCSI MODE SENSE command yields block descriptors as  well  as  a  mode  page(s).  This
       utility  ignores  block  descriptors  and  does  not  display  them.  The  "disable  block
       descriptor" switch (DBD) in the MODE SENSE command is not set  since  some  devices  yield
       errors when it is set. When mode page values are being changed (the "-R" option), the same
       block descriptor obtained by reading the mode page (i.e. via a MODE SENSE command) is sent
       back when the mode page is written (i.e. via a MODE SELECT command).

REFERENCES

       SCSI  (draft)  standards  can  be found at http://www.t10.org . The relevant documents are
       SPC-4 (mode pages common to all device types), SBC-2 (direct access devices [e.g. disks]),
       MMC-4 (CDs and DVDs) and SSC-2 (tapes).

AUTHORS

       Written by Eric Youngdale, Michael Weller, Douglas Gilbert, Kurt Garloff, Thomas Steudten

HISTORY

       scsiinfo version 1.0 was released by Eric Youngdale on 1st November 1993.  The most recent
       version of scsiinfo is version 1.7 with the last patches  by  Michael  Weller.  sginfo  is
       derived  from  scsiinfo  and  uses the sg interface to get around the 4 KB buffer limit in
       scsiinfo that cramped the display of  defect  lists  especially.  sginfo  was  written  by
       Douglas Gilbert with patches from Kurt Garloff. This manpage corresponds with version 2.25
       of sginfo.

       This software is distributed under the GPL version 2. There is NO warranty; not  even  for
       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       lsscsi(lsscsi), scsiinfo(internet); sg_modes, sg_inq, sg_vpd (sg3_utils), sdparm(sdparm)