.TH SG_RAW "8" "November 2015" "sg3_utils\-1.42" SG3_UTILS
.SH NAME
sg_raw \- send arbitrary SCSI command to a device
.SH SYNOPSIS
.B sg_raw [\fIOPTIONS\fR] \fIDEVICE\fR CDB0 CDB1 ...
.SH DESCRIPTION
This utility sends an arbitrary SCSI command (between 6 and 256 bytes) to
the \fIDEVICE\fR. There may be no associated data transfer; or data may be
read from a file and sent to the \fIDEVICE\fR; or data may be received from
the \fIDEVICE\fR and then displayed or written to a file. If supported
by the pass through, bidirectional commands may be sent (i.e. containing
both data to be sent to the \fIDEVICE\fR and received from the
\fIDEVICE\fR).
.PP
The SCSI command may be between 6 and 256 bytes long. Each command byte is
specified in plain hex format (00..FF) without a prefix or suffix. See
EXAMPLES section below.
.PP
The commands pass through a generic SCSI interface which is implemented
for several operating systems including Linux, FreeBSD and Windows.
.SH OPTIONS
Arguments to long options are mandatory for short options as well.
.TP
\fB\-b\fR, \fB\-\-binary\fR
Dump data in binary form, even when writing to stdout.
.TP
\fB\-h\fR, \fB\-\-help\fR
Display usage information and exit.
.TP
\fB\-i\fR, \fB\-\-infile\fR=\fIIFILE\fR
Read data from \fIIFILE\fR instead of stdin. This option is ignored if
\fB\-\-send\fR is not specified.
.TP
\fB\-k\fR, \fB\-\-skip\fR=\fILEN\fR
Skip the first \fILEN\fR bytes of the input file or stream. This option
is ignored if \fB\-\-send\fR is not specified.
.TP
\fB\-n\fR, \fB\-\-nosense\fR
Don't display SCSI Sense information.
.TP
\fB\-o\fR, \fB\-\-outfile\fR=\fIOFILE\fR
Write data received from the \fIDEVICE\fR to \fIOFILE\fR. The data is
written in binary. By default, data is dumped in hex format to stdout.
If \fIOFILE\fR is '\-' then data is dumped in binary to stdout.
This option is ignored if \fB\-\-request\fR is not specified.
.TP
\fB\-r\fR, \fB\-\-request\fR=\fIRLEN\fR
Expect to receive up to \fIRLEN\fR bytes of data from the \fIDEVICE\fR.
\fIRLEN\fR may be suffixed with 'k' to use kilobytes (1024 bytes) instead
of bytes. \fIRLEN\fR is decimal unless it has a leading '0x' or a
trailing 'h'.
.br
If \fIRLEN\fR is too small (i.e. either smaller than indicated by the
cdb (typically the "allocation length" field) and/or smaller than the
\fIDEVICE\fR tries to send back) then the HBA driver may complain. Making
\fIRLEN\fR larger than required should cause no problems. Most
SCSI "data\-in" commands return a data block that contains (in its early
bytes) a length that the \fIDEVICE\fR would "like" to send back if
the "allocation length" field in the cdb is large enough. In practice, the
\fIDEVICE\fR will return no more bytes than indicated in the "allocation
length" field of the cdb.
.TP
\fB\-R\fR, \fB\-\-readonly\fR
Open \fIDEVICE\fR read\-only. The default (without this option) is to open
it read\-write.
.TP
\fB\-s\fR, \fB\-\-send\fR=\fISLEN\fR
Read \fISLEN\fR bytes of data, either from stdin or from a file, and send
them to the \fIDEVICE\fR. In the SCSI transport, \fISLEN\fR becomes the
length (in bytes) of the "data\-out" buffer. \fISLEN\fR is decimal unless
it has a leading '0x' or a trailing 'h'.
.br
It is the responsibility of the user to make sure that the "data\-out"
length implied or stated in the cdb matches \fISLEN\fR. Note that some
common SCSI commands such as WRITE(10) have a "transfer length" field whose
units are logical blocks (which are often 512 bytes long).
.TP
\fB\-t\fR, \fB\-\-timeout\fR=\fISEC\fR
Wait up to \fISEC\fR seconds for command completion (default: 20).
Note that if a command times out the operating system may start by
aborting the command and if that is unsuccessful it may attempt
to reset the device.
.TP
\fB\-v\fR, \fB\-\-verbose\fR
Increase level of verbosity. Can be used multiple times.
.TP
\fB\-V\fR, \fB\-\-version\fR
Display version and license information and exit.
.SH NOTES
The sg_inq utility can be used to send an INQUIRY command to a device
to determine its peripheral device type (e.g. '1' for a streaming
device (tape drive)) which determines which SCSI command sets a device
should support (e.g. SPC and SSC). The sg_vpd utility probes the Vital
Product Pages of a devices which may contain useful information.
.PP
The ability to send more than a 16 byte CDB (in some cases 12 byte CDB)
may be restricted by the pass\-through interface, the low level driver
or the transport. In the Linux series 3 kernels, the bsg driver can
handle longer CDBs, block devices (e.g. /dev/sdc) accessed via the
SG_IO ioctl cannot handle CDBs longer than 16 bytes, and the sg driver
can handle longer CDBs from lk 3.17 .
.PP
The CDB command name defined by T10 for the given CDB is shown if
the '\-vv' option is given. The command line syntax still needs to be
correct, so /dev/null may be used for the \fIDEVICE\fR since the CDB
command name decoding is done before the \fIDEVICE\fR is checked.
.SH EXAMPLES
These examples, apart from the last one, use Linux device names. For
suitable device names in other supported Operating Systems see the
sg3_utils(8) man page.
.TP
sg_raw /dev/scd0 1b 00 00 00 02 00
Eject the medium in CD drive /dev/scd0.
.TP
sg_raw \-r 1k /dev/sg0 12 00 00 00 60 00
Perform an INQUIRY on /dev/sg0 and dump the response data (up to
1024 bytes) to stdout.
.TP
sg_raw \-s 512 \-i i512.bin /dev/sda 3b 02 00 00 00 00 00 02 00 00
Showing an example of writing 512 bytes to a sector on a disk
is a little dangerous. Instead this example will read i512.bin (assumed
to be 512 bytes long) and use the SCSI WRITE BUFFER command to send
it to the "data" buffer (that is mode 2). This is a safe operation.
.TP
sg_raw \-r 512 \-o o512.bin /dev/sda 3c 02 00 00 00 00 00 02 00 00
This will use the SCSI READ BUFFER command to read 512 bytes from
the "data" buffer (i.e. mode 2) then write it to the o512.bin file.
When used in conjunction with the previous example, if both commands
work then 'cmp i512.bin o512.bin' should show a match.
.TP
sg_raw \-\-infile=urandom.bin \-\-send=512 \-\-request=512 \-\-outfile=out.bin "/dev/bsg/7:0:0:0" 53 00 00 00 00 00 00 00 01 00
This is a bidirectional XDWRITEREAD(10) command being sent via a Linux
bsg device. Note that data is being read from "urandom.bin" and sent
to the device (data\-out) while resulting data (data\-in) is placed
in the "out.bin" file. Also note the length of both is 512 bytes
which corresponds to the transfer length of 1 (block) in the cdb (i.e.
the second last byte).
.TP
sg_raw.exe PhysicalDrive1 a1 0c 0e 00 00 00 00 00 00 e0 00 00
This example is from Windows and shows a ATA STANDBY IMMEDIATE command
being sent to PhysicalDrive1. That ATA command is contained within
the SCSI ATA PASS\-THROUGH(12) command (see the SAT or SAT\-2 standard at
http://www.t10.org). Notice that the STANDBY IMMEDIATE command does not
send or receive any additional data, however if it fails sense data
should be returned and displayed.
.SH EXIT STATUS
The exit status of sg_raw is 0 when it is successful. Otherwise see
the sg3_utils(8) man page.
.SH AUTHOR
Written by Ingo van Lil
.SH "REPORTING BUGS"
Report bugs to <inguin at gmx dot de>.
.SH COPYRIGHT
Copyright \(co 2001\-2015 Ingo van Lil
.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_inq, sg_vpd, sg3_utils (sg3_utils), plscsi
