{
    "content": [
        {
            "type": "text",
            "text": "# sg_modes(8) (man)\n\n**Summary:** sgmodes - reads mode pages with SCSI MODE SENSE command\n\n**Synopsis:** sgmodes  [--all]  [--control=PC] [--dbd] [--dbout] [--examine] [--flexible] [--help] [--hex]\n[--list]  [--llbaa]  [--maxlen=LEN]  [--page=PG[,SPG]]  [--raw]  [-R]  [--readwrite]  [--six]\n[--verbose] [--version] [DEVICE]\nsgmodes  [-6]  [-a]  [-A]  [-c=PC]  [-d]  [-D]  [-e]  [-f]  [-h]  [-H]  [-l]  [-L]  [-m=LEN]\n[-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]\n\n## Flags\n\n| Flag | Long | Arg | Description |\n|------|------|-----|-------------|\n| -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, |\n| -c | --control | — | PC is the page control value. Up to four different versions of each page are held by the device: 0 : current values (i.e |\n| -d | --dbd | — | disable block descriptors. By default, block descriptors (usually one (for disks) or none) are returned in a MODE SENSE  |\n| -D | --dbout | — | disable outputting block descriptors. Irrespective of whether block descriptors are present in the response or not, they |\n| -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  |\n| -f | --flexible | — | Some devices, bridges and/or drivers attempt crude translations between MODE SENSE 6 and 10 byte commands without correc |\n| -h | --help | — | print out the usage message then exit. |\n| -H | --hex | — | The default action is to decode known mode page numbers (and subpage numbers) into text. When this option is used once,  |\n| -l | --list | — | lists all common page and subpage codes and their names that are found in the command set that matches the peripheral ty |\n| -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 |\n| -m | --maxlen | — | The LEN argument is the maximum response length in bytes. It is the 'allocation length' field in the cdb. When not given |\n| -O | --old | — | Switch to older style options. Please use as first option. |\n| -p | --page | — | 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  |\n| -p | --page | — | page code and subpage code values to fetch. Both arguments are assumed to be decimal unless flagged as hexadecimal. The  |\n| -r | --raw | — | output the response in binary to stdout. Error messages and warnings, if any, are sent to stderr. When this option is us |\n| -R | — | — | decimal digits (e.g. \"3e\"). Useful as input (after editing) to the sgwrmode(8) util‐ ity. |\n| -w | --readwrite | — | open DEVICE in \"read-write\" mode. Default is to open it in read-only mode. |\n| -s | --six | — | by default this utility sends a 10 byte MODE SENSE command to the DEVICE. However some SCSI devices only support 6 byte  |\n| -v | --verbose | — | increase level of verbosity. Can be used multiple times. |\n| -V | --version | — | print out version string then exit. |\n\n## See Also\n\n- sdparm(8)\n- sgwrmode(8)\n- sginfo(8)\n- sgmode(scsirastools)\n- scsiinfo(net)\n- scu(net)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (7 lines)\n- **DESCRIPTION** (17 lines)\n- **OPTIONS** (2 lines) — 20 subsections\n  - -a --all (5 lines)\n  - -c --control (10 lines)\n  - -d --dbd (7 lines)\n  - -D --dbout (3 lines)\n  - -e --examine (5 lines)\n  - -f --flexible (6 lines)\n  - -h --help (2 lines)\n  - -H --hex (8 lines)\n  - -l --list (11 lines)\n  - -L --llbaa (6 lines)\n  - -m --maxlen (6 lines)\n  - -O --old (2 lines)\n  - -p --page (8 lines)\n  - -p --page (5 lines)\n  - -r --raw (4 lines)\n  - -R (3 lines)\n  - -w --readwrite (2 lines)\n  - -6 -s --six (4 lines)\n  - -v --verbose (2 lines)\n  - -V --version (2 lines)\n- **NOTES** (14 lines)\n- **EXIT STATUS** (3 lines)\n- **OLDER COMMAND LINE OPTIONS** (5 lines) — 21 subsections\n  - -6 (2 lines)\n  - -a (1 lines)\n  - -A (2 lines)\n  - -c --control (1 lines)\n  - -d --dbd (1 lines)\n  - -D --dbout (1 lines)\n  - -e --examine (1 lines)\n  - -f --flexible (1 lines)\n  - -h (3 lines)\n  - -H (1 lines)\n  - -l --list (1 lines)\n  - -L --llbaa (1 lines)\n  - -N --new (2 lines)\n  - -m --maxlen (1 lines)\n  - -p (5 lines)\n  - -p (4 lines)\n  - -r (3 lines)\n  - -subp (3 lines)\n  - -v (1 lines)\n  - -V (1 lines)\n  - -w --readwrite (2 lines)\n- **ENVIRONMENT VARIABLES** (5 lines)\n- **AUTHOR** (2 lines)\n- **REPORTING BUGS** (2 lines)\n- **COPYRIGHT** (4 lines)\n- **SEE ALSO** (1 lines) — 1 subsections\n  - seatools(seagate) (5 lines)\n\n## Full Content\n\n### NAME\n\nsgmodes - reads mode pages with SCSI MODE SENSE command\n\n### SYNOPSIS\n\nsgmodes  [--all]  [--control=PC] [--dbd] [--dbout] [--examine] [--flexible] [--help] [--hex]\n[--list]  [--llbaa]  [--maxlen=LEN]  [--page=PG[,SPG]]  [--raw]  [-R]  [--readwrite]  [--six]\n[--verbose] [--version] [DEVICE]\n\nsgmodes  [-6]  [-a]  [-A]  [-c=PC]  [-d]  [-D]  [-e]  [-f]  [-h]  [-H]  [-l]  [-L]  [-m=LEN]\n[-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]\n\n### DESCRIPTION\n\nThis utility sends a MODE SENSE SCSI command to the DEVICE and outputs the response. There is\na 6 byte and 10 byte (cdb) variant of the MODE SENSE command, this utility defaults to the 10\nbyte variant. The SPC-4 standard (and SPC-5 drafts) include a note stating that  implementers\nshould  migrate away from the SCSI MODE SELECT(6) and MODE SENSE(6) commands in favour of the\n10 byte variants (e.g. MODE SENSE(10)).\n\nThis utility decodes mode page headers and block descriptors but outputs the contents of each\nmode  page in hex. It also has no facility to change the mode page contents or block descrip‐\ntor data. Mode page contents are decoded and can be changed by the sdparm utility.\n\nThis utility supports two command line syntaxes, the preferred one is shown first in the syn‐\nopsis  and explained in this section. A later section on the old command line syntax outlines\nthe second group of options.\n\nIf no page is given (and --list is not selected) then --all is assumed. The --all option  re‐\nquests all mode pages (but not subpages) in a single response.\n\n### OPTIONS\n\nArguments to long options are mandatory for short options as well.\n\n#### -a --all\n\noutput all the mode pages reported by the DEVICE. This is what the page code 63 (0x3f)\nis defined to do. When used once, mode subpages are not fetched. When used twice (e.g.\n'-aa'),   all   mode   pages  and  subpages  are  requested  which  is  equivalent  to\n'--page=63,255'.\n\n#### -c --control\n\nPC is the page control value. Up to four different versions of each page are  held  by\nthe device:\n0 : current values (i.e. those active at present)\n1 : changeable values\n2 : default values (i.e. the manufacturer's settings)\n3 : saved values\nThe  changeable values are bit masks showing which fields could be changed with a MODE\nSELECT. The saved values will be re-instated the next time the device is power  cycled\nor reset. If this option is not given then current values [0] are assumed.\n\n#### -d --dbd\n\ndisable  block  descriptors. By default, block descriptors (usually one (for disks) or\nnone) are returned in a MODE SENSE response. This option sets the \"disable  block  de‐\nscriptors\" (DBD) bit in the cdb which instructs the device not to return any block de‐\nscriptors in its response. Older devices may not support this setting and  may  return\nan  \"illegal  request\"  sense key; alternatively they may ignore it. Oddly the Reduced\nBlock Command set (RBC) requires this bit set.\n\n#### -D --dbout\n\ndisable outputting block descriptors. Irrespective of whether  block  descriptors  are\npresent in the response or not, they are not output.\n\n#### -e --examine\n\nexamine  each mode page in the range 0 through to 62 (inclusive).  If some response is\ngiven then print out the mode page name or number (in hex) if the name is not known.\nThe sdparm utility which lists mode and VPD pages also has  a  --examine  option  will\nsimilar functionility.\n\n#### -f --flexible\n\nSome  devices,  bridges and/or drivers attempt crude translations between MODE SENSE 6\nand 10 byte commands without correcting the response. This will cause the response  to\nbe mis-interpreted (usually with an error saying the response is malformed). With this\noption, the length of the response is checked, and if it looks wrong, the response  is\nthen decoded as if the other mode sense (cdb length) was sent.\n\n#### -h --help\n\nprint out the usage message then exit.\n\n#### -H --hex\n\nThe  default  action  is  to decode known mode page numbers (and subpage numbers) into\ntext. When this option is used once, the response is output in hexadecimal to  stdout.\nWhen  this  option is used twice, mode page numbers and page control values are output\nin hex.\nWhen this option is used three times, the full response to the MODE SENSE  command  is\noutput  in  hex  to stdout without any decoding. This form can be redirected to a file\n(or piped) and then used 'sdparm --inhex=' to decode.\n\n#### -l --list\n\nlists all common page and subpage codes and their names that are found in the  command\nset  that  matches  the  peripheral  type  of  the  given DEVICE.  If no DEVICE and no\n--page=PG is given then the common page and subpage codes and their names  are  listed\nfor  SBC (e.g. a disk). If no DEVICE is given and a --page=PG is given then the common\npage and subpage codes and their names are listed for the command set whose peripheral\ndevice type matches the value given to PG. For example 'sgmode --list --page=1' lists\nthe command mode pages and subpages for tape devices. Additionally if a  subpagecode\nis  given  then it is interpreted as a transport identifier and command transport spe‐\ncific mode page codes and their names are listed following the main  mode  page  list.\nOther options are ignored.\n\n#### -L --llbaa\n\nset  the Long LBA Accepted (LLBAA) bit in the MODE SENSE (10) cdb. This bit is not de‐\nfined in the MODE SENSE (6) cdb so setting the '-L' and '--six' options is reported as\nan  error. When set the DEVICE may respond with 16 byte block descriptors as indicated\nby the 'LongLBA' field in the response. In most  cases  setting  this  option  is  not\nneeded.\n\n#### -m --maxlen\n\nThe  LEN  argument  is  the  maximum  response  length in bytes. It is the 'allocation\nlength' field in the cdb. When not given (or LEN is zero) then the  allocation  length\nfield  is  set to 4096 for MODE SENSE (10) or 252 for MODE SENSE (6). The LEN argument\nmust be non-negative and no greater than 65535 for MODE SENSE  (10)  and  not  greater\nthan 255 for MODE SENSE (6).\n\n#### -O --old\n\nSwitch to older style options. Please use as first option.\n\n#### -p --page\n\npage code to fetch. The PG is assumed to be a decimal value unless prefixed by '0x' or\nhas a trailing 'h'. It should be a value between 0 and 63 (inclusive). When not  given\nand  a default is required then a value of 63 (0x3f), which fetches all mode pages, is\nused.\nAlternatively an acronym for the mode page can be given. The available acronyms can be\nlisted  out  with the --page=xxx option. They are almost the same as the acronyms used\nfor mode pages in the sdparm utility.\n\n#### -p --page\n\npage code and subpage code values to fetch. Both arguments are assumed to  be  decimal\nunless flagged as hexadecimal. The page code should be between 0 and 63 inclusive. The\nsubpage code should be between 0 and 255 inclusive. The default value for the  subpage\ncode is 0.\n\n#### -r --raw\n\noutput the response in binary to stdout. Error messages and warnings, if any, are sent\nto stderr. When this option is used twice (e.g. '-rr') then has  the  same  action  as\n'-R'\n\n#### -R\n\ndecimal digits (e.g. \"3e\"). Useful as input (after editing) to the sgwrmode(8) util‐\nity.\n\n#### -w --readwrite\n\nopen DEVICE in \"read-write\" mode. Default is to open it in read-only mode.\n\n#### -6 -s --six\n\nby default this utility sends a 10 byte MODE SENSE command to the DEVICE. However some\nSCSI devices only support 6 byte MODE SENSE commands (e.g. SCSI-2 tape  drives).  This\nparameter forces the use of 6 byte MODE SENSE commands.\n\n#### -v --verbose\n\nincrease level of verbosity. Can be used multiple times.\n\n#### -V --version\n\nprint out version string then exit.\n\n### NOTES\n\nIf  the  normal  sgmodes  utility  fails  with \"illegal command operation code\" then try the\n'--six' (or '-6') option.\n\nThis utility performs a SCSI INQUIRY command to determine the peripheral type of  the  device\n(e.g.  0 -> Direct Access Device (disk)) prior to sending a MODE SENSE command. This helps in\ndecoding the block descriptor and mode pages.\n\nThis utility opens DEVICE in read-only mode (e.g. in Unix, with the  ORDONLY  flag)  by  de‐\nfault. It will open DEVICE in read-write mode if the --readwrite option is given.\n\nIn  the 2.4 series of Linux kernels the DEVICE must be a SCSI generic (sg) device. In the 2.6\nseries block devices (e.g. SCSI disks and DVD drives) can  also  be  specified.  For  example\n\"sgmodes -a /dev/sda\" will work in the 2.6 series kernels.\n\n### EXIT STATUS\n\nThe  exit  status  of sgmodes is 0 when it is successful. Otherwise see the sg3utils(8) man\npage.\n\n### OLDER COMMAND LINE OPTIONS\n\nThe options in this section were the only ones available prior to sg3utils  version  1.23  .\nSince then this utility defaults to the newer command line options which can be overridden by\nusing --old (or -O) as the first option. See the ENVIRONMENT VARIABLES  section  for  another\nway to force the use of these older command line options.\n\n#### -6\n\nter forces the use of 6 byte MODE SENSE commands.  See --six in the main description.\n\n#### -a\n\n#### -A\n\nin the new syntax.\n\n#### -c --control\n\n#### -d --dbd\n\n#### -D --dbout\n\n#### -e --examine\n\n#### -f --flexible\n\n#### -h\n\ntext. With this option mode page numbers (and subpage numbers) are output in hexadeci‐\nmal.\n\n#### -H\n\n#### -l --list\n\n#### -L --llbaa\n\n#### -N --new\n\nSwitch to the newer style options.\n\n#### -m --maxlen\n\n#### -p\n\nto 63 decimal). The default value when required is 3f (fetch  all  mode  pages).  Note\nthat  an acronym for the page and/or subpage values is not accepted in this older for‐\nmat (because any acronym starting with the letters 'a' to 'f' is ambiguous;  it  could\neither be a hex number or an acronym).\n\n#### -p\n\npage code and subpage code values to fetch. The page code should be a hexadecimal num‐\nber between 0 and 3f inclusive. The subpage code should be a  hexadecimal  number  be‐\ntween 0 and ff inclusive. The default value for the subpage code is 0.\n\n#### -r\n\ndecimal digits (e.g. \"3e\"). Useful as input (after editing) to the sgwrmode(8) util‐\nity.\n\n#### -subp\n\nsub  page  code to fetch. Should be a hexadecimal number between 0 and 0xff inclusive.\nThe default value is 0.\n\n#### -v\n\n#### -V\n\n#### -w --readwrite\n\n-?     output usage message then exit. Ignore all other parameters.\n\n### ENVIRONMENT VARIABLES\n\nSince sg3utils version 1.23 the environment variable SG3UTILSOLDOPTS can be  given.  When\nit  is  present  this  utility will expect the older command line options. So the presence of\nthis environment variable is equivalent to using --old (or -O) as the first command line  op‐\ntion.\n\n### AUTHOR\n\nWritten by Douglas Gilbert\n\n### REPORTING BUGS\n\nReport bugs to <dgilbert at interlog dot com>.\n\n### COPYRIGHT\n\nCopyright © 2000-2020 Douglas Gilbert\nThis software is distributed under the GPL version 2. There is NO warranty; not even for MER‐\nCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n### SEE ALSO\n\nsdparm(8),   sgwrmode(8),   sginfo(8),   sgmode(scsirastools),   scsiinfo(net),   scu(net),\n\n#### seatools(seagate)\n\nAll these utilities offer some facility to change mode page (or block descriptor) parameters.\n\n\n\nsg3utils-1.45                             September 2020                                SGMODES(8)\n\n"
        }
    ],
    "structuredContent": {
        "command": "sg_modes",
        "section": "8",
        "mode": "man",
        "summary": "sgmodes - reads mode pages with SCSI MODE SENSE command",
        "synopsis": "sgmodes  [--all]  [--control=PC] [--dbd] [--dbout] [--examine] [--flexible] [--help] [--hex]\n[--list]  [--llbaa]  [--maxlen=LEN]  [--page=PG[,SPG]]  [--raw]  [-R]  [--readwrite]  [--six]\n[--verbose] [--version] [DEVICE]\nsgmodes  [-6]  [-a]  [-A]  [-c=PC]  [-d]  [-D]  [-e]  [-f]  [-h]  [-H]  [-l]  [-L]  [-m=LEN]\n[-p=PG[,SPG]] [-r] [-subp=SPG] [-v] [-V] [-w] [-?] [DEVICE]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "-a",
                "long": "--all",
                "arg": null,
                "description": "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'."
            },
            {
                "flag": "-c",
                "long": "--control",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-d",
                "long": "--dbd",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-D",
                "long": "--dbout",
                "arg": null,
                "description": "disable outputting block descriptors. Irrespective of whether block descriptors are present in the response or not, they are not output."
            },
            {
                "flag": "-e",
                "long": "--examine",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-f",
                "long": "--flexible",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-h",
                "long": "--help",
                "arg": null,
                "description": "print out the usage message then exit."
            },
            {
                "flag": "-H",
                "long": "--hex",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-l",
                "long": "--list",
                "arg": null,
                "description": "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 'sgmode --list --page=1' lists the command mode pages and subpages for tape devices. Additionally if a subpagecode 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."
            },
            {
                "flag": "-L",
                "long": "--llbaa",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-m",
                "long": "--maxlen",
                "arg": null,
                "description": "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)."
            },
            {
                "flag": "-O",
                "long": "--old",
                "arg": null,
                "description": "Switch to older style options. Please use as first option."
            },
            {
                "flag": "-p",
                "long": "--page",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-p",
                "long": "--page",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-r",
                "long": "--raw",
                "arg": null,
                "description": "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'"
            },
            {
                "flag": "-R",
                "long": null,
                "arg": null,
                "description": "decimal digits (e.g. \"3e\"). Useful as input (after editing) to the sgwrmode(8) util‐ ity."
            },
            {
                "flag": "-w",
                "long": "--readwrite",
                "arg": null,
                "description": "open DEVICE in \"read-write\" mode. Default is to open it in read-only mode."
            },
            {
                "flag": "-s",
                "long": "--six",
                "arg": null,
                "description": "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."
            },
            {
                "flag": "-v",
                "long": "--verbose",
                "arg": null,
                "description": "increase level of verbosity. Can be used multiple times."
            },
            {
                "flag": "-V",
                "long": "--version",
                "arg": null,
                "description": "print out version string then exit."
            }
        ],
        "examples": [],
        "see_also": [
            {
                "name": "sdparm",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/sdparm/8/json"
            },
            {
                "name": "sgwrmode",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/sgwrmode/8/json"
            },
            {
                "name": "sginfo",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/sginfo/8/json"
            },
            {
                "name": "sgmode",
                "section": "scsirastools",
                "url": "https://www.chedong.com/phpMan.php/man/sgmode/scsirastools/json"
            },
            {
                "name": "scsiinfo",
                "section": "net",
                "url": "https://www.chedong.com/phpMan.php/man/scsiinfo/net/json"
            },
            {
                "name": "scu",
                "section": "net",
                "url": "https://www.chedong.com/phpMan.php/man/scu/net/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 7,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 17,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 2,
                "subsections": [
                    {
                        "name": "-a --all",
                        "lines": 5,
                        "flag": "-a",
                        "long": "--all"
                    },
                    {
                        "name": "-c --control",
                        "lines": 10,
                        "flag": "-c",
                        "long": "--control"
                    },
                    {
                        "name": "-d --dbd",
                        "lines": 7,
                        "flag": "-d",
                        "long": "--dbd"
                    },
                    {
                        "name": "-D --dbout",
                        "lines": 3,
                        "flag": "-D",
                        "long": "--dbout"
                    },
                    {
                        "name": "-e --examine",
                        "lines": 5,
                        "flag": "-e",
                        "long": "--examine"
                    },
                    {
                        "name": "-f --flexible",
                        "lines": 6,
                        "flag": "-f",
                        "long": "--flexible"
                    },
                    {
                        "name": "-h --help",
                        "lines": 2,
                        "flag": "-h",
                        "long": "--help"
                    },
                    {
                        "name": "-H --hex",
                        "lines": 8,
                        "flag": "-H",
                        "long": "--hex"
                    },
                    {
                        "name": "-l --list",
                        "lines": 11,
                        "flag": "-l",
                        "long": "--list"
                    },
                    {
                        "name": "-L --llbaa",
                        "lines": 6,
                        "flag": "-L",
                        "long": "--llbaa"
                    },
                    {
                        "name": "-m --maxlen",
                        "lines": 6,
                        "flag": "-m",
                        "long": "--maxlen"
                    },
                    {
                        "name": "-O --old",
                        "lines": 2,
                        "flag": "-O",
                        "long": "--old"
                    },
                    {
                        "name": "-p --page",
                        "lines": 8,
                        "flag": "-p",
                        "long": "--page"
                    },
                    {
                        "name": "-p --page",
                        "lines": 5,
                        "flag": "-p",
                        "long": "--page"
                    },
                    {
                        "name": "-r --raw",
                        "lines": 4,
                        "flag": "-r",
                        "long": "--raw"
                    },
                    {
                        "name": "-R",
                        "lines": 3,
                        "flag": "-R"
                    },
                    {
                        "name": "-w --readwrite",
                        "lines": 2,
                        "flag": "-w",
                        "long": "--readwrite"
                    },
                    {
                        "name": "-6 -s --six",
                        "lines": 4,
                        "flag": "-s",
                        "long": "--six"
                    },
                    {
                        "name": "-v --verbose",
                        "lines": 2,
                        "flag": "-v",
                        "long": "--verbose"
                    },
                    {
                        "name": "-V --version",
                        "lines": 2,
                        "flag": "-V",
                        "long": "--version"
                    }
                ]
            },
            {
                "name": "NOTES",
                "lines": 14,
                "subsections": []
            },
            {
                "name": "EXIT STATUS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "OLDER COMMAND LINE OPTIONS",
                "lines": 5,
                "subsections": [
                    {
                        "name": "-6",
                        "lines": 2,
                        "flag": "-6"
                    },
                    {
                        "name": "-a",
                        "lines": 1,
                        "flag": "-a"
                    },
                    {
                        "name": "-A",
                        "lines": 2,
                        "flag": "-A"
                    },
                    {
                        "name": "-c --control",
                        "lines": 1,
                        "flag": "-c",
                        "long": "--control"
                    },
                    {
                        "name": "-d --dbd",
                        "lines": 1,
                        "flag": "-d",
                        "long": "--dbd"
                    },
                    {
                        "name": "-D --dbout",
                        "lines": 1,
                        "flag": "-D",
                        "long": "--dbout"
                    },
                    {
                        "name": "-e --examine",
                        "lines": 1,
                        "flag": "-e",
                        "long": "--examine"
                    },
                    {
                        "name": "-f --flexible",
                        "lines": 1,
                        "flag": "-f",
                        "long": "--flexible"
                    },
                    {
                        "name": "-h",
                        "lines": 3,
                        "flag": "-h"
                    },
                    {
                        "name": "-H",
                        "lines": 1,
                        "flag": "-H"
                    },
                    {
                        "name": "-l --list",
                        "lines": 1,
                        "flag": "-l",
                        "long": "--list"
                    },
                    {
                        "name": "-L --llbaa",
                        "lines": 1,
                        "flag": "-L",
                        "long": "--llbaa"
                    },
                    {
                        "name": "-N --new",
                        "lines": 2,
                        "flag": "-N",
                        "long": "--new"
                    },
                    {
                        "name": "-m --maxlen",
                        "lines": 1,
                        "flag": "-m",
                        "long": "--maxlen"
                    },
                    {
                        "name": "-p",
                        "lines": 5,
                        "flag": "-p"
                    },
                    {
                        "name": "-p",
                        "lines": 4,
                        "flag": "-p"
                    },
                    {
                        "name": "-r",
                        "lines": 3,
                        "flag": "-r"
                    },
                    {
                        "name": "-subp",
                        "lines": 3
                    },
                    {
                        "name": "-v",
                        "lines": 1,
                        "flag": "-v"
                    },
                    {
                        "name": "-V",
                        "lines": 1,
                        "flag": "-V"
                    },
                    {
                        "name": "-w --readwrite",
                        "lines": 2,
                        "flag": "-w",
                        "long": "--readwrite"
                    }
                ]
            },
            {
                "name": "ENVIRONMENT VARIABLES",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "REPORTING BUGS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 1,
                "subsections": [
                    {
                        "name": "seatools(seagate)",
                        "lines": 5
                    }
                ]
            }
        ]
    }
}