Projects / sg3_utils


sg3_utils is a package of utilities for accessing devices that use SCSI command sets. Most utilities issue a single command and display the response, while some work at a slightly higher level. There are utilities for fetching INQUIRY data and VPD, mode, and log pages. There is support for modern SCSI transports such as SAS and FCP. The package is written for Linux and has been ported to FreeBSD, Solaris, Tru64, and Windows. There is an earlier version of this package for Linux 2.2 series kernels called sg_utils.


RSS Recent releases

  •  03 Apr 2014 12:54

Release Notes: This release contains mainly bugfixes and code cleanups, with some small extensions. It tracks changes made by since October 2013. sg_xcopy now sends the xcopy(lid1) command to the destination device by default.

Release Notes: This release contains mainly bugfixes and code cleanups, with some small extensions. It tracks changes made by since May 2013.

  •  03 Jun 2013 21:55

Release Notes: This release adds several features to the sg_xcopy utility and improves 64 bit LUN handling. changes since January 2013 have been tracked .

  •  19 Jan 2013 01:08

Release Notes: This release adds the sg_compare_and_write utility. changes since October 2012 have been tracked .

  •  15 Oct 2012 03:19

Release Notes: This release adds sg_xcopy and sg_copy_results for SCSI EXTENDED COPY command support. Changes have been tracked at since January 2012.

RSS Recent comments

05 Apr 2014 17:59 dpgilbert

The proposed read-only flag added to sg_sat_set_features and will appear in version 1.39. Best to email patches like that directly to me as I don't check this site that often.

More information about sg_xcopy: its xcopy(lid1) functionality has been ported to ddpt ( Further, ODX support (aka: xcopy v2, lite) is being added to ddpt and will appear shortly.

10 Dec 2013 00:05 lucasrangit Thumbs up

Using sg_sat_set_features to send EPC (TAPM) power commands requires ability to open device as read-only otherwise, drivers will wake up device and issue IDENTIFY and READ commands potentially negating power condition specified in command.

Below is a patch based off similar work in sg_start to illustrate. It works for me as I have confirmed the power condition using `hdparm -C /dev/sda` after issuing `sg_sat_set_features --feature=74 --count=0 --lba=1 /dev/sda` to transition to Standby_z (spin-down).

If this is acceptable, I would like to complete the patch to the necessary documentation and perform additional testing.

--- a/src/sg_sat_set_features.c
+++ b/src/sg_sat_set_features.c
@@ -55,6 +55,7 @@
{"help", no_argument, 0, 'h'},
{"len", required_argument, 0, 'l'},
{"lba", required_argument, 0, 'L'},
+ {"readonly", no_argument, 0, 'r'},
{"verbose", no_argument, 0, 'v'},
{"version", no_argument, 0, 'V'},
{0, 0, 0, 0},
@@ -79,6 +80,9 @@
" --lba=LBA | -L LBA LBA field contents (def: 0)\n"
" --len=16|12 | -l 16|12 cdb length: 16 or 12 bytes "
"(def: 16)\n"
+ " --readonly | -r open DEVICE read-only "
+ "(def: read-write)\n"
+ " recommended if DEVICE is ATA disk\n"
" --verbose | -v increase verbosity\n"
" --version | -V print version string and exit\n\n"
"Sends an ATA SET FEATURES command via a SAT pass through.\n"
@@ -256,12 +260,13 @@
int lba = 0;
int verbose = 0;
int ck_cond = 0;
+ int rdonly = 0;
int cdb_len = SAT_ATA_PASS_THROUGH16_LEN;

while (1) {
int option_index = 0;

- c = getopt_long(argc, argv, "c:Cf:hl:L:vV", long_options,
+ c = getopt_long(argc, argv, "c:Cf:hl:L:rvV", long_options,
if (c == -1)
@@ -302,6 +307,8 @@
+ case 'r':
+ rdonly = 1;
case 'v':
@@ -334,7 +341,7 @@
return 1;

- if ((sg_fd = sg_cmds_open_device(device_name, 0 /* rw */,
+ if ((sg_fd = sg_cmds_open_device(device_name, rdonly,
verbose)) < 0) {
fprintf(stderr, "error opening file: %s: %s\n",
device_name, safe_strerror(-sg_fd));

03 Jun 2013 21:52 dpgilbert

'Does sdparm support SCSI FW download?' No but sg_write_buffer in this package does.

03 Jun 2013 21:49 dpgilbert

With regard to the sg_xcopy offer by yuvalkashtan, a sg_xcopy (and sg_copy_results) was added in version 1.34 . There have been several extensions and fixes added in versions 1.35 and 1.36 . Are there more features that you could suggest for sg_xcopy?

25 Apr 2013 16:01 Tom4015

Does Sdparm support SCSI FW download?


Project Spotlight


An automatic rule-based time tracker.


Project Spotlight


Virtual server management software.