.TH "WRITE AND VERIFY" "8" "July 2014" "sg3_utils\-1.40" SG3_UTILS
.SH NAME
sg_write_and_verify \- send the SCSI WRITE AND VERIFY command
.SH SYNOPSIS
.B sg_write_verify
[\fI\-\-16\fR] [\fI\-\-bytchk=BC\fR] [\fI\-\-dpo\fR] [\fI\-\-group=GN\fR]
[\fI\-\-help\fR] [\fI\-\-ilen=ILEN\fR] [\fI\-\-in=IF\fR] \fI\-\-lba=LBA\fR
[\fI\-\-num=NUM\fR] [\fI\-\-repeat\fR] [\fI\-\-timeout=TO\fR]
[\fI\-\-verbose\fR] [\fI\-\-version\fR] [\fI\-\-wrprotect=WP\fR] \fIDEVICE\fR
.SH DESCRIPTION
.\" Add any additional description here
Send a SCSI WRITE AND VERIFY (10) or (16) command to \fIDEVICE\fR. The
data to be written is read from the \fIIF\fR file or, in its absence, a
buffer full of 0xff bytes is used. The length of the data\-out buffer sent
with the command is \fIILEN\fR bytes or, if that is not given, then it is
the length of the \fIIF\fR file.
.PP
The write operation is to the \fIDEVICE\fR's medium (optionally to its cache)
starting at logical block address \fILBA\fR for \fINUM\fR logical blocks.
After the write to medium is performed a verify operation takes place which
may viewed as a medium read (with appropriate checks) but without the data
being returned. Additionally, if \fIBS\fR is set to one, the data read back
from the medium in the verify operation is compared to the original data\-out
buffer.
.PP
The relationship between the number of logical blocks to be written (i.e.
\fINUM\fR) and the length (in bytes) of the data\-out buffer (i.e.
\fIILEN\fR) may be simply found by multiplying the former by the logical
block size. However if the \fIDEVICE\fR has protection information (PI)
then it becomes a bit more complicated. Hence the calculation is left to
the user with the default \fIILEN\fR, in the absence of the \fIIF\fR file,
being set to \fINUM\fR * 512.
.PP
For sending large amounts of data to contiguous logical blocks, a single
WRITE AND VERIFY command may not be appropriate (e.g. due to operating
system limitations). In such cases see the REPEAT section below.
.SH 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.
.TP
\fB\-S\fR, \fB\-\-16\fR
Send a WRITE AND VERIFY(16) command. The default is to send a WRITE AND
VERIFY(10) command unless \fILBA\fR or \fINUM\fR are too large for the
10 byte variant.
.TP
\fB\-b\fR, \fB\-\-bytchk\fR=\fIBC\fR
where \fIBC\fR is the value to place in the command's BYTCHK field. Values
between 0 and 3 (inclusive) are accepted. The default is value is 0 which
implies only a write to the medium then a verify operation are performed. The
only other value T10 defines currently is 1 which does performs an additional
comparison between the data\-out buffer that was used by the write operation
and the contents of the logical blocks read back from the medium.
.TP
\fB\-d\fR, \fB\-\-dpo\fR
Set the DPO (disable page out) bit in the command. The default is to leave
it clear.
.TP
\fB\-g\fR, \fB\-\-group\fR=\fIGN\fR
where \fIGN\fR is the value to place in the command's GROUP NUMBER field.
Values between 0 and 31 (inclusive) are accepted. The default is value is 0.
.TP
\fB\-h\fR, \fB\-\-help\fR
output the usage message then exit.
.TP
\fB\-I\fR, \fB\-\-ilen\fR=\fIILEN\fR
where \fIILEN\fR is the number of bytes that will be placed in the data\-out
buffer. If the \fIIF\fR file is given then no more than \fIILEN\fR bytes
are read from that file. If the \fIIF\fR file does not contain \fIILEN\fR
bytes then an error is reported. If the  \fIIF\fR file is not given then
a data\-out buffer with \fIILEN\fR bytes of 0xff is sent.
.TP
\fB\-i\fR, \fB\-\-in\fR=\fIIF\fR
read data (binary) from file named \fIIF\fR. If \fIIF\fR is "\-" then
stdin is used. This data will become the data\-out buffer and will be written
to the \fIDEVICE\fR's medium. If \fIBC\fR is 1 then that data\-out buffer
will be held until after the verify operation and compared to the data read
back from the medium.
.TP
\fB\-l\fR, \fB\-\-lba\fR=\fILBA\fR
where \fILBA\fR is the logical block address to start the write to medium.
Assumed to be in decimal unless prefixed with '0x' or has a trailing 'h'.
Must be provided.
.TP
\fB\-n\fR, \fB\-\-num\fR=\fINUM\fR
where \fINUM\fR is the number of blocks, starting at \fILBA\fR, to write
to the medium. The default value for \fINUM\fR is 1.
.TP
\fB\-R\fR, \fB\-\-repeat\fR
this option will continue to do WRITE AND VERIFY commands until the \fIIF\fR
file is exhausted. This option requires both the \fI\-\-ilen=ILEN\fR and
\fI\-\-in=IF\fR options to be given. Each command starts at the next logical
block address and is for no more than \fINUM\fR blocks. The last command may
be shorter with the number of blocks scaled as required. If there are
residue bytes a warning is sent to stderr. See the REPEAT section.
.TP
\fB\-t\fR, \fB\-\-timeout\fR=\fITO\fR
where \fITO\fR is the command timeout value in seconds. The default value is
60 seconds. If \fINUM\fR is large then command may require considerably more
time than 60 seconds to complete.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase the degree of verbosity (debug messages).
.TP
\fB\-V\fR, \fB\-\-version\fR
output version string then exit.
.TP
\fB\-w\fR, \fB\-\-wrprotect\fR=\fIWP\fR
set the WRPROTECT field in the cdb to \fIWP\fR. The default value is 0 which
implies no protection information is sent (along with the user data) in the
data\-out buffer.
.SH REPEAT
For data sizes around a megabyte and larger, it may be appropriate to send
multiple SCSI WRITE AND VERIFY commands due to operating system
limitations (e.g. pass\-through SCSI interfaces often limit the amount
of data that can be passed with a SCSI command). With this utility the
mechanism for doing that is the \fI\-\-repeat\fR option.
.PP
In this mode the \fI\-\-ilen=ILEN\fR and \fI\-\-in=IF\fR options must be
given. The \fIILEN\fR and \fINUM\fR values are treated as a per SCSI command
parameters. Up to \fIILEN\fR bytes will be read from the \fIIF\fR file
continually until it is exhausted. If the \fIIF\fR file is stdin, reading
continues until an EOF is detected. The data read from each iteration becomes
the data\-out buffer for a new WRITE AND VERIFY command.
.PP
The last read from the file (or stdin) may read less than \fIILEN\fR bytes
in which case the number of logical blocks sent to the last WRITE AND VERIFY
is scaled back accordingly. If there is a residual number of bytes left
after that scaling then that is reported to stderr.
.PP
If an error occurs then that is reported to stderr and via the exit status
and the utility stops at that point.
.SH NOTES
Other SCSI WRITE commands have a Force Unit Access (FUA) bit but that is
set (implicitly) by WRITE AND VERIFY commands hence there is no option to set
it. The data\-out buffer may still additionally be placed in the
\fIDEVICE\fR's cache and setting the DPO bit is a hint not to do that.
.PP
Normal SCSI WRITEs can be done with the ddpt and the sg_dd utilities. The
SCSI WRITE SAME command can be done with the sg_write_same utility while
the SCSI COMPARE AND WRITE command (sg_compare_and_write utility) offers
a "test and set" facility.
.PP
Various numeric arguments (e.g. \fILBA\fR) may include multiplicative
suffixes or be given in hexadecimal. See the "NUMERIC ARGUMENTS" section
in the sg3_utils(8) man page.
.SH EXIT STATUS
The exit status of sg_write_verify is 0 when it is successful. If the verify
operation fails that is typically indicated with a medium error which leads
to an exit status of 3.
.PP
If \fIBC\fR is set to 1 and the comparison it causes fails this utility will
indicate the miscompare with an exit status of 14. For other exit status
values see the EXIT STATUS section in the sg3_utils(8) man page.
.SH EXAMPLES
To start with, a simple example: write 1 block of data held in file t.bin
that is 512 bytes long then write that block to LBA 0x1234 on /dev/sg4 .
.PP
  # sg_write_verify \-\-lba=0x1234 \-\-in=t.bin /dev/sg4
.PP
Since '\-\-num=' is not given then it defaults to 1. Further the \fIILEN\fR
value is obtained from the file size of t.bin . To additionally do a
data\-out comparison to the read back data:
.PP
  # sg_write_verify -l 0x1234 -i t.bin --bytchk=1 /dev/sg4
.PP
The ddpt command can do copies between SCSI devices using READ and WRITE
commands. However, currently it has no facility to promote those WRITES
to WRITE AND VERIFY commands. Using a pipe, that could be done like this:
.PP
  # ddpt if=/dev/sg2 bs=512 bpt=8 count=11 of=- |
.br
sg_write_verify \-\-in=\- \-l 0x567 \-n 8 \-\-ilen=4096 \-\-repeat /dev/sg4
.PP
Both ddpt and sg_write_verify are configured for segments of 8 512 byte
logical blocks. Since 11 logical blocks are read then first 8 logical blocks
are copied followed by a copy of the remaining 3 blocks. Since it is assumed
that there is no protection information then the data\-in and data\-out
buffers will be 4096 bytes each. For sg_write_verify this needs to be stated
explicitly with the \-\-ilen=4096 option.
.SH AUTHORS
Bruno Goncalves and Douglas Gilbert.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
Copyright \(co 2014 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 ddpt(in a package of that name), sg_compare_and_write(8), sg_dd(8),
.B sg_write_same(8)
