Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Thursday, June 13, 2019
 
 

sg_read_long (8)

Name

sg_read_long - send a SCSI READ LONG command

Synopsis

sg_read_long   [--16]   [--correct]   [--help]  [--lba=LBA]  [--out=OF]
[--pblock] [--readonly] [--verbose] [--version] [--xfer_len=BTL] DEVICE

Description

SG_READ_LONG(8)                    SG3_UTILS                   SG_READ_LONG(8)



NAME
       sg_read_long - send a SCSI READ LONG command

SYNOPSIS
       sg_read_long   [--16]   [--correct]   [--help]  [--lba=LBA]  [--out=OF]
       [--pblock] [--readonly] [--verbose] [--version] [--xfer_len=BTL] DEVICE

DESCRIPTION
       Send SCSI READ LONG command to DEVICE. 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.

       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.

OPTIONS
       Arguments to long options are mandatory for short options as well.

       -S, --16
              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.

       -c, --correct
              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.

       -h, --help
              output the usage message then exit.

       -l, --lba=LBA
              where  LBA  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 --16 option should be used.

       -o, --out=OF
              instead of outputting ASCII hex to stdout, send it in binary  to
              the  file  called  OF.  If '-' is given for OF then the (binary)
              output is sent to stdout. Note that all  informative  and  error
              output is sent to stderr.

       -p, --pblock
              sets  the  'PBLOCK'  bit in the SCSI READ LONG command. When set
              the physical block (plus ECC data) containing the requested log-
              ical 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.

       -r, --readonly
              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.

       -v, --verbose
              increase the level of verbosity, (i.e. debug output).

       -V, --version
              print the version string and then exit.

       -x, --xfer_len=BTL
              where BTL 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  BTL  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.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+--------------------------+
       |ATTRIBUTE TYPE |     ATTRIBUTE VALUE      |
       +---------------+--------------------------+
       |Availability   | system/storage/sg3_utils |
       +---------------+--------------------------+
       |Stability      | Pass-through uncommitted |
       +---------------+--------------------------+
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.

       Various numeric arguments (e.g. LBA) may  include  multiplicative  suf-
       fixes  or  be given in hexadecimal. See the "NUMERIC ARGUMENTS" section
       in the sg3_utils(8) man page.

       As a data point, Fujitsu uses a 54 byte ECC (per block) which is  capa-
       ble  of correcting up to a single burst error or 216 bits "on the fly".
       [Information obtained from MAV20xxrc product manual.]

EXIT STATUS
       The exit status of sg_read_long is 0 when it is  successful.  Otherwise
       see the sg3_utils(8) man page.

AUTHORS
       Written by Douglas Gilbert.

REPORTING BUGS
       Report bugs to <dgilbert at interlog dot com>.

COPYRIGHT
       Copyright (C) 2004-2016 Douglas Gilbert
       This  software is distributed under the GPL version 2. There is NO war-
       ranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PUR-
       POSE.

SEE ALSO
       sg_reassign, sg_write_long, sg_dd


       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source was downloaded from  http://sg.danny.cz/sg/p/sg3_utils-1.42.tgz

       Further information about this software can be found on the open source
       community website at http://sg.danny.cz/sg/sg3_utils.html.



sg3_utils-1.42                   November 2015                 SG_READ_LONG(8)