A list of SCSI and storage utility programs that was at the bottom
of this page has been moved to the tools page.
Utility |
Main
SCSI commands |
directory |
CLI |
Ported |
Notes |
hxascdmp |
- |
utils |
adhoc |
fb |
converts stdin (assumed binary)
to ASCII hex and ASCII, sending its output to stdout (like the Unix od command) |
rescan-scsi-bus.sh |
- |
archive |
adhoc |
copy of Kurt Garloff's useful
script |
|
scsi_inquiry |
INQUIRY |
examples |
adhoc |
uses deprecated
SCSI_IOCTL_SEND_COMMAND ioctl |
|
sdparm |
MODE SENSE/SELECT, INQUIRY |
--> |
getopt |
fb,t64,w |
was in sg3_utils for a short
time; now in own package, see sdparm .
sdparm manipulates mode pages, reads VPD pages and sends simple
commands. |
sg_chk_asc |
- |
utils |
getopt |
fb |
check asc/ascq codes from www.t10.org page against
sg3_utils table |
sginfo |
MODE SENSE/SELECT, READ DEFECT |
adhoc |
symbolic decoding (optional
changing) of mode pages. Can also output (disk) defect lists. In lk 2.4
can be given primary device nodes (e.g. /dev/sda) as well as sg device
nodes. Port of older scsiinfo
utility. |
||
sgm_dd |
READ, WRITE |
dd |
sg_dd variant that uses memory
mapped IO (only on linux sg devices) |
||
sgp_dd |
READ, WRITE |
dd |
sg_dd variant that uses POSIX
threads |
||
sg_dd |
READ, WRITE |
dd |
Unix dd command variant, uses SG_IO ioctl to send SCSI commands to copy data. See the sg_dd page. | ||
sg_emc_trespass |
MODE SELECT |
adhoc |
utility specialized for EMC
Clariion series |
||
sg_format |
FORMAT |
getopt |
fb,t64,w |
format or resize a SCSI disk |
|
sg_get_config |
GET CONFIGURATION |
getopt |
fb,t64,w | fetch features and profiles of a
cd/dvd drive and/or its current media |
|
sg_ident |
REPORT/SET IDENTIFYING
INFORMATION |
getopt |
fb,t64,w | default is to report (fetch) the
device identifier. With the '--set'
option a new identifier is sent
to the device. |
|
sg_inq |
INQUIRY |
getopt+ |
fb,t64,w | fetch standard response, VPD
pages or version descriptors. Also
can perform IDENTIFY (PACKET) DEVICE ATA command. VPD page decoding
also performed by sg_vpd and sdparm. |
|
sg_logs |
LOG SENSE |
getopt+ |
fb,t64,w | fetch log sense pages, decode
standard and some vendor pages |
|
sg_luns |
REPORT LUNS |
getopt |
fb,t64,w | fetch luns reported by a device
(lun 0 or "well known lu") |
|
sg_map |
INQUIRY |
adhoc |
shows mapping between sg devices
and primary device node (if any). In lk 2.6 see lsscsi . |
||
sg_map26 |
getopt |
maps between single linux sg
device
and primary device node (and vice versa). Also does mapping in to, and
out of, sysfs. For the linux 2.6 series. |
|||
sg_modes |
MODE SENSE |
getopt+ |
fb,t64,w | fetch mode pages (mainly in hex) |
|
sg_opcodes |
REPORT SUPPORTED OPERATION CODES |
getopt+ |
fb,t64,w |
fetch supported SCSI commands or
supported task management functions |
|
sg_persist |
PERSISTENT RESERVE IN/OUT |
getopt |
fb,t64,w | control persistent reservations
and report
reservation status |
|
sg_prevent |
PREVENT ALLOW MEDIUM REMOVAL |
getopt |
fb,t64,w | control media removal, mainly
for those SCSI devices which have removable media (e.g. CD/DVD and tape
drives) |
|
sg_rbuf |
READ BUFFER |
getopt+ |
read from SCSI device cache.
Typically for testing the SCSI transport (for throughput or errors) |
||
sg_rdac |
MODE SENSE/SELECT |
adhoc |
fb,t64,w | display or modify RDAC redundant
controller mode page |
|
sg_read |
READ |
dd |
read continually from same
offset. Syntax similar to sg_dd (without write side). Can test SCSI
device cache and transport performance. |
||
sg_readcap |
READ CAPACITY |
getopt+ |
fb,t64,w | fetch the number of blocks and
the individual block size for disks and CD/DVD media |
|
sg_read_buffer |
READ BUFFER |
getopt |
fb,t64,w |
read descriptors or data |
|
sg_read_long |
READ LONG |
getopt |
fb,t64,w | read data from given lba which
includes the block and ECC data. |
|
sg_reassign |
REASSIGN BLOCKS |
getopt |
fb,t64,w | reassign a lba from one sector
on a disk (typically damaged) to a new (spare) sector. User data copied
if it is recoverable. |
|
sg_requests |
REQUEST SENSE |
getopt |
fb,t64,w | fetch sense data from the given
device. Modern uses include getting a progress indication (e.g.
during a format) or finding the power condition state. |
|
sg_reset |
- |
adhoc |
Issue a driver, (SCSI) bus or
device (target or lun?) reset. |
||
sg_rmsn |
READ MEDIA SERIAL NUMBER |
getopt |
fb,t64,w | Relatively new command
added to SPC-3. Format of response is vendor specific so this utility
outputs it in hex (default) or binary. |
|
sg_rtpg |
REPORT TARGET PORT GROUPS |
getopt |
fb,t64,w | Specialized for multi-ported
SCSI devices where one port (or a group of them) is preferred for IO
over another (or others). |
|
sg_sat_identify |
ATA PASS-THROUGH | getopt |
fb,t64,w |
Sends IDENTIFY DEVICE or IDENTIFY PACKET DEVICE ATA commands via the SAT ATA PASS-THROUGH (16 or 12) SCSI command. | |
sg__sat_identify |
ATA PASS-THROUGH |
examples |
adhoc |
Simpler version of
sg_sat_identify that uses the linux SG_IO ioctl directly. See also
sg_sat_chk_power, sg_sat_set_features and sg_sat_smart_rd_data in the
examples subdirectory. |
|
sg_scan |
[INQUIRY] |
adhoc [win: getopt] |
w |
maps each sg device name to
the corresponding numeric <host, channel, target, lun> tuple. In
lk 2.6 series the "lsscsi -g" command is
similar. In Windows shows one device per line, with the device's
various names and INQUIRY response string on that line. |
|
sg_senddiag |
SEND DIAGNOSTIC |
getopt+ |
fb,t64,w | Issues either a default self
test or a short/extended foreground/background self test. With no
arguments it uses RECEIVE DIAGNOSTIC RESULTS to list all supported
diagnostic
pages. |
|
sg_ses |
SEND/RECEIVE DIAGNOSTIC |
getopt |
fb,t64,w | Fetches status diagnostic
pages from, and sends some control pages to, a SCSI Enclosure Services
(SES) device. |
|
sg_simple1,2,3,4,5 |
INQUIRY, TEST UNIT READY |
examples |
adhoc |
Simple code examples of using
the scsi generic (sg) driver interface |
|
sg_simple16 |
READ |
examples |
adhoc |
Simple code example of sending a
16 byte cdb SCSI READ command |
|
sg_start |
START STOP UNIT |
getopt+ |
fb,t64,w | Controls the power condition
state of a SCSI device. Primary use is to spin up and down SCSI disks.
Can also load and eject removable media. |
|
sg_sync |
SYNCHRONIZE CACHE |
getopt |
fb,t64,w | Causes disk caches to be flushed
to media |
|
sg_test_rwbuf |
READ/WRITE BUFFER |
getopt |
Random pattern written to SCSI
device buffer then read back and checked. Used in testing for data
corruption. |
||
sg_turs |
TEST UNIT READY |
getopt+ |
fb,t64,w | Issue one or more Test Unit
Ready commands. Can be used to time SCSI command overhead. |
|
sg_verify | VERIFY | getopt |
fb,t64,w | reads indicated blocks on a SCSI disks, stops on the first error found. Does not yield any data. Useful for media scans. | |
sg_vpd |
INQUIRY |
getopt |
fb,t64,w |
Decodes standard and some vendor
Vital Product Data (VPD) pages. |
|
sg_write_buffer |
WRITE BUFFER |
getopt |
fb,t64,w |
write data; can be used to
download firmware |
|
sg_write_long |
WRITE LONG |
getopt |
fb,t64,w | writes to a lba, data which
includes the block and ECC data. Suitable data typically fetched by
prior
sg_read_long utility. |
|
sg_wr_mode |
MODE SELECT |
getopt |
fb,t64,w | writes mode pages supplied in
ASCII hex (e.g. from "sg_modes -r")
to the SCSI device. See sdparm for
another method of setting mode page
parameters. |
Example: given these 3 SCSI devices:
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun:
00
Vendor: SEAGATE Model:
ST318451LW Rev: 0003
Type:
Direct-Access
ANSI SCSI revision: 03
Host: scsi2 Channel: 00 Id: 04 Lun:
00
Vendor: PIONEER Model:
DVD-ROM DVD-303 Rev: 1.10
Type:
CD-ROM
ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 06 Lun:
00
Vendor: YAMAHA
Model:
CRW4416S Rev: 1.0g
Type:
CD-ROM
ANSI SCSI revision: 02
then the output from sg_scan is:
$ sg_scan
/dev/sg0: scsi1 channel=0 id=0
lun=0 type=0
/dev/sg1: scsi2 channel=0 id=4 lun=0 type=5
/dev/sg2: scsi2 channel=0 id=6
lun=0 type=5
INQUIRY data can be added to that output with the '-i' option. The
sg_map utility shows the mapping between scsi generic (sg) devices and
the corresponding primary device node. For some peripheral device
types, SCSI enclosures for example, there is no mapping and the
enclosure device must be accessed via a sg device node.
$ sg_map
/dev/sg0 /dev/sda
/dev/sg1 /dev/scd0
/dev/sg2 /dev/scd1
See the notes about header file problems in the README file inside each package.
sg3_utils version release date |
tarballs |
rpm source rpms ** |
i386 rpm binaries ** |
debian
packages |
1.20 20060418 |
sg3_utils-1.20.tgz | sg3_utils-1.20-1.src.rpm | sg3_utils-1.20-1.i386.rpm libsgutils-1_0-1.20-1.i386.rpm |
sg3-utils_1.20-0.1_i386.deb libsgutils1-0_1.20-0.1_i386.deb |
1.21 20060706 |
sg3_utils-1.21.tgz | sg3_utils-1.21-1.src.rpm | sg3_utils-1.21-1.i386.rpm libsgutils-1_0-1.21-1.i386.rpm |
sg3-utils_1.21-0.1_i386.deb libsgutils1-0_1.21-0.1_i386.deb |
1.22 20061016 |
sg3_utils-1.22.tgz |
sg3_utils-1.22-1.src.rpm | sg3_utils-1.22-1.i386.rpm libsgutils-1_0-1.22-1.i386.rpm |
sg3-utils_1.22-0.1_i386.deb libsgutils1-0_1.22-0.1_i386.deb |
1.23 20070127 |
sg3_utils-1.23.tgz | sg3_utils-1.23-1.src.rpm | sg3_utils-1.23-1.i386.rpm sg3_utils-libs-1.23-1.i386.rpm |
sg3-utils_1.23-0.1_i386.deb libsgutils1-0_1.23-0.1_i386.deb |
sg_utils version |
tarballs |
rpm source rpms ** |
i386 rpm binaries ** |
1.02 | sg_utils-1.02.tgz | sg_utils-1.02-1.src.rpm | sg_utils-1.02-1.i386.rpm |
OS |
build
to use shared library |
build
without library |
build
static executables |
Notes |
Linux |
make |
./make_no_lib.sh |
./make_no_lib_static.sh |
rpm spec file and debian
subdirectory included |
FreeBSD |
make -f Makefile.freebsd |
./make_no_lib_freebsd.sh |
|
|
Tru64
(OSF1) |
make -f Makefile.osf1 |
./make_no_lib_osf1.sh |
|
|
Windows |
make -f Makefile.win32 |
|
Windows NT and later supported
(uses SPT interface). Builds in a cygwin environment and requires
cygwin1.dll to run. |
|
Windows |
make -f Makefile.mingw |
Builds in a MinGW/MSYS
environment and requires no third party dll |
Return to main page.
Last updated: 31st January 2007