.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
