blob: 338f5d51514dcdd838f7c1b9a6d5947ba9a5bc47 [file] [log] [blame]
.TH SG_VERIFY "8" "January 2007" "sg3_utils\-1.23" SG3_UTILS
.SH NAME
sg_verify \- invoke SCSI VERIFY command(s) on a block device
.SH SYNOPSIS
.B sg_verify
[\fI\-\-bpc=BPC\fR] [\fI\-\-count=COUNT\fR] [\fI\-\-dpo\fR] [\fI\-\-help\fR]
[\fI\-\-lba=LBA\fR] [\fI\-\-verbose\fR] [\fI\-\-version\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
.PP
Sends one or more SCSI VERIFY commands to \fIDEVICE\fR. It is the 10 byte
VERIFY command defined for block devices (see SBC\-2 at http://www.t10.org).
Verify starts at the logical block address given by the \fI\-\-lba=LBA\fR
option and continues for \fI\-\-count=COUNT\fR blocks. No more than
\fI\-\-bpc=BPC\fR 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 no messages are sent to stderr and the Unix return
status is 0).
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-b\fR, \fB\-\-bpc\fR=\fIBPC\fR
where \fIBPC\fR 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 \fIBPC\fR is less than
\fICOUNT\fR then multiple SCSI VERIFY commands are sent to the device. For
recent block devices (disks) this value may be constrained by the maximum
transfer length field in the block limits VPD page.
.TP
\fB\-c\fR, \fB\-\-count\fR=\fICOUNT\fR
where \fICOUNT\fR specifies the number of blocks to verify. The default value
is 1 . If \fICOUNT\fR is greater than \fIBPC\fR (or its default value of 128)
then multiple SCSI VERIFY commands are sent to the device. The
.B sg_readcap
utility can be used to find the maximum number of blocks that a block
device (e.g. a disk) has.
.TP
\fB\-d\fR, \fB\-\-dpo\fR
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.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit.
.TP
\fB\-l\fR, \fB\-\-lba\fR=\fILBA\fR
where \fILBA\fR specifies the logical block address of the first block to
start the verify operation. \fILBA\fR 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).
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the level of verbosity, (i.e. debug output).
.TP
\fB\-V\fR, \fB\-\-version\fR
print the version string and then exit.
.SH NOTES
The \fIBPC\fR, \fICOUNT\fR and \fILBA\fR arguments may be followed by one of
these multiplicative suffixes:
c C *1; w W *2; b B *512; k K KiB *1,024; KB *1,000; m M MiB *1,048,576;
MB *1,000,000; g G GiB *1,073,741,824; GB *1,000,000,000; t T TiB *(2**40);
TB *(10**12); p P PiB *(2**50) and PB *(10**15). The "T" and "P" based
suffixes can only be used for \fICOUNT\fR and \fILBA\fR. Also a suffix of
the form "x<n>" multiplies the leading number by <n>.
.PP
Alternatively numerical values can be given in hexadecimal preceded by
either "0x" or "0X" (or has a trailing "h" or "H"). When hex numbers are
given, multipliers cannot be used.
.PP
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\-2 (draft)
standard 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 error
recovery timeout to 0. Mode pages can be modified with the
.B sginfo
utility.
.SH EXIT STATUS
The exit status of sg_verify is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH AUTHORS
Written by Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2004\-2007 Douglas Gilbert
.br
This software is distributed under a FreeBSD license. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
.SH "SEE ALSO"
.B sginfo(sg3_utils), sg_modes(sg3_utils), sg_readcap(sg3_utils),
.B sg_inq(sg3_utils)