focal (8) sg_get_lba_status.8.gz

Provided by: sg3-utils_1.44-1ubuntu2_amd64 bug

NAME

       sg_get_lba_status - send SCSI GET LBA STATUS(16 or 32) command

SYNOPSIS

       sg_get_lba_status  [--16]  [--32] [--brief] [--element-id=EI] [--help] [--hex] [--lba=LBA] [--maxlen=LEN]
       [--raw] [--readonly] [--report-type=RT] [--scan-len=SL] [--verbose] [--version] DEVICE

DESCRIPTION

       Send the SCSI GET LBA STATUS(16) or GET LBA STATUS(32) command to the DEVICE and output the response. The
       16  byte  command  variant  was  introduced in (draft) SBC-3 revision 20 and devices that support logical
       block provisioning should support this command. The GET LBA STATUS(32) command was added in (draft) SBC-4
       revision 14.

       The  default  action  is to decode the response into one LBA status descriptor per line output to stdout.
       The descriptor LBA is output in hex (prefixed by '0x') and the number of  blocks  is  output  in  decimal
       followed  by  the provisioning status and additional status in decimal. The provisioning status can be in
       the range 0 to 15 of which only 0 (mapped or unknown), 1 (unmapped),  2  (anchored),  3  (mapped)  and  4
       (unknown) are used currently. The amount of output can be reduced by the --brief option.

OPTIONS

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

       -S, --16
              send  SCSI  GET LBA STATUS(16) command which is the 16 byte variant. In the absence of the --16 or
              the --32 options the SCSI GET LBA STATUS(16) command is sent. If both --16 and  the  --32  options
              are given then the GET LBA STATUS(16) command is sent.

       -T, --32
              send  SCSI  GET  LBA STATUS(32) command which is the 32 byte variant. When given together with the
              --16 option then this option is ignored (so the GET LBA STATUS(16) command is sent).

       -b, --brief
              when use once then one LBA status descriptor per line is output to stdout.   Each  line  has  this
              format:   "0x<descriptor_LBA>    0x<blocks>  <provisioning_status>  <additional_status>".  So  the
              descriptor's starting LBA and number of blocks are output in hex while the provisioning status and
              additional  status  are  in  decimal.  When  used twice (e.g. '-bb' or '--brief --brief') then the
              provisioning status of the given LBA (or LBA 0 if the --lba option is  not  given)  is  output  to
              stdout.  A  check  is  made  that the given LBA lies in the range of the first returned LBA status
              descriptor (as it should according to SBC-3 revision 20) and warnings are sent  to  stderr  if  it
              doesn't.

       -e, --element-id=EI
              where  EI  is  the element identifier of the physical element for which the LBAs shall be reported
              based on the value in the report type field (i.e.  RT). This option is only active with  the  SCSI
              GET LBA STATUS(32) command (i.e. it is ignored if the GET LBA STATUS(16) command is sent).
              Valid  element  identifiers  are non-zero. The default value of EI is 0 which means in the context
              that no element identifier is specified.

       -h, --help
              output the usage message then exit.

       -H, --hex
              output response to this command in ASCII hex.

       -l, --lba=LBA
              where LBA is the starting Logical Block Address (LBA) to check the provisioning status  for.  Note
              that the DEVICE chooses how many following blocks that it will return provisioning status for.

       -m, --maxlen=LEN
              where LEN is the (maximum) response length in bytes. It is placed in the cdb's "allocation length"
              field. If not given then 24 is used. 24 is enough space for the response header and one LBA status
              descriptor.  LEN should be 8 plus a multiple of 16 (e.g. 24, 40, and 56 are suitable).

       -r, --raw
              output response in binary (to stdout).

       -R, --readonly
              open  the  DEVICE  read-only  (e.g.  in  Unix  with the O_RDONLY flag).  The default is to open it
              read-write.

       -t, --report-type=RT
              where RT is 0 for report all LBAs; 1 for report LBAs using non-zero  provisioning  status;  2  for
              report  LBAs  that are mapped; 3 for report LBAs that are de-allocated; 4 for report LBAs that are
              anchored; 16 for report LBAs that may return an unrecovered error. The REPORT TYPE field was added
              to the GET LBA STATUS cdb in sbc4r12.
              Since  the  REPORT  TYPE  field  is  newer  than the command, the response contains the RTP bit to
              indicate whether or not the DEVICE acts on the REPORT TYE field (set when it does act on it, clear
              otherwise).

       -s, --scan-len=SL
              where SL is the scan length which is the maximum number of contiguous logical blocks to be scanned
              for logical blocks that meet the given report type (i.e. RT). This option is only active with  the
              SCSI GET LBA STATUS(32) command (i.e. it is ignored if the GET LBA STATUS(16) command is sent).
              The  default  value  of SL is 0 which should be interpreted by the DEVICE as there is no limits to
              the number of LBAs that shall be scanned.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output). Additional output caused by this  option  is
              sent to stderr.

       -V, --version
              print the version string and then exit.

NOTES

       In  SBC-3 revision 25 the calculation associated with the Parameter Data Length field in the response was
       modified. Prior to that the byte offset was 8 and in revision 25 it was changed to 4.

       For a discussion of logical block provisioning see section 4.7 of sbc4r14.pdf at  http://www.t10.org  (or
       the corresponding section of a later draft).

EXIT STATUS

       The exit status of sg_get_lba_status is 0 when it is successful. Otherwise see the sg3_utils(8) man page.

AUTHORS

       Written by Douglas Gilbert.

REPORTING BUGS

       Report bugs to <dgilbert at interlog dot com>.

       Copyright © 2009-2018 Douglas Gilbert
       This  software is distributed under a FreeBSD license. There is NO warranty; not even for MERCHANTABILITY
       or FITNESS FOR A PARTICULAR PURPOSE.

SEE ALSO

       sg_write_same(8), sg_unmap(8)