COMPARE AND WRITE(8) | SG3_UTILS | COMPARE AND WRITE(8) |
sg_compare_and_write - send the SCSI COMPARE AND WRITE command
sg_compare_and_write [--dpo] [--fua] [--fua_nv] [--grpnum=GN] [--help] --in=IF [--inw=WF] --lba=LBA [--num=NUM] [--quiet] [--timeout=TO] [--verbose] [--version] [--wrprotect=WP] [--xferlen=LEN] DEVICE
Send the SCSI COMPARE AND WRITE command to DEVICE. This utility reads a compare buffer and a write buffer from either one or two files. If the --inw=WF option is not given then the concatenated compare and write buffers are read from the file indicated by the --in=IF option. If the --inw=WF option is given then the compare buffer is read from the file indicated by the --in=IF while the write buffer is read from the file indicated by the --inw=WF.
Those buffers are expected to each contain NUM blocks of data. The compare starts at logical block address LBA on the DEVICE and if the comparison fails (i.e. the provided compare buffer does not equal at LBA on the DEVICE) then the COMPARE AND WRITE command finishes with a sense key of MISCOMPARE. In this case this utility will completes and set an exit status of 14 (which happens to be the sense key value of MISCOMPARE).
If the comparison succeeds then the provided write buffer is written to starting at LBA for NUM blocks on the DEVICE.
The actual number of bytes transferred in the data-out buffer of the COMPARE AND WRITE command may need to be given by the user with the --xferlen=LEN option. LEN defaults to (2 * NUM * 512) which is 1024 for the default NUM of 1. If the block size is other than 512 then the user will need to use --xferlen=LEN option. If protection information is given (indicated by a value of WP other than 0 (the default)) then for a NUM of 1 LEN should be 1040 . Note that the SCSI READ CAPACITY command is not checked by this utility (e.g. to find the block size).
The definition of the SCSI COMPARE AND WRITE command requires that the DEVICE implement the compare and optional write as an uninterrupted series of actions. Depending on some other DEVICE settings a verify operation may occur prior to the compare.
When a mismatch occurs between the compare buffer and the blocks starting at LBA read from the DEVICE the sense buffer containing the MISCOMPARE sense key causes several messages to be sent to stderr (including the offset of the first byte mismatch). To suppress these messages use the --quiet option. With or without the --quiet option the exit status will be set to 14.
This command is defined in SBC-3 whose most recent revision is 36. SBC-3 and other SCSI documents can be found at http://www.t10.org .
Arguments to long options are mandatory for short options as well. The options are arranged in alphabetical order based on the long option name.
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 exit status of sg_compare_and_write is 0 when it is successful. If the compare step fails then the exit status is 14. For other exit status values see the EXIT STATUS section in the sg3_utils(8) man page.
Earlier versions of this utility set an exit status of 98 when there was a MISCOMPARE.
Written by Shahar Salzman. Maintained by Douglas Gilbert. Additions by Eric Seppanen.
Report bugs to shahar.salzman@kaminario.com or dgilbert@interlog.com
Copyright © 2012-2018 Kaminario Technologies LTD
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of the <organization> nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Kaminario Technologies LTD BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
sg_xcopy, sg_receive_copy_results(sg3_utils)
August 2018 | sg3_utils-1.43 |