103 lines
4.4 KiB
Groff
103 lines
4.4 KiB
Groff
.TH SG_READ_LONG "8" "November 2015" "sg3_utils\-1.42" SG3_UTILS
|
|
.SH NAME
|
|
sg_read_long \- send a SCSI READ LONG command
|
|
.SH SYNOPSIS
|
|
.B sg_read_long
|
|
[\fI\-\-16\fR] [\fI\-\-correct\fR] [\fI\-\-help\fR] [\fI\-\-lba=LBA\fR]
|
|
[\fI\-\-out=OF\fR] [\fI\-\-pblock\fR] [\fI\-\-readonly\fR] [\fI\-\-verbose\fR]
|
|
[\fI\-\-version\fR] [\fI\-\-xfer_len=BTL\fR] \fIDEVICE\fR
|
|
.SH DESCRIPTION
|
|
.\" Add any additional description here
|
|
.PP
|
|
Send SCSI READ LONG command to \fIDEVICE\fR. The read buffer is output in hex
|
|
and ASCII to stdout or placed in a file. Note that the data returned includes
|
|
the logical block data (typically 512 bytes for a disk) plus ECC
|
|
information (whose format is proprietary) plus optionally other proprietary
|
|
data. Note that the logical block data may be encoded or encrypted.
|
|
.PP
|
|
In SBC\-4 revision 7 the SCSI READ LONG (10 and 16 byte) commands were made
|
|
obsolete. In the same revision all uses of SCSI WRITE LONG (10 and 16 byte)
|
|
commands were made obsolete apart from the case in which the WR_UNCOR bit is
|
|
set.
|
|
.SH OPTIONS
|
|
Arguments to long options are mandatory for short options as well.
|
|
.TP
|
|
\fB\-S\fR, \fB\-\-16\fR
|
|
uses a SCSI READ LONG(16) command. The default action is to use a SCSI
|
|
READ LONG(10) command. The READ LONG(10) command has a 32 bit field for
|
|
the lba while READ LONG(16) has a 64 bit field.
|
|
.TP
|
|
\fB\-c\fR, \fB\-\-correct\fR
|
|
sets the 'CORRCT' bit in the SCSI READ LONG command. When set the data is
|
|
corrected by the ECC before being transferred back to this utility. The
|
|
default is to leave the 'CORRCT' bit clear in which case the data is
|
|
not corrected.
|
|
.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 is the logical block address of the sector to read. Assumed
|
|
to be in decimal unless prefixed with '0x' (or has a trailing 'h'). Defaults
|
|
to lba 0. If the lba is larger than can fit in 32 bits then the \fI\-\-16\fR
|
|
option should be used.
|
|
.TP
|
|
\fB\-o\fR, \fB\-\-out\fR=\fIOF\fR
|
|
instead of outputting ASCII hex to stdout, send it in binary to the
|
|
file called \fIOF\fR. If '\-' is given for \fIOF\fR then the (binary)
|
|
output is sent to stdout. Note that all informative and error output is
|
|
sent to stderr.
|
|
.TP
|
|
\fB\-p\fR, \fB\-\-pblock\fR
|
|
sets the 'PBLOCK' bit in the SCSI READ LONG command. When set the
|
|
physical block (plus ECC data) containing the requested logical block
|
|
address is read. The default is to leave the 'PBLOCK' bit clear in
|
|
which case the logical block (plus any ECC data) is read.
|
|
.TP
|
|
\fB\-r\fR, \fB\-\-readonly\fR
|
|
opens the DEVICE read\-only rather than read\-write which is the
|
|
default. The Linux sg driver needs read\-write access for the SCSI
|
|
READ LONG command but other access methods may require read\-only
|
|
access.
|
|
.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.
|
|
.TP
|
|
\fB\-x\fR, \fB\-\-xfer_len\fR=\fIBTL\fR
|
|
where \fIBTL\fR is the byte transfer length (default to 520). If the
|
|
given value (or the default) does not match the "long" block size of the
|
|
device, the appropriate \fIBTL\fR is deduced from the error response and
|
|
printed (to stderr). The idea is that the user will retry this utility
|
|
with the correct transfer length.
|
|
.SH NOTES
|
|
If a defective block is found and its contents, if any, has been
|
|
retrieved then "sg_reassign" could be used to map out the defective
|
|
block. Associated with such an action the number of elements in
|
|
the "grown" defect list could be monitored (with "sg_reassign \-\-grown")
|
|
as the disk could be nearing the end of its useful lifetime.
|
|
.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.
|
|
.PP
|
|
As a data point, Fujitsu uses a 54 byte ECC (per block) which is capable
|
|
of correcting up to a single burst error or 216 bits "on the
|
|
fly". [Information obtained from MAV20xxrc product manual.]
|
|
.SH EXIT STATUS
|
|
The exit status of sg_read_long 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\-2016 Douglas Gilbert
|
|
.br
|
|
This software is distributed under the GPL version 2. There is NO
|
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
.SH "SEE ALSO"
|
|
.B sg_reassign, sg_write_long, sg_dd
|