A list of SCSI and storage utility programs can be found on this tools page.
| Utility |
Main
SCSI commands invoked |
directory |
CLI |
Ported |
Notes |
| hxascdmp |
- |
utils |
adhoc |
f,s,w |
converts stdin (assumed binary)
to ASCII hex and ASCII, sending its output to stdout (like the Unix od command and hexdump in BSD) |
| 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 |
f,s,t,w |
was in the sg3_utils package 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 |
f,s |
check asc/ascq codes from www.t10.org page against
sg3_utils table |
| sginfo [legacy, use sdparm] |
MODE SENSE/SELECT, READ DEFECT |
src |
adhoc |
symbolic decoding (optional
changing) of mode pages. Can also output (disk) defect lists. Port of
older scsiinfo
utility. |
|
| sgm_dd |
READ, WRITE |
src |
dd |
sg_dd variant that uses memory
mapped IO (only on linux sg devices) |
|
| sgp_dd |
READ, WRITE |
src |
dd |
sg_dd variant that uses POSIX
threads |
|
| sg_dd |
READ, WRITE |
src |
dd |
Unix dd command variant, uses
SG_IO ioctl to send SCSI commands to copy data. See the sg_dd page. Reworked to ddpt
. |
|
| sg_emc_trespass |
MODE SELECT |
src |
adhoc |
utility specialized for EMC
Clariion series |
|
| sg_format |
FORMAT |
src |
getopt |
f,s,t,w |
format or resize a SCSI disk |
| sg_get_config |
GET CONFIGURATION |
src |
getopt |
f,s,t,w | fetch features and profiles of a
cd/dvd drive and/or its current media |
| sg_get_lba_status |
GET LBA STATUS |
src |
getopt |
f,s,t,w |
thin provisioning support |
| sg_ident |
REPORT/SET IDENTIFYING
INFORMATION |
src |
getopt |
f,s,t,w | default is to report (fetch) the
device identifier. With the '--set'
option a new identifier is sent
to the device. |
| sg_inq |
INQUIRY |
src |
getopt+ |
f,s,t,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 |
src |
getopt+ |
f,s,t,w | fetch log sense pages, decode
standard and some vendor pages |
| sg_luns |
REPORT LUNS |
src |
getopt |
f,s,t,w | fetch luns reported by a device
(lun 0 or "well known lu") |
| sg_map |
INQUIRY |
src |
adhoc |
shows mapping between sg devices
and primary device node (if any). In lk 2.6 see lsscsi . |
|
| sg_map26 |
src |
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 |
src |
getopt+ |
f,s,t,w | fetch mode pages (output mainly
in hex, to decode output use sdparm) |
| sg_opcodes |
REPORT SUPPORTED OPERATION CODES |
src |
getopt+ |
f,s,t,w |
fetch supported SCSI commands or
supported task management functions |
| sg_persist |
PERSISTENT RESERVE IN/OUT |
src |
getopt |
f,s,t,w | control persistent reservations
and report
reservation status |
| sg_prevent |
PREVENT ALLOW MEDIUM REMOVAL |
src |
getopt |
f,s,t,w | control media removal, mainly
for those SCSI devices which have removable media (e.g. CD/DVD and tape
drives) |
| sg_raw |
<user specified> |
src |
getopt |
f,s,t,w |
send user supplied cdb |
| sg_rbuf |
READ BUFFER |
src |
getopt+ |
read from SCSI device cache.
Typically for testing the SCSI transport (for throughput or errors) |
|
| sg_rdac |
MODE SENSE/SELECT |
src |
adhoc |
f,s,t,w | display or modify RDAC redundant
controller mode page |
| sg_read |
READ |
src |
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 |
src |
getopt+ |
f,s,t,w | fetch the number of blocks and
the individual block size for disks and CD/DVD media |
| sg_read_buffer |
READ BUFFER |
src |
getopt |
f,s,t,w |
read descriptors or data |
| sg_read_long |
READ LONG |
src |
getopt |
f,s,t,w | read data from given lba which
includes the block and ECC data. |
| sg_reassign |
REASSIGN BLOCKS |
src |
getopt |
f,s,t,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 |
src |
getopt |
f,s,t,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 |
- |
src |
adhoc |
Issue a driver, (SCSI) bus or
device (target or lun?) reset. |
|
| sg_rmsn |
READ MEDIA SERIAL NUMBER |
src |
getopt |
f,s,t,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 |
src |
getopt |
f,s,t,w | Specialized for multi-ported
SCSI devices where one port (or a group of them) is preferred for IO
over another (or others). |
| sg_safte | READ BUFFER | src |
getopt | f,s,t,w | fetch information from a SAF-TE processor |
| sg_sat_identify |
ATA PASS-THROUGH | src |
getopt |
f,s,t,w |
Send ATA IDENTIFY DEVICE or IDENTIFY PACKET DEVICE 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_phy_event, sg__sat_set_features and
sg_sat_smart_rd_data in the
examples subdirectory. |
|
| sg_sat_phy_event |
ATA PASS-THROUGH | src |
getopt |
f,s,t,w | Sends an ATA READ LOG EXT
command via a SAT to fetch log page 11h which contains SATA phy event
counters. |
| sg__sat_phy_event |
ATA PASS-THROUGH | examples |
getopt |
Simpler version of sg_sat_phy_event | |
| sg_sat_set_features |
ATA PASS_THROUGH |
src |
getopt |
f,s,t,w | Sends ATA SET FEATURES command
via SAT |
| sg__sat_set_features | ATA PASS_THROUGH | examples | getopt |
Simpler version of sg_sat_set_features that uses the linux SG_IO ioctl directly. | |
| sg_scan |
[INQUIRY] |
src .c.linux |
adhoc |
linux only |
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. |
| sg_scan |
[INQUIRY] |
src .c.win32 |
getopt |
win32 only |
shows one device per line, with
the device's
various names and INQUIRY response string on that line. |
| sg_senddiag |
SEND DIAGNOSTIC |
src |
getopt+ |
f,s,t,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 |
src |
getopt |
f,s,t,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 |
src |
getopt+ |
f,s,t,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_stpg |
SET TARGET PORT GROUPS | src |
getopt |
f,s,t,w | Specialized for multi-ported SCSI devices where one port (or a group of them) is preferred for IO over another (or others). |
| sg_sync |
SYNCHRONIZE CACHE |
src |
getopt |
f,s,t,w | Causes disk caches to be flushed
to media |
| sg_test_rwbuf |
READ/WRITE BUFFER |
src |
getopt |
Random pattern written to SCSI
device buffer then read back and checked. Used in testing for data
corruption. |
|
| sg_turs |
TEST UNIT READY |
src |
getopt+ |
f,s,t,w | Issue one or more Test Unit
Ready commands. Can be used to time SCSI command overhead. |
| sg_unmap |
UNMAP |
src |
getopt |
f,s,t,w |
thin provisioning support
("Trim" in the ATA world) |
| sg_verify | VERIFY | src |
getopt |
f,s,t,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 |
src |
getopt |
f,s,t,w |
Decodes standard and some vendor
Vital Product Data (VPD) pages. |
| sg_write_buffer |
WRITE BUFFER |
src |
getopt |
f,s,t,w |
write data; can be used to
download firmware |
| sg_write_long |
WRITE LONG |
src |
getopt |
f,s,t,w | writes to a lba, data which
includes the block and ECC data. Suitable data typically fetched by
prior
sg_read_long utility. |
| sg_write_same |
WRITE SAME |
src |
getopt |
f,s,t,w |
writes a single block to one or
more (consecutive) lbas |
| sg_wr_mode |
MODE SELECT |
src |
getopt |
f,s,t,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
| 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 |
Return to main page.
Last updated: 2nd October 2009