Provided by: sg3-utils_1.36-1ubuntu1_amd64 bug

NAME

       sg_verify - invoke SCSI VERIFY command(s) on a block device

SYNOPSIS

       sg_verify   [--16]  [--bpc=BPC]  [--bytchk=NDO]  [--count=COUNT]  [--dpo]  [--ebytchk=BVAL]  [--group=GN]
       [--help] [--in=IF] [--lba=LBA] [--readonly] [--verbose] [--version] [--vrprotect=VRP] DEVICE

DESCRIPTION

       Sends one or more SCSI VERIFY (10 or 16) commands to DEVICE. These SCSI commands are defined in the SBC-2
       (draft) standard at http://www.t10.org and SBC-3 drafts.

       When --bytchk=NDO is not given then the verify starts at the logical block address given by the --lba=LBA
       option and continues for --count=COUNT blocks. No more than --bpc=BPC blocks are verified by each  VERIFY
       command  so  if  necessary  multiple VERIFY commands are sent. No news is good news (i.e. if there are no
       verify errors detected then no messages are sent to stderr and the Unix return status is 0).

       When --bytchk=NDO is given then the --bpc=BPC option is ignored. A single verify command is issued and it
       starts at the logical block address given by the --lba=LBA option and continues for --count=COUNT blocks.
       The VERIFY command has an associated data-out buffer that is NDO bytes long. The contents of the data-out
       buffer are obtained from the FN file (if --in=FN is given) or from stdin.

OPTIONS

       Arguments to long options are mandatory  for  short  options  as  well.   The  options  are  arranged  in
       alphabetical order based on the long option name.

       -S, --16
              uses a VERIFY(16) command (default VERIFY(10)). Even without this option, using an --lba=LBA which
              is too large, will cause the utility to issue a VERIFY(16) command.

       -b, --bpc=BPC
              this  option  is  ignored  if --bytchk=NDO is given. Otherwise BPC specifies the maximum number of
              blocks that will be verified by a single SCSI VERIFY command. The  default  value  is  128  blocks
              which  equates  to  64 KB for a disk with 512 byte blocks. If BPC is less than COUNT then multiple
              SCSI VERIFY commands are sent to the device. For the default VERIFY(10) BPC cannot  exceed  0xffff
              (65,535)  while  for  VERIFY(16)  BPC  cannot  exceed 0x7fffffff (2,147,483,647). For recent block
              devices (disks) this value may be constrained by the maximum transfer length field  in  the  block
              limits VPD page.

       -B, --bytchk=NDO
              sets  the BYTCHK field to one in the VERIFY command. NDO is the number of bytes to obtain from the
              FN file (if --in=FN is given) or from stdin.  Those  bytes  are  placed  in  the  data-out  buffer
              associated  with  the SCSI VERIFY command. The minimum value for NDO is 1 and the maximum value is
              dependant on the OS. The actual value in the BYTCHK field in the VERIFY command may be modified by
              a --ebytchk=BVAL option.

       -c, --count=COUNT
              where COUNT specifies the number of blocks to verify. The default value is 1 . If COUNT is greater
              than BPC (or its default value of 128) and NDO is not given, 0 or less then multiple  SCSI  VERIFY
              commands  are  sent to the device. Otherwise COUNT becomes the contents of the verification length
              field of the SCSI VERIFY command issued. The sg_readcap utility can be used to  find  the  maximum
              number of blocks that a block device (e.g. a disk) has.

       -d, --dpo
              disable  page out changes the cache retention priority of blocks read on the device's cache to the
              lowest priority. This means that blocks read by other commands are more likely to  remain  in  the
              device's cache.

       -E, --ebytchk=BVAL
              sets  the  BYTCHK field to BVAL overriding the value (1) set by the --bytchk=NDO option. Values of
              1, 2 or 3 are accepted for BVAL however sbc3r34 reserves the value 2. If this option is given then
              --bytchk=NDO must also be given. If BVAL is 3 then COUNT must be 1 and NDO should be the  size  of
              one  logical  block  (plus  the size of some or all of the protection infomation if VRP is greater
              than 0).

       -g, --group=GN
              where GN becomes the contents of the group number  field  in  the  SCSI  VERIFY(16)  command.  The
              default value for GN is 0. Note that this option is ignored for the SCSI VERIFY(10) command.

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

       -i, --in=IF
              where  IF  is  the  name  of  a  file from which NDO bytes will be read and placed in the data-out
              buffer. This is only done when the --bytchk=NDO option is given. If this option is not given  then
              stdin is read. If IF is "-" then stdin is also used.

       -l, --lba=LBA
              where  LBA  specifies  the logical block address of the first block to start the verify operation.
              LBA is assumed to be decimal unless prefixed by '0x' or a trailing 'h' (see  below).  The  default
              value  is 0 (i.e. the start of the device).  -r, --readonly opens the DEVICE read-only rather than
              read-write which is the default. The Linux sg driver needs read-write access for the  SCSI  VERIFY
              command but other access methods may require read-only access.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output).

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

       -P, --vrprotect=VRP
              where  VRP  is  the  value  in  the  vrprotect field in the VERIFY command cdb. It must be a value
              between 0 and 7 inclusive. The default value is zero.

BYTCHK

       BYTCHK is the name of a field (two bits wide) in the VERIFY(10) and VERIFY(16) commands. When set to 1 or
       3 (sbc3r34 reserves the value 2) it indicates that associated with the SCSI VERIFY  command,  a  data-out
       buffer  will  be sent for the device (disk) to check. Using the --bytchk=NDO option sets the BYTCHK field
       to 1 and NDO is the number of bytes placed in the data-out buffer. Those bytes are obtained from stdin or
       IF (from the --in=FN option). The --ebytchk=BVAL option may be used to override the BYTCHK field value of
       1 with BVAL.

       The calculation of NDO is left up to the user. Its value depends on the logical block size (which cab  be
       found  with the sg_readcap utility), the COUNT and the VRP values. If the VRP is greater than 0 then each
       logical block will contain an extra 8 bytes (at least) of protection information.

       When the BYTCHK field is 0 then the verification process done by the device (disk) is vendor specific. It
       typically involves checking each block on the disk against its error  correction  codes  (ECC)  which  is
       additional data also held on the disk.

       Many  Operating Systems put limits on the maximum size of the data-out (and data-in) buffer. For Linux at
       one time the limit was less than 1 MB but has been increased somewhat.

NOTES

       Various numeric arguments (e.g. LBA) may include multiplicative suffixes or be given in hexadecimal.  See
       the "NUMERIC ARGUMENTS" section in the sg3_utils(8) man page.

       The amount of error correction and the number of retries attempted before a block is considered defective
       are  controlled in part by the Verify Error Recovery mode page. A note in the SBC-3 draft (rev 29 section
       6.4.9 on the Verify Error Recovery mode page) advises that to minimize the number of  checks  (and  hence
       have the most "sensitive" verify check) do the following in that mode page: set the EER bit to 0, the PER
       bit  to  1,  the DTE bit to 1, the DCR bit to 1, the verify retry count to 0 and the verify recovery time
       limit to 0. Mode pages can be modified with the sdparm utility.

       The SCSI VERIFY(6) command defined in the SSC-2 standard and later (i.e.  for tape drive systems) is  not
       supported by this utility.

EXIT STATUS

       The exit status of sg_verify 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

       Copyright © 2004-2012 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

       sdparm(sdparm), sg_modes(sg3_utils), sg_readcap(sg3_utils), sg_inq(sg3_utils)

sg3_utils-1.35                                    December 2012                                     SG_VERIFY(8)