Provided by: sg3-utils_1.17-2_i386
sg_test_rwbuf - Tests the SCSI host adapter by issuing write and read
operations on a device’s buffer and calculating checksums.
sg_test_rwbuf [--addrd=<n>] [--addwr=<n>] [--help] [--quick]
--size=<sz> [--times=<n>] [--verbose] [--version] <scsi_device>
or (an older deprecated format)
sg_test_rwbuf <scsi_device> <sz> [<addwr>] [<addrd>]
sg_test_rwbuf writes and reads back sz bytes to the internal buffer of
<scsi_device> (e.g. /dev/sda or /dev/sg0). A pseudo random pattern is
written to the data buffer on the device then read back. If the same
pattern is found ’Success’ is reported. If they do not match (checksums
unequal) then this is reported and up to 24 bytes from the first point
of mismatch are reported; the first line shows what was written and the
second line shows what was received. For testing purposes, you can ask
it to write <addwr> or read <addrd> additional bytes.
--addrd=<n> | -r <n>
Read an additional <n> bytes (than indicated by <sz>) from the
data buffer. Checksum is performed over the first <sz> bytes.
--addwr=<n> | -w <n>
Write an additional <n> bytes (than indicated by <sz>) of zeroes
into the data buffer. Checksum is generated over the first <sz>
--help | -h
Print out a usage message the exit.
--quick | -q
Perform a READ BUFFER descriptor command to find out the
available data buffer length and offset, print them out then
exit (without testing with write/read sequences).
--size=<sz> | -s <sz>
Size of buffer in bytes to be written then read and checked.
This number needs to be less than on equal to the size of the
device’s data buffer which can be seen from the ’--quick’
option. Either this option or the ’--quick’ option should be
--times=<n> | -t <n>
Number of times to repeat the write/read to buffer test. Default
value is 1 .
--verbose | -v
increase verbosity of output.
--version | -V
print version number (and data of last change) then exit.
The microcode in a SCSI device is _not_ modified by doing a WRITE
BUFFER command with its mode set to "data" (0x2) as done by this
utility. Therefore this utility is safe in that respect. [Mode values
0x4, 0x5, 0x6 and 0x7 are the dangerous ones :-)]
WARNING: If you access the device at the same time (e.g. because it’s a
hard disk with a mounted file system on it) the device’s buffer may be
used by the device itself for other data at the same time, and
overwriting it may or may not cause data corruption! HOWEVER the SPC-3
draft standard does state in its WRITE BUFFER command: "This command
shall not alter any medium of the logical unit when data mode ... is
specified". This implies that it _is_ safe to use this utility with
devices that have mounted file systems on them. Following this theme
further, a disk with active mounted file systems may cause the data
read back to be different (due to caching activity) to what was written
and hence a checksum error.
Written by D. Gilbert and K. Garloff
Copyright © 2000-2005 Douglas Gilbert, Kurt Garloff
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR