sg_modes(8) - man - phpman

Look up a command

 

Markdown Format | JSON API | MCP Server Tool


sg_modes(8)
NAME SYNOPSIS DESCRIPTION OPTIONS NOTES EXIT STATUS OLDER COMMAND LINE OPTIONS ENVIRONMENT VARIABLES AUTHOR REPORTING BUGS COPYRIGHT SEE ALSO
SG_MODES(8)                                   SG3_UTILS                                  SG_MODES(8)



NAME
       sg_modes - reads mode pages with SCSI MODE SENSE command

SYNOPSIS
       sg_modes  [--all]  [--control=PC] [--dbd] [--dbout] [--examine] [--flexible] [--help] [--hex]
       [--list]  [--llbaa]  [--maxlen=LEN]  [--page=PG[,SPG]]  [--raw]  [-R]  [--readwrite]  [--six]
       [--verbose] [--version] [DEVICE]

       sg_modes  [-6]  [-a]  [-A]  [-c=PC]  [-d]  [-D]  [-e]  [-f]  [-h]  [-H]  [-l]  [-L]  [-m=LEN]
       [-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]

DESCRIPTION
       This utility sends a MODE SENSE SCSI command to the DEVICE and outputs the response. There is
       a 6 byte and 10 byte (cdb) variant of the MODE SENSE command, this utility defaults to the 10
       byte variant. The SPC-4 standard (and SPC-5 drafts) include a note stating that  implementers
       should  migrate away from the SCSI MODE SELECT(6) and MODE SENSE(6) commands in favour of the
       10 byte variants (e.g. MODE SENSE(10)).

       This utility decodes mode page headers and block descriptors but outputs the contents of each
       mode  page in hex. It also has no facility to change the mode page contents or block descrip‐
       tor data. Mode page contents are decoded and can be changed by the sdparm utility.

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

       If no page is given (and --list is not selected) then --all is assumed. The --all option  re‐
       quests all mode pages (but not subpages) in a single response.

OPTIONS
       Arguments to long options are mandatory for short options as well.

       -a, --all
              output all the mode pages reported by the DEVICE. This is what the page code 63 (0x3f)
              is defined to do. When used once, mode subpages are not fetched. When used twice (e.g.
              '-aa'),   all   mode   pages  and  subpages  are  requested  which  is  equivalent  to
              '--page=63,255'.

       -c, --control=PC
              PC is the page control value. Up to four different versions of each page are  held  by
              the device:
                0 : current values (i.e. those active at present)
                1 : changeable values
                2 : default values (i.e. the manufacturer's settings)
                3 : saved values
              The  changeable values are bit masks showing which fields could be changed with a MODE
              SELECT. The saved values will be re-instated the next time the device is power  cycled
              or reset. If this option is not given then current values [0] are assumed.

       -d, --dbd
              disable  block  descriptors. By default, block descriptors (usually one (for disks) or
              none) are returned in a MODE SENSE response. This option sets the "disable  block  de‐
              scriptors" (DBD) bit in the cdb which instructs the device not to return any block de‐
              scriptors in its response. Older devices may not support this setting and  may  return
              an  "illegal  request"  sense key; alternatively they may ignore it. Oddly the Reduced
              Block Command set (RBC) requires this bit set.

       -D, --dbout
              disable outputting block descriptors. Irrespective of whether  block  descriptors  are
              present in the response or not, they are not output.

       -e, --examine
              examine  each mode page in the range 0 through to 62 (inclusive).  If some response is
              given then print out the mode page name or number (in hex) if the name is not known.
              The sdparm utility which lists mode and VPD pages also has  a  --examine  option  will
              similar functionility.

       -f, --flexible
              Some  devices,  bridges and/or drivers attempt crude translations between MODE SENSE 6
              and 10 byte commands without correcting the response. This will cause the response  to
              be mis-interpreted (usually with an error saying the response is malformed). With this
              option, the length of the response is checked, and if it looks wrong, the response  is
              then decoded as if the other mode sense (cdb length) was sent.

       -h, --help
              print out the usage message then exit.

       -H, --hex
              The  default  action  is  to decode known mode page numbers (and subpage numbers) into
              text. When this option is used once, the response is output in hexadecimal to  stdout.
              When  this  option is used twice, mode page numbers and page control values are output
              in hex.
              When this option is used three times, the full response to the MODE SENSE  command  is
              output  in  hex  to stdout without any decoding. This form can be redirected to a file
              (or piped) and then used 'sdparm --inhex=' to decode.

       -l, --list
              lists all common page and subpage codes and their names that are found in the  command
              set  that  matches  the  peripheral  type  of  the  given DEVICE.  If no DEVICE and no
              --page=PG is given then the common page and subpage codes and their names  are  listed
              for  SBC (e.g. a disk). If no DEVICE is given and a --page=PG is given then the common
              page and subpage codes and their names are listed for the command set whose peripheral
              device type matches the value given to PG. For example 'sg_mode --list --page=1' lists
              the command mode pages and subpages for tape devices. Additionally if a  sub_page_code
              is  given  then it is interpreted as a transport identifier and command transport spe‐
              cific mode page codes and their names are listed following the main  mode  page  list.
              Other options are ignored.

       -L, --llbaa
              set  the Long LBA Accepted (LLBAA) bit in the MODE SENSE (10) cdb. This bit is not de‐
              fined in the MODE SENSE (6) cdb so setting the '-L' and '--six' options is reported as
              an  error. When set the DEVICE may respond with 16 byte block descriptors as indicated
              by the 'LongLBA' field in the response. In most  cases  setting  this  option  is  not
              needed.

       -m, --maxlen=LEN
              The  LEN  argument  is  the  maximum  response  length in bytes. It is the 'allocation
              length' field in the cdb. When not given (or LEN is zero) then the  allocation  length
              field  is  set to 4096 for MODE SENSE (10) or 252 for MODE SENSE (6). The LEN argument
              must be non-negative and no greater than 65535 for MODE SENSE  (10)  and  not  greater
              than 255 for MODE SENSE (6).

       -O, --old
              Switch to older style options. Please use as first option.

       -p, --page=PG
              page code to fetch. The PG is assumed to be a decimal value unless prefixed by '0x' or
              has a trailing 'h'. It should be a value between 0 and 63 (inclusive). When not  given
              and  a default is required then a value of 63 (0x3f), which fetches all mode pages, is
              used.
              Alternatively an acronym for the mode page can be given. The available acronyms can be
              listed  out  with the --page=xxx option. They are almost the same as the acronyms used
              for mode pages in the sdparm utility.

       -p, --page=PG,SPG
              page code and subpage code values to fetch. Both arguments are assumed to  be  decimal
              unless flagged as hexadecimal. The page code should be between 0 and 63 inclusive. The
              subpage code should be between 0 and 255 inclusive. The default value for the  subpage
              code is 0.

       -r, --raw
              output the response in binary to stdout. Error messages and warnings, if any, are sent
              to stderr. When this option is used twice (e.g. '-rr') then has  the  same  action  as
              '-R'

       -R     output  the selected mode page to stdout a byte per line. Each line contains two hexa‐
              decimal digits (e.g. "3e"). Useful as input (after editing) to the sg_wr_mode(8) util‐
              ity.

       -w, --readwrite
              open DEVICE in "read-write" mode. Default is to open it in read-only mode.

       -6, -s, --six
              by default this utility sends a 10 byte MODE SENSE command to the DEVICE. However some
              SCSI devices only support 6 byte MODE SENSE commands (e.g. SCSI-2 tape  drives).  This
              parameter forces the use of 6 byte MODE SENSE commands.

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

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

NOTES
       If  the  normal  sg_modes  utility  fails  with "illegal command operation code" then try the
       '--six' (or '-6') option.

       This utility performs a SCSI INQUIRY command to determine the peripheral type of  the  device
       (e.g.  0 -> Direct Access Device (disk)) prior to sending a MODE SENSE command. This helps in
       decoding the block descriptor and mode pages.

       This utility opens DEVICE in read-only mode (e.g. in Unix, with the  O_RDONLY  flag)  by  de‐
       fault. It will open DEVICE in read-write mode if the --readwrite option is given.

       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. SCSI disks and DVD drives) can  also  be  specified.  For  example
       "sg_modes -a /dev/sda" will work in the 2.6 series kernels.

EXIT STATUS
       The  exit  status  of sg_modes 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.

       -6     by default this utility sends a 10 byte MODE SENSE command to the DEVICE. This parame‐
              ter forces the use of 6 byte MODE SENSE commands.  See --six in the main description.

       -a     see --all in the main description.

       -A     output all the mode pages and subpages supported by the DEVICE. Same as '--all  --all'
              in the new syntax.

       -c=PC  PC is the page control value. See --control=PC in the main description.

       -d     see --dbd in the main description.

       -D     see --dbout in the main description.

       -e     see --examine in the main description.

       -f     see --flexible in the main description.

       -h     The  default  action  is  to decode known mode page numbers (and subpage numbers) into
              text. With this option mode page numbers (and subpage numbers) are output in hexadeci‐
              mal.

       -H     same action as the '-h' option.

       -l     see --list in the main description.

       -L     see --llbaa in the main description.

       -N, --new
              Switch to the newer style options.

       -m=LEN see --maxlen=LEN in the main description.

       -p=PG  PG is page code to fetch. Should be a hexadecimal number between 0 and 3f inclusive (0
              to 63 decimal). The default value when required is 3f (fetch  all  mode  pages).  Note
              that  an acronym for the page and/or subpage values is not accepted in this older for‐
              mat (because any acronym starting with the letters 'a' to 'f' is ambiguous;  it  could
              either be a hex number or an acronym).

       -p=PG,SPG
              page code and subpage code values to fetch. The page code should be a hexadecimal num‐
              ber between 0 and 3f inclusive. The subpage code should be a  hexadecimal  number  be‐
              tween 0 and ff inclusive. The default value for the subpage code is 0.

       -r     output  the selected mode page to stdout a byte per line. Each line contains two hexa‐
              decimal digits (e.g. "3e"). Useful as input (after editing) to the sg_wr_mode(8) util‐
              ity.

       -subp=SPG
              sub  page  code to fetch. Should be a hexadecimal number between 0 and 0xff inclusive.
              The default value is 0.

       -v     increase verbosity of output.

       -V     print out version string then exit.

       -w     see --readwrite in the main description.

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

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  op‐
       tion.

AUTHOR
       Written by Douglas Gilbert

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

COPYRIGHT
       Copyright © 2000-2020 Douglas Gilbert
       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
       sdparm(8),   sg_wr_mode(8),   sginfo(8),   sgmode(scsirastools),   scsiinfo(net),   scu(net),
       seatools(seagate)

       All these utilities offer some facility to change mode page (or block descriptor) parameters.



sg3_utils-1.45                             September 2020                                SG_MODES(8)

Generated by phpMan Author: Che Dong Under GNU General Public License
2026-06-02 12:38 @216.73.216.151 CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top