SG3_UTILS(8) SG3_UTILS SG3_UTILS(8) (NAME) sg3_utils - SCSI (SYNOPSIS) sg_* [--dry-run] [--enumerate] [--help] [--hex] [--in=FN] [--inhex=FN] [--json[=JO]] [--js-file=JFN] [--maxlen=LEN] [--raw] [--timeout=SECS] [--verbose] [--version] [--] [OTHER_OPTIONS] [DEVICE] (DESCRIPTION) sg3_utils SCSI (pass through) DEVICE . <> <> SCSI . <> SCSI VERIFY . SCSI sg3_utils COVERAGE . sg_raw SCSI ( ) DEVICE . sg_decode_sense (sense data) . sg_raw -vvv T10 CDB SCSI . SCSI https://www.t10.org . ANSI . SCSI https://www.t10.org/scsi-3.htm SCSI . ( ) SCSI (SAM) SAM-5 (ANSI INCITS 515-2016) SAM-6 . SCSI SCSI (SPC) SPC-5 (ANSI INCITS 502-2020) SPC-6 . ( ) SBC SSC SCSI SES CD/DVD/BD MMC . ATA SCSI . SCSI ATA ( ). SCSI ATA (SAT SAT-2 SAT-3) INCITS(ANSI) ISO SAT-4 . SAT SATL (HBA) ( SAS) . https://www.t10.org . SCSI . <> . . ( ) ()getopt_long . : ( '-v') ( '--verbose'). () <<=>> ( sg_verify '-l 2a6h' '--lba=2a6h' ). ()getopt_long '-all' '-a -l -l' . DEVICE . sg_inq sg_logs sg_modes sg_opcode sg_rbuff sg_readcap sg_senddiag sg_start sg_turs <<->> . <<=>> ( '-p=1f' sg_modes). ( '-vv' ). . . sg3_utils ()getopt_long . ()getopt_long . ()getopt_long ( POSIX ) . SG3_UTILS_OLD_OPTS '-O' '--old' . . sg3_utils dd ( sg_dd) READ WRITE SCSI . sg_dd . ( sg_dd) ddpt . (COMMAND DESCRIPTOR BLOCK) SCSI CDB . SCSI READ(16) CDB . CDB . CDB ( ) (big endian) . (ENVIRONMENT VARIABLES) SG3_UTILS_OLD_OPTS . . SG3_UTILS_INVOCATION . SG3_UTILS_INVOCATION "v" . ( ) . . stdout . . SG3_UTILS_DSENSE . SNTL . SNTL SCSI NVMe . 0 SCSI ( SNTL ) NVMe NVMe SCSI <> () . SCSI <> () . ( sg_persist SG_PERSIST_IN_RDONLY ). . SG3_UTILS_LINUX_NANO sg 4.0.30 . --verbose . ( ) . . ( ). (LINUX DEVICE NAMING) /dev/sda /dev/sdb /dev/sdc . SCSI ( SATA USB) . ( /dev/sda1). /dev/st /dev/nst . : "lma" . ( ) CD DVD BD /dev/sr . SCSI dmesg lsscsi . SCSI SCSI . /dev/sg . <> ( /dev/sg2 /dev/sda ) . . SCSI /dev/bsg/ h c t l . SCSI ( ) lsscsi . . ( /dev/sg1). . . . (WINDOWS DEVICE NAMING) . (volume) ( "D:"). <<>> (class) "PhysicalDrive" "CDROM" "TAPE" . ( ) . SCSI () SCSI "SCSI:" . <<>> (bus) <<>> (target) LUN ( ) . <<>> <> . : "SCSI:,," . "," LUN . . SCSI ( /) . ( << >>): USB IEEE 1394 "scsi" . DOS . "PhysicalDrive" "PD" . ( ) . : "PD0" "C:" "D:" "SCSI0:0,1,0" . . . (format) ( ). Win32 . "\\.\" . C (escape) . Msys ( MinGW) . sg_scan . (FREEBSD DEVICE NAMING) SCSI /dev/da . "da" SCSI "sa" CD/DVD/BD SCSI "cd" . SCSI (pass-through) /dev/pass . <> SCSI . "/dev/" ( da0 /dev/da0). . ( "da0") . ( ) . . "/" ( ) "/dev/" . NVMe . : "/dev/nvme" (namespaces) "s" ( "/dev/nvme0ns1"). (GEOM) ( ). GEOM "/dev/nvd" CAM . nda NVMe CAM ( GEOM) "/dev/nda0" . "/dev/nvme0" NVMe "/dev/nda0" NVMe . (SOLARIS DEVICE NAMING) SCSI /dev : c5t4d3s2 "c" (HBA) "t" ( SCSI) "d" LUN . "s" (slice) "s2" . OpenSolaris c5t4d3p2 "p" "p0" . c5t4d3 c5t4d3s2 c5t4d3p0 . /dev/dsk /dev/rdsk . <<>> ( ) sg3_utils . OpenSolaris 'sg_inq /dev/rdsk/c5t4d3p0' . '-vvv' . 'sg_inq /dev/dsk/c5t4d3p0' ( "rdsk" "dsk" ) "inappropriate ioctl for device" . /dev (topological) /device . cd/dvd/bd /dev/rdsk . /dev/rmt . sgen ( SCSI) . /kernel/drv/sgen.conf . /dev/scsi/c5t4d3 . SCSI . << 'format' >> . [ .] 'devfsadm -Cv' /dev/rdsk <<>> . "cfgadm -v" . NVME (NVME SUPPORT) NVMe ( NVM Express) . NVMe SCSI ATA ( SATA) . NVMe << >> (solid state) SCSI . SCSI ( ) . SCSI . NVME-MI SCSI (SES-3) << >> NVME-MI SES Send SES Receive . sg_ses sg_ses_microcode sg_senddiag NVMe NVME-MI . SES Send SES Receive NVME-MI SEND DIAGNOSTIC RECEIVE DIAGNOSTIC RESULTS SCSI . SCSI INQUIRY Identify controller/namespace NVMe . . SNTL ( SCSI NVMe) . <<>> sg_inq ( --page=) DEVICE NVMe NVMe ( ) . DEVICE 'sg_inq --page=sinq ' Identify NVMe SCSI INQUIRY . sg_inq SCSI . NVMe Vendor Identification INQUIRY "NVMe " ( ) . SCSI SNTL : INQUIRY MODE SELECT(10) MODE SENSE(10) READ(10,16) READ CAPACITY(10,16) RECEIVE DIAGNOSTIC RESULTS REQUEST SENSE REPORT LUNS REPORT SUPPORTED OPERATION CODES REPORT SUPPORTED TASK MANAGEMENT FUNCTIONS SEND DIAGNOSTICS START STOP UNIT SYNCHRONIZE CACHE(10,16) TEST UNIT READY VERIFY(10,16) WRITE(10,16) WRITE SAME(10,16). (EXIT STATUS) () ( ) . (sense key) SCSI . sg_decode_sense ( ) : sg_decode_sense --err= stdout . : 0 . <<>> (true) ( ). <<>> (false) . 1 (syntax error). . 2 (DEVICE) . DEVICE ( ) . DEVICE . . 3 (DEVICE) ( blank check) . . 5 (DEVICE) << >> (illegal request) << >> . . << >> (service action) . 6 (DEVICE) << >> (unit attention) . ( ) SCSI . . unit attention . 7 (DEVICE) << >> (data protect) . ( ) . 9 (DEVICE) << >> (invalid command operation code) . 10 (DEVICE) << >> (copy aborted) . . EXTENDED COPY ( WRITE USING TOKEN) . 11 (DEVICE) (aborted command) . ( ). 12 (DEVICE) (not ready) << >> (target port in standby state) . 13 (DEVICE) << >> (target port in unavailable state) . 14 (DEVICE) (miscompare) . VERIFY COMPARE AND WRITE . 15 DEVICE . . '-v' . 16 (DEVICE) NOT READY 0x4 "in progress" ( ) . : Format in progress Rebuild in progress Sanitize in progress Depopulation in progress . [0x2, 0x4, 0x1a] : LU not ready, Start stop unit command in progress. SSU . "in progress" . 'sg_requests --progress DEVICE' . 17 << >> (Illegal request) SCSI Info . LBA . 18 (DEVICE) ( blank check) Info . LBA ( ) . 19 (DEVICE) << >> (invalid field in parameter list) . ( FORMAT UNIT) DEVICE . 20 (DEVICE) (check condition) << >> (no sense) . ( REQUEST SENSE) . . 21 (DEVICE) << >> (recovered error) . . stderr 0 . 22 (DEVICE) (LBA) . << >> (off by one) READ CAPACITY(10 or 16) DEVICE . LBA 0 n-1 n DEVICE LBA . 24 (DEVICE) SCSI << >> (reservation conflict) . DEVICE (HBA <<>> SCSI) DEVICE . SCSI PERSISTENT RESERVATION . 25 (DEVICE) SCSI << >> (condition met) . PRE-FETCH ( SBC-4 ) . 26 (DEVICE) SCSI <<>> (busy) . SAM-6 . . 27 (DEVICE) SCSI << >> (task set full) . 28 (DEVICE) SCSI << >> (ACA active) . ACA "auto contingent allegiance" . 29 (DEVICE) SCSI << >> (task aborted) . SAM-5 : << I_T TAS Control >>. 31 . ( ) . 32 . "shouldn't/can't get here" . . 33 DEVICE (timed out). 34 ( ) ( ) . 35 (transport error) . ( HBA) () () . SAS READ . 36 (false) . 0 . 40 DEVICE << >> 0x10 . (PI DIF) . ( ). 41 DEVICE << >> 0x10 ( ) Info . 47 flock ( ). 48 (SF) NVMe ( ). . 49 ( HBA 'requested_bytes - residual_count') . 50 . "errno" 0 . errno . errno ( ) . errno 0 0 . 50 + . ( 'errno') ENOMEM . ( '50 + 12') . 50+ENOMEM . ( ENOMEM) : include/uapi/asm-generic/errno-base.h errno . . 97 SCSI (sanity checks) . 98 (DEVICE) (check condition) . 99 . . 100-125 ddpt sg3_utils . (offloaded copies) . 126 . . 127 . PATH . 128 + . (segmentation fault) SIGSEGV 'man 7 signal' . 255 . . ( "unit attention" ) '-v' ( ) . (COMMON OPTIONS) . ( <<=>> ). ( "0x" "h" ). . . . -d, --dry-run --dry-run . ( ) << >> . ( ) . --dry-run ( 'patch' ) . (underscore) ( --dry_run). -e, --enumerate ( sg_ses sg_vpd) . ( ) . DEVICE ( ) / SCSI . -h, -?, --help . '-h' . '-?' . -H, --hex SCSI ASCII . 0 () . ASCII <<.>> . ( ASCII ). . ( ) . . '-HHH' sg_inq ATA Information VPD . sg_inq ATA IDENTIFY DEVICE (little endian) hdparm . -i, --in=FN SCSI ( data-in ) ( sg_vpd sg_logs). SCSI . ( ) --hex --raw ( <<<>> ). --hex --raw ASCII --raw <<>> . ( SCSI ) --in=FN FN . FN <<->> (stdin) (piping) . ( stdin) ASCII --raw . --raw --in=FN . SCSI . --hex ( '-HH' '-HHH' ). -i, --inhex=FN --in=FN . 'inhex' ASCII FN . -I -X . << JSON>> . --json[=JO] SCSI . JSON . SCSI . -j[JO] -j -J[JO] . JO . sg3_utils_json . -J, --js-file=JFN JSON JFN . (truncate) . JSON (stdout) . --json[=JO] . --json[=JO] JO . -m, --maxlen=LEN SCSI ( INQUIRY MODE SENSE) . 'allocation length' ( ) cdb . ( SCSI ) << >> (double fetch) . sg_logs(8) . SCSI ( USB INQUIRY ). . LEN ( ) . () . -r, --raw SCSI 'data-in' ( LU HBA ). SCSI INQUIRY READ . stdout . stderr . --in=FN DEVICE ( ) FN . stdin ( FN) . -t, --timeout=SECS SCSI --timeout=SECS . SCSI . SCSI << >> (format corrupt) . SECS -t . SECS . SCSI IMMED CDB . REQUEST SENSE ( sg_requests sg_turs ). SCSI --immed --wait <> . SCSI SCSI ( ) NOT READY 0x04 . --tmo=SECS . -v, --verbose ( ). . stderr . -V, --version . . -- '--' . <<->> . . (NUMERIC ARGUMENTS) . ( (LBA) ) . . . : c C *1 w W *2 b B *512 k K KiB *1024 KB kB *1000 m M MiB *1048576 MB mB *1000000 g G GiB *(2^30) GB gB *(10^9) t T TiB *(2^40) TB *(10^12) p P PiB *(2^50) PB *(10^15) "2k" . . dd ( ) SI IEC 60027-2 . "x" . "2x33" "66" . '0' '0x' ( ). ( 0 f) . : "0xfx0x2" . "+" . "3+1k" "1027" . ( 0 f) . : "0xf+0x2" . . : "0x" "0X" C . "h" "H" . . "256" "0x100" "100h" . JSON (HEX, BINARY AND JSON FORMATS) (ASCII) SCSI . JSON . sg3_utils JSON . JSON : sg3_utils_json(8). : ( ) . --inhex=FN . ( SCSI) --hex . : $ hexdump --no-squeezing -C --hex ASCII ASCII . --hex . . hexdump : $ hexdump --no-squeezing -C | cut -s -d ' ' -f 2-19 ( ) ASCII . . --hex ( '#' ): $ sg_logs -HHHH -A /dev/sdc # Supported log pages log page [0x0]: 00 00 00 03 00 0d 2f # Supported log pages and subpages log page [0x0, 0xff]: 40 ff 00 0e 00 00 00 ff 0d 00 0d 01 0d ff 2f 00 2f ff ... '#' . --inhex=FN 'inhex' . <> <<.hex>> . . sg_decode_sense : <<--inhex=HFN --nodecode --write=WFN>>. ( ) HFN WFN . sg3_utils sg_decode_sense : <<--binary=BFN --nodecode -HHH>> (stdout) . (MICROCODE AND FIRMWARE) ( ) SCSI . SCSI WRITE BUFFER sg_write_buffer . SCSI / sg_ses_microcode . (SCRIPTS, EXAMPLES and UTILS) (bash) 'scripts' ( sg_readcap). 'sg_' 'scsi_' . ( sg_readcap) . . ( /usr/bin). (man) . README 'scripts' . C 'examples' . README . C (pass-through) SCSI ( 'src') . ( MinGW ). 'utils' . (DEBUGGING) --verbose ( : -v) . ( ) stdout ( ) stderr . ( ) ( grep ) . SCSI SCSI : /proc/sys/dev/scsi/logging_level . scsi_logging_level . . 0 ( ) 7 ( ) SCSI . << >> /var/log/syslog . SCSI (sg) . SCSI_LOG_TIMEOUT . : scsi_logging_level -s -T 7 : scsi_logging_level -s -T 3 sg: scsi_logging_level -s -T 0 SCSI . <<>> USB . USB SCSI . ( ). netconsole ( ) UDP (<< >>) . (WEB SITE) https://sg.danny.cz/sg/sg3_utils.html https://doug-gilbert.github.io/sg3_utils.html . : https://sg.danny.cz/sg/device_name.html . https://github.com/hreinecke/sg3_utils . subversion . subversion ( ). . sg.danny.cz . (AUTHORS) Douglas Gilbert. CREDITS ( 'src') . (REPORTING BUGS) . (COPYRIGHT) (C) - Douglas Gilbert GPL BSD-2-Clause . sg_lib.[hc] sg_cmds_basic.[hc] sg_cmds_extra.[hc] BSD-2-Clause . . (SEE ALSO) sg3_utils_json, sg_decode_sense(sg3_utils), sdparm(sdparm), ddpt(ddpt), lsscsi(lsscsi), dmesg(1), mt(1), hdparm(hdparm), hexdump(util-linux) : () () . sg3_utils-1.49 2026-07-18 SG3_UTILS(8)