---
name: "sg_copy_results"
section: "8"
platform: "linux"
package: "sg3_utils"
version: "1.49-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/sg_copy_results"
---

# sg\_copy\_results(8)

send SCSI RECEIVE COPY RESULTS command (XCOPY related)

## NAME

sg\_copy\_results - send SCSI RECEIVE COPY RESULTS command (XCOPY related)

## SYNOPSIS

**sg\_copy\_results** \[*--failed*\|*--params*\|*--receive*\|*--status*\] \[*--help*\] \[*--hex*\] \[*--list\_id=ID*\] \[*--readonly*\] \[*--verbose*\] \[*--version*\] \[*--xfer\_len=BTL*\] *DEVICE*

## DESCRIPTION

This utility is designed to query the status of the SCSI Extended Copy (XCOPY) facility (see SPC-3 revision 23 sections 6.3 and 6.17), present in some modern storage arrays. This utility sends a SCSI RECEIVE COPY RESULTS command to the given *DEVICE* and displays the response.

During the draft stages of SPC-4 the T10 committee has expanded the XCOPY command so that it now has two variants: "LID1" (for a List Identifier length of 1 byte) and "LID4" (for a List Identifier length of 4 bytes). This utility supports the older, LID1 variant which is also found in SPC-3 and earlier. While the LID1 variant in SPC-4 is command level (binary) compatible with XCOPY as defined in SPC-3, some of the command naming has changed. This utility uses the older, SPC-3 XCOPY names.

The command has four distinct modes of operation, distinguished by the service action field:

- **COPY STATUS \[SPC-4: RECEIVE COPY STATUS(LID1)\]**

  Displays the current status of the EXTENDED COPY command identified by the list id field.

- **RECEIVE DATA \[SPC-4: RECEIVE COPY DATA(LID1)\]**

  Return the held data read by the EXTENDED COPY command identified by the list id field. This option is only meaningful if the respective segment descriptor are supported.

- **OPERATING PARAMETERS \[SPC-4: RECEIVE COPY OPERATING PARAMETERS\]**

  Return copy manager operating parameters. This option is also useful to determine if the SCSI Extended Copy facility is supported.

- **FAILED SEGMENT DETAILS \[SPC-4: RECEIVE COPY FAILURE DETAILS(LID1)\]**

  Return copy target device sense data and other information about any failed segments.

## OPTIONS

Arguments to long options are mandatory for short options as well.

- **-f**, **--failed**

  sets the service action field to FAILED SEGMENT DETAILS \[4\].

- **-h**, **--help**

  output the usage message then exit.

- **-H**, **--hex**

  prints out the response buffer in hex.

- **-l**, **--list\_id**=*ID*

  sets the list identifier field to *ID* (default: 0).

- **-p**, **--params**

  sets the service action field to OPERATING PARAMETERS \[3\]. This is the default.

- **-R**, **--readonly**

  open the *DEVICE* read-only (e.g. in Unix with the O\_RDONLY flag). The default is to open it read-write.

- **-r**, **--receive**

  sets the service action field to RECEIVE DATA \[1\].

- **-s**, **--status**

  sets the service action field to COPY STATUS \[0\].

- **-v**, **--verbose**

  increase the level of verbosity, (i.e. debug output).

- **-V**, **--version**

  print the version string and then exit.

- **-x**, **--xfer\_len**=*BTL*

  sets the allocation length field to *BTL*. It is the byte transfer length and is the maximum (byte) size of the response. *BTL* must be less than 10000 and defaults to 520.

## NOTES

Decoding of *RECEIVE DATA* service action is not implemented.

In a similar way the functionality of sg\_xcopy has been ported to the more general ddpt utility (and package), the functionality of this utility has been ported to the ddptctl utility.

## EXAMPLES

Query the operating parameters for a device:

\# sg\_copy\_results -p /dev/sdo\
 Receive copy results (report operating parameters):\
     Supports no list identifier: no\
     Maximum target descriptor count: 2\
     Maximum segment descriptor count: 1\
     Maximum descriptor list length: 92 bytes\
     Maximum segment length: 33553920 bytes\
     Inline data not supported\
     Held data limit: 0 bytes\
     Maximum stream device transfer size: 0 bytes\
     Total concurrent copies: 0\
     Maximum concurrent copies: 255\
     Data segment granularity: 512 bytes\
     Inline data granularity: 1 bytes\
     Held data granularity: 1 bytes\
     Implemented descriptor list:\
         Segment descriptor 0x02: Copy from block device to block device\
         Target descriptor 0xe4: Identification descriptor

## EXIT STATUS

The exit status of sg\_copy\_results is 0 when it is successful. Otherwise see the [sg3\_utils(8)](/sg3_utils/8.md) man page.

## AUTHORS

Written by Douglas Gilbert.

## REPORTING BUGS

Report bugs to \<dgilbert at interlog dot com\>.

## COPYRIGHT

Copyright © 2012-2014 Hannes Reinecke and Douglas Gilbert\
 This software is distributed under a BSD-2-Clause license. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

## SEE ALSO

**sg\_xcopy(sg3\_utils), ddpt,ddptctl(ddpt)**
