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 |
subdirectory |
Ported |
Notes |
hxascdmp |
- |
utils |
converts stdin (assumed binary)
to ASCII hex and ASCII, sending its output to stdout (like Unix od command) |
|
rescan-scsi-bus.sh |
- |
archive |
copy of Kurt Garloff's useful
script |
|
scsi_inquiry |
INQUIRY |
examples |
uses deprecated
SCSI_IOCTL_SEND_COMMAND ioctl |
|
sdparm |
MODE SENSE/SELECT, INQUIRY |
**** |
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 |
check asc/ascq codes from
www.t10.org page against sg3_utils table |
|
sginfo |
MODE SENSE/SELECT, READ DEFECT |
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. See scsiinfo package
notes below. |
||
sgm_dd |
READ, WRITE |
sg_dd variant that uses memory
mapped IO (only on sg devices) |
||
sgp_dd |
READ, WRITE |
sg_dd variant that uses POSIX
threads |
||
sg_dd |
READ, WRITE |
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 |
utility specialized for EMC
Clariion series |
||
sg_format |
FORMAT |
fb,t64,w |
format or resize a SCSI disk |
|
sg_get_config |
GET CONFIGURATION |
fb,t64,w | fetch features and profiles of a
cd/dvd drive and/or its current media |
|
sg_ident |
REPORT/SET DEVICE IDENTIFIER |
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 |
fb,t64,w | fetch standard response, VPD
pages (including device identification) or version descriptors. Also
can perform IDENTIFY (PACKET) DEVICE ATA command. VPD page decoding now
also performed by sg_vpd . |
|
sg_logs |
LOG SENSE |
fb,t64,w | fetch log sense pages, decode
standard pages |
|
sg_luns |
REPORT LUNS |
fb,t64,w | fetch luns reported by a device
(lun 0 or "well known lu") |
|
sg_map |
INQUIRY |
shows mapping between sg devices
and primary device node (if any). In lk 2.6 see lsscsi . |
||
sg_map26 |
maps between single 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 |
fb,t64,w | dump mode pages (mainly in hex) |
|
sg_opcodes |
REPORT SUPPORTED OPERATION CODES |
fetch supported SCSI commands or
supported task management functions |
||
sg_persist |
PERSISTENT RESERVE IN/OUT |
fb,t64,w | control persistent reservations
and report
reservation status |
|
sg_prevent |
PREVENT ALLOW MEDIUM REMOVAL |
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 |
read from SCSI device cache.
Typically for testing the SCSI transport (for throughput or errors) |
||
sg_rdac |
MODE SENSE/SELECT |
fb,t64,w | display or modify RDAC redundant
controller mode page |
|
sg_read |
READ |
read continually from same
offset. Syntax similar to sg_dd (without write side). Can test SCSI
device cache and transport performance (like sg_rbuf). |
||
sg_readcap |
READ CAPACITY |
fb,t64,w | fetch the number of blocks and
the individual block size for disks and CD/DVD media |
|
sg_read_long |
READ LONG |
fb,t64,w | read data from given lba which
includes the block and ECC data. |
|
sg_reassign |
REASSIGN BLOCKS |
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 |
fb,t64,w | fetch sense data from the given
SCSI device. Useful if no autosense , to get progress indication (e.g.
during a format) or find the power condition state. |
|
sg_reset |
- |
Issue a driver, (SCSI) bus or
device (target or lun?) reset. |
||
sg_rmsn |
READ MEDIA SERIAL NUMBER |
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 |
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 | 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 |
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] |
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 |
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 |
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 |
Simple code examples of using
the scsi generic (sg) driver interface |
|
sg_simple16 |
READ |
examples |
Simple code example of sending a
16 byte cdb SCSI READ command |
|
sg_start |
START STOP UNIT |
fb,t64,w | Controls the power condition
state of a SCSI device. Primary use is to spin up and down SCSI disks. |
|
sg_sync |
SYNCHRONIZE CACHE |
fb,t64,w | Causes disk caches to be flushed
to media |
|
sg_test_rwbuf |
READ/WRITE BUFFER |
Random pattern written to SCSI
device buffer then read back and checked. Used in testing for data
corruption. |
||
sg_turs |
TEST UNIT READY |
fb,t64,w | Issue one or more Test Unit
Ready commands. Can be used to time SCSI command overhead. |
|
sg_verify | VERIFY | 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 |
fb,t64,w |
Decodes standard and some vendor
Vital Product Data (VPD) pages. |
|
sg_write_long |
WRITE LONG |
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 |
fb,t64,w | writes mode pages supplied in
ASCII hex (e.g. from "sg_modes -r") to the given 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.
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 latter supported
(uses SPT interface). Builds in a cygwin environment and requires
cygwin1.dll to run. |
Return to main page.
Last updated: 14th October 2006