man pages section 1M: System Administration Commands

Exit Print View

Updated: July 2014

sg_read_long (1m)


sg_read_long - send a SCSI READ LONG command


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


SG3_UTILS                                         SG_READ_LONG(8)

     sg_read_long - send a SCSI READ LONG command

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

     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 (typ-
     ically 512 bytes for a disk)  plus  ECC  information  (whose
     format  is  proprietary)  plus  optionally other proprietary

     Arguments to long options are mandatory for short options as

     -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

sg3_utils-1.30       Last change: April 2010                    1

SG3_UTILS                                         SG_READ_LONG(8)

          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.

     -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.

     See   attributes(5)   for   descriptions  of  the  following

     |Availability   | system/storage/sg3_utils |
     |Stability      | Uncommitted              |
     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 num-
     ber  of  elements  in the "grown" defect list could be moni-
     tored (with "sg_reassign --grown")  as  the  disk  could  be
     nearing the end of its useful lifetime.

     Various numeric arguments (e.g. LBA) may include multiplica-
     tive suffixes 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 capable of correcting up to a single burst error or
     216  bits "on the fly". [Information obtained from MAV20xxrc
     product manual.]

sg3_utils-1.30       Last change: April 2010                    2

SG3_UTILS                                         SG_READ_LONG(8)

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

     Written by Douglas Gilbert.

     Report bugs to <dgilbert at interlog dot com>.

     Copyright (C) 2004-2010 Douglas Gilbert
     This  software is distributed under the GPL version 2. There
     is NO warranty; not even for MERCHANTABILITY or FITNESS  FOR

     sg_reassign, sg_write_long, sg_dd

     This   software   was   built   from   source  available  at   The   original
     community       source       was       downloaded       from

     Further information about this software can be found on  the
     open        source        community        website        at

sg3_utils-1.30       Last change: April 2010                    3