# sginfo - access mode page information for a SCSI (or ATAPI) device - man(8) - [phpMan]

[_SGINFO_(8)](https://www.chedong.com/phpMan.php/man/SGINFO/8/markdown)                                     SG3_UTILS                                    [_SGINFO_(8)](https://www.chedong.com/phpMan.php/man/SGINFO/8/markdown)

## 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 permit‐
       ted,  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 de‐
       vices) are broken in recent versions of Linux (e.g. 2.6  series  and  later);  the  [lsscsi(8)](https://www.chedong.com/phpMan.php/man/lsscsi/8/markdown)
       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 **util‐
       ity 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), de‐
       fault (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 cor‐
       responding 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     
              are used.

### -a     
              ported 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     
              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     

### -C     

### -d     

### -D     

### -e     

### -E     

### -f     

### -F_
                              -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     

### -G     

### -i     

### -I     

### -l     
              [csi(8)](https://www.chedong.com/phpMan.php/man/csi/8/markdown) in the Linux 2.6 series and later. List known SCSI devices on the system.

### -n     

### -N     
              changes go to the current and the saved page).  Only active when  used  together  with
              '-R'.

### -P     

### -r     
              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     

### -t _
              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 deci‐
              mal 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     
              mands 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 _
              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 in‐
              clusive. 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     
              utilities in this package as outlined in 'man 8 sg3_utils'.  This  odd  usage  is  for
              backward compatibility with the scsiinfo utility.]

### -V     
              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     
              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     

### -M     

### -S     

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

### -X     
              to the '-R' (replace command).

### -R     

## 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 parame‐
       ters 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  pre‐
       fixed  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  op‐
       tions.  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 MER‐
       CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

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

sg3_utils-1.38                              January 2014                                   [_SGINFO_(8)](https://www.chedong.com/phpMan.php/man/SGINFO/8/markdown)
