blob: 1c2cd170893af9f1b11a2c7973ce4d1eec5bc837 [file] [log] [blame]
Douglas Gilbert15a477c2021-09-04 17:23:12 +00001.TH SG_XCOPY "8" "September 2021" "sg3_utils\-1.47" SG3_UTILS
Douglas Gilbert63918a92012-09-08 03:20:30 +00002.SH NAME
Douglas Gilbert7cbe22a2012-11-21 00:39:11 +00003sg_xcopy \- copy data to and from files and devices using SCSI EXTENDED
4COPY (XCOPY)
Douglas Gilbert63918a92012-09-08 03:20:30 +00005.SH SYNOPSIS
6.B sg_xcopy
7[\fIbs=BS\fR] [\fIconv=CONV\fR] [\fIcount=COUNT\fR] [\fIibs=BS\fR]
8[\fIif=IFILE\fR] [\fIiflag=FLAGS\fR] [\fIobs=BS\fR] [\fIof=OFILE\fR]
9[\fIoflag=FLAGS\fR] [\fIseek=SEEK\fR] [\fIskip=SKIP\fR] [\fI\-\-help\fR]
10[\fI\-\-version\fR]
11.PP
Douglas Gilberta918d1a2019-01-23 16:25:58 +000012[\fIapp=\fR0|1] [\fIbpt=BPT\fR] [\fIcat=\fR0|1] [\fIdc=\fR0|1] [\fIfco=\fR0|1]
Douglas Gilbert43c7d122013-06-28 17:44:32 +000013[\fIid_usage=\fR{hold|discard|disable}] [\fIlist_id=ID\fR] [\fIprio=PRIO\fR]
Douglas Gilbert02ec79b2013-05-08 13:21:30 +000014[\fItime=\fR0|1] [\fIverbose=VERB\fR] [\fI\-\-on_dst|\-\-on_src\fR]
15[\fI\-\-verbose\fR]
Douglas Gilbert63918a92012-09-08 03:20:30 +000016.SH DESCRIPTION
17.\" Add any additional description here
18.PP
19Copy data to and from any files. Specialized for "files" that are Linux SCSI
Douglas Gilbert43c7d122013-06-28 17:44:32 +000020devices that support the SCSI EXTENDED COPY (XCOPY) command.
21.PP
Douglas Gilbert43c7d122013-06-28 17:44:32 +000022This utility
23has similar syntax and semantics to
Douglas Gilbert63918a92012-09-08 03:20:30 +000024.B dd(1)
25but with no "conversions" is supported.
26.PP
27The first group in the synopsis above are "standard" Unix
28.B dd(1)
29operands. The second group are extra options added by this utility.
Douglas Gilbert02ec79b2013-05-08 13:21:30 +000030Both groups are defined below in combined, alphabetical order.
31.PP
Douglas Gilbert5f1cabf2013-12-14 02:20:41 +000032By default the XCOPY command is sent to \fIOFILE\fR. This can be changed
Douglas Gilbertcf491142016-03-02 22:04:21 +000033with the \fI\-\-on_src\fR or \fIiflag=xflag\fR options which cause the XCOPY
Douglas Gilbert5f1cabf2013-12-14 02:20:41 +000034command to be sent to \fIIFILE\fR instead. Also see the section on
35ENVIRONMENT VARIABLES.
Douglas Gilberte502efd2014-03-10 10:17:47 +000036.PP
Douglas Gilberta918d1a2019-01-23 16:25:58 +000037In the SPC\-4 standard the T10 committee has expanded the XCOPY command so
38that it now has two variants: "LID1" (for a List Identifier length of 1 byte)
39and "LID4" (for a List Identifier length of 4 bytes). This utility supports
40the older, LID1 variant which is also found in SPC\-3 and earlier. While the
41LID1 variant in SPC\-4 is command level (binary) compatible with XCOPY as
42defined in SPC\-3, some of the command naming has changed. This utility uses
43the older, SPC\-3 XCOPY names.
44.PP
Douglas Gilberte502efd2014-03-10 10:17:47 +000045The ddpt utility supports the same xcopy(LID1) functionality as this utility
46with the same options and flags. Additionally ddpt supports a subset of
47xcopy(LID4) functionality variously called "xcopy version 2, lite" or ODX.
48ODX is a market name and stands for Offloaded Data Xfer (i.e. transfer).
Douglas Gilbert63918a92012-09-08 03:20:30 +000049.SH OPTIONS
50.TP
Douglas Gilberta918d1a2019-01-23 16:25:58 +000051\fBapp\fR={0|1}
52if 1 start the destination of the copy at the end of OFILE. This assumes
53that OFILE is a regular file. The default is 0 in which case the destination
54of the copy starts at the beginning of OFILE (possibly offset be SEEK). This
55option cannot be used with the \fIseek=SEEK\fR option.
56.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +000057\fBbpt\fR=\fIBPT\fR
58each IO transaction will be made using \fIBPT\fR blocks (or less if near
Douglas Gilberta059c852018-08-13 05:24:09 +000059the end of the copy). Default is 128 for logical block sizes less that 2048
Douglas Gilbert63918a92012-09-08 03:20:30 +000060bytes, otherwise the default is 32. So for bs=512 the reads and writes
61will each convey 64 KiB of data by default (less if near the end of the
62transfer or memory restrictions). When cd/dvd drives are accessed, the
Douglas Gilberta059c852018-08-13 05:24:09 +000063logical block size is typically 2048 bytes and bpt defaults to 32 which again
Douglas Gilbert63918a92012-09-08 03:20:30 +000064implies 64 KiB transfers.
65.TP
66\fBbs\fR=\fIBS\fR
67where \fIBS\fR
68.B must
Douglas Gilberta059c852018-08-13 05:24:09 +000069be the logical block size of the physical device (if either the input or
70output files are accessed via SCSI commands). Note that this differs from
Douglas Gilbert63918a92012-09-08 03:20:30 +000071.B dd(1)
Douglas Gilbert68167d12012-09-19 20:30:07 +000072which permits \fIBS\fR to be an integral multiple. Defaults to the
Douglas Gilberta059c852018-08-13 05:24:09 +000073device logical block size.
Douglas Gilbert63918a92012-09-08 03:20:30 +000074.TP
Douglas Gilbert43c7d122013-06-28 17:44:32 +000075\fBcat\fR={0|1}
Douglas Gilbert63918a92012-09-08 03:20:30 +000076sets the SCSI EXTENDED COPY command segment descriptor CAT bit to 0 or
Douglas Gilberte2a8a0b2013-03-14 00:26:26 +0000771 (default: 0). The CAT bit (in conjunction with the PAD bit) controls
Douglas Gilbert68167d12012-09-19 20:30:07 +000078the handling of residual data. See section
79.B HANDLING OF RESIDUAL DATA
80for details.
Douglas Gilbert63918a92012-09-08 03:20:30 +000081.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +000082\fBconv\fR=\fBCONV\fR
83all \fBCONV\fR arguments are ignored.
84.TP
85\fBcount\fR=\fICOUNT\fR
86copy \fICOUNT\fR blocks from \fIIFILE\fR to \fIOFILE\fR. Default is the
Douglas Gilbert68167d12012-09-19 20:30:07 +000087minimum (\fIIFILE\fR if \fIdc=0\fR or \fIOFILE\fR if \fIdc=1\fR)
88number of blocks that SCSI devices report from SCSI READ CAPACITY
89commands or that block devices (or their partitions) report. Normal
90files are not probed for their size. If \fIskip=SKIP\fR or
Douglas Gilbert8bdc5522019-03-02 01:03:55 +000091\fIseek=SEEK\fR are given and the count is derived (i.e. not
Douglas Gilbert68167d12012-09-19 20:30:07 +000092explicitly given) then the derived count is scaled back so that the
Douglas Gilbert63918a92012-09-08 03:20:30 +000093copy will not overrun the device. If the file name is a block device
94partition and \fICOUNT\fR is not given then the size of the partition
Douglas Gilbert68167d12012-09-19 20:30:07 +000095rather than the size of the whole device is used. If \fICOUNT\fR is
Douglas Gilbert59159192012-12-22 03:05:14 +000096not given (or \fIcount=\-1\fR) and cannot be derived then an error
Douglas Gilbert68167d12012-09-19 20:30:07 +000097message is issued and no copy takes place.
Douglas Gilbert63918a92012-09-08 03:20:30 +000098.TP
Douglas Gilberta918d1a2019-01-23 16:25:58 +000099\fBdc\fR={0|1}
100sets the SCSI EXTENDED COPY command segment descriptor DC bit to 0 or
1011 (default: 0). The DC bit controls whether \fICOUNT\fR
102refers to the source (\fIdc=0\fR) or the target (\fIdc=1\fR) descriptor.
103.TP
104\fBfco\fR={0|1}
105sets the SCSI EXTENDED COPY command segment descriptor FCO bit to 0 or
1061 (default: 0). The Fast Copy Only (FCO) bit set will result in the
107copy being done but a technique faster than SCSI READ and WRITE commands.
108If the copy cannot but done in a faster manner then a sense key of "Copy
109aborted" with and additional sense of "Fast copy not possible" is
110returned.
111.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +0000112\fBibs\fR=\fIBS\fR
113if given must be the same as \fIBS\fR given to 'bs=' option.
114.TP
Douglas Gilbert43c7d122013-06-28 17:44:32 +0000115\fBid_usage\fR={hold|discard|disable}
Douglas Gilbert63918a92012-09-08 03:20:30 +0000116sets the SCSI EXTENDED COPY command parameter list field called LIST ID
Douglas Gilbert853b6b42013-02-08 05:12:53 +0000117USAGE to 0 if the argument is 'hold', to 2 if the argument is 'discard',
118or to '3' if the argument is 'disable'.
Douglas Gilberte65afc22015-03-11 16:54:10 +0000119.br
120If the device has the ability to hold data (as indicated by "held data
121limit" being greater than zero) then \fIid_usage\fR defaults to 'hold'
122otherwise it defaults to 'discard'.
Douglas Gilbert63918a92012-09-08 03:20:30 +0000123.TP
124\fBif\fR=\fIIFILE\fR
125read from \fIIFILE\fR instead of stdin. If \fIIFILE\fR is '\-' then stdin
126is read. Starts reading at the beginning of \fIIFILE\fR unless \fISKIP\fR
127is given.
128.TP
129\fBiflag\fR=\fIFLAGS\fR
130where \fIFLAGS\fR is a comma separated list of one or more flags outlined
131below. These flags are associated with \fIIFILE\fR and are ignored when
132\fIIFILE\fR is stdin.
133.TP
Douglas Gilberte65afc22015-03-11 16:54:10 +0000134\fBlist_id\fR=\fIID\fR
135sets the SCSI EXTENDED COPY command parameter list field called LIST
136IDENTIFIER to \fIID\fR. \fIID\fR should be a value between 0 and
137255 (inclusive). \fIID\fR usually defaults to 1 unless
138\fIid_usage=disable\fR in which case it defaults to 0.
139.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +0000140\fBobs\fR=\fIBS\fR
141if given must be the same as \fIBS\fR given to 'bs=' option.
142.TP
143\fBof\fR=\fIOFILE\fR
144write to \fIOFILE\fR instead of stdout. If \fIOFILE\fR is '\-' then writes
145to stdout. If \fIOFILE\fR is /dev/null then no actual writes are performed.
146If \fIOFILE\fR is '.' (period) then it is treated the same way as
147/dev/null (this is a shorthand notation). If \fIOFILE\fR exists then it
148is _not_ truncated; it is overwritten from the start of \fIOFILE\fR
149unless 'oflag=append' or \fISEEK\fR is given.
150.TP
151\fBoflag\fR=\fIFLAGS\fR
152where \fIFLAGS\fR is a comma separated list of one or more flags outlined
153below. These flags are associated with \fIOFILE\fR and are ignored when
154\fIOFILE\fR is /dev/null, '.' (period), or stdout.
155.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +0000156\fBprio\fR=\fIPRIO\fR
157sets the SCSI EXTENDED COPY command parameter list field called PRIORITY
158to \fIPRIO\fR. The default value is 1.
159.TP
160\fBseek\fR=\fISEEK\fR
161start writing \fISEEK\fR bs\-sized blocks from the start of \fIOFILE\fR.
162Default is block 0 (i.e. start of file).
163.TP
164\fBskip\fR=\fISKIP\fR
165start reading \fISKIP\fR bs\-sized blocks from the start of \fIIFILE\fR.
166Default is block 0 (i.e. start of file).
167.TP
Douglas Gilbert43c7d122013-06-28 17:44:32 +0000168\fBtime\fR={0|1}
Douglas Gilbert63918a92012-09-08 03:20:30 +0000169when 1, times transfer and does throughput calculation, outputting the
170results (to stderr) at completion. When 0 (default) doesn't perform timing.
171.TP
172\fBverbose\fR=\fIVERB\fR
173as \fIVERB\fR increases so does the amount of debug output sent to stderr.
174Default value is zero which yields the minimum amount of debug output.
175A value of 1 reports extra information that is not repetitive. A value
1762 reports cdbs and responses for SCSI commands that are not repetitive
177(i.e. other that READ and WRITE). Error processing is not considered
178repetitive. Values of 3 and 4 yield output for all SCSI commands (and
179Unix read() and write() calls) so there can be a lot of output.
180.TP
Douglas Gilbert02ec79b2013-05-08 13:21:30 +0000181\fB\-h\fR, \fB\-\-help\fR
Douglas Gilbert63918a92012-09-08 03:20:30 +0000182outputs usage message and exits.
183.TP
Douglas Gilbert02ec79b2013-05-08 13:21:30 +0000184\fB\-\-on_dst\fR
Douglas Gilbert5f1cabf2013-12-14 02:20:41 +0000185send the XCOPY command to the output file/device (i.e. \fIOFILE\fR). This is
186the default unless overridden by the \fI\-\-on_src\fR or \fIiflag=xflag\fR
187options. Also see the section below on ENVIRONMENT VARIABLES.
Douglas Gilbert63918a92012-09-08 03:20:30 +0000188.TP
Douglas Gilbert02ec79b2013-05-08 13:21:30 +0000189\fB\-\-on_src\fR
Douglas Gilbert5f1cabf2013-12-14 02:20:41 +0000190send the XCOPY command to the input file/device (i.e. \fIIFILE\fR).
Douglas Gilbert63918a92012-09-08 03:20:30 +0000191.TP
Douglas Gilbert02ec79b2013-05-08 13:21:30 +0000192\fB\-v\fR, \fB\-\-verbose\fR
193equivalent to \fIverbose=1\fR. When used twice, equivalent to
194\fIverbose=2\fR, etc.
195.TP
196\fB\-V\fR, \fB\-\-version\fR
Douglas Gilbert63918a92012-09-08 03:20:30 +0000197outputs version number information and exits.
198.SH FLAGS
199Here is a list of flags and their meanings:
200.TP
201append
202causes the O_APPEND flag to be added to the open of \fIOFILE\fR. For regular
203files this will lead to data appended to the end of any existing data.
204Cannot be used together with the \fIseek=SEEK\fR option as they conflict.
205The default action of this utility is to overwrite any existing data
206from the beginning of the file or, if \fISEEK\fR is given, starting at
207block \fISEEK\fR. Note that attempting to 'append' to a device file (e.g.
208a disk) will usually be ignored or may cause an error to be reported.
209.TP
Douglas Gilbert63918a92012-09-08 03:20:30 +0000210excl
211causes the O_EXCL flag to be added to the open of \fIIFILE\fR and/or
212\fIOFILE\fR.
213.TP
214flock
215after opening the associated file (i.e. \fIIFILE\fR and/or \fIOFILE\fR)
216an attempt is made to get an advisory exclusive lock with the flock()
217system call. The flock arguments are "FLOCK_EX | FLOCK_NB" which will
218cause the lock to be taken if available else a "temporarily unavailable"
219error is generated. An exit status of 90 is produced in the latter case
220and no copy is done.
221.TP
222null
223has no affect, just a placeholder.
Douglas Gilberte8a28a42013-10-08 14:24:59 +0000224.TP
225pad
226sets the SCSI EXTENDED COPY command segment descriptor PAD bit. The
227PAD bit (in conjunction with the CAT bit) controls the handling of
228residual data.(See section
229.B HANDLING OF RESIDUAL DATA
230for details.
231.TP
232xcopy
233has no affect; for compatibility with ddpt.
Douglas Gilbert68167d12012-09-19 20:30:07 +0000234.SH HANDLING OF RESIDUAL DATA
235The \fIpad\fR and \fIcat\fR bits control the handling of residual
236data. As the data can be specified either in terms of source or target
Douglas Gilberta059c852018-08-13 05:24:09 +0000237logical block size and both might have different block sizes residual data
238is likely to happen in these cases.
239If both logical block sizes are identical these bits have no effect as
Douglas Gilbert68167d12012-09-19 20:30:07 +0000240residual data will not occur.
241.PP
242If none of these bits are set, the EXTENDED COPY command will be
243aborted with additional sense 'UNEXPECTED INEXACT SEGMENT'.
244.PP
245If only the \fIcat\fR bit is set the residual data will be retained
246and made available for subsequent segment descriptors. Residual data
247will be discarded for the last segment descriptor.
248.PP
249If the \fIpad\fR bit is set for the source descriptor only, any
250residual data for both source or destination will be discarded.
251.PP
252If the \fIpad\fR bit is set for the target descriptor only any
253residual source data will be handled as if the \fIcat\fR bit is set,
254but any residual destination data will be padded to make a whole block
255transfer.
256.PP
257If the \fIpad\fR bit is set for both source and target any residual
258source data will be discarded, and any residual destination data will
259be padded.
Douglas Gilbert5f1cabf2013-12-14 02:20:41 +0000260.SH ENVIRONMENT VARIABLES
261If the command line invocation does not explicitly (and unambiguously)
262indicate whether the XCOPY SCSI command should be sent to \fIIFILE\fR (i.e.
263the source) or \fIOFILE\fR (i.e. the destination) then a check is
264made for the presence of the XCOPY_TO_SRC and XCOPY_TO_DST environment
265variables. If either one exists (but not both) then it indicates where
266the SCSI XCOPY command will be sent. By default the XCOPY command is
267sent to \fIOFILE\fR.
Douglas Gilbert63918a92012-09-08 03:20:30 +0000268.SH RETIRED OPTIONS
269Here are some retired options that are still present:
270.TP
271append=0 | 1
272when set, equivalent to 'oflag=append'. When clear the action is
273to overwrite the existing file (if it exists); this is the default.
274See the 'append' flag.
275.SH NOTES
Douglas Gilberta93e55e2014-09-18 05:20:09 +0000276Copying data behind an Operating System's back can cause problems. In the
277case of Linux, users should look at this link:
Douglas Gilbert28400772021-04-15 02:13:40 +0000278https://linux\-mm.org/Drop_Caches
Douglas Gilberta93e55e2014-09-18 05:20:09 +0000279.br
280This command sequence may be useful:
281.br
282 sync; echo 3 > /proc/sys/vm/drop_caches
283.PP
Douglas Gilbert63918a92012-09-08 03:20:30 +0000284Various numeric arguments (e.g. \fISKIP\fR) may include multiplicative
285suffixes or be given in hexadecimal. See the "NUMERIC ARGUMENTS" section
286in the sg3_utils(8) man page.
287.PP
288The \fICOUNT\fR, \fISKIP\fR and \fISEEK\fR arguments can take 64 bit
289values (i.e. very big numbers). Other values are limited to what can fit in
290a signed 32 bit number.
291.PP
292All informative, warning and error output is sent to stderr so that
293dd's output file can be stdout and remain unpolluted. If no options
294are given, then the usage message is output and nothing else happens.
295.PP
Douglas Gilberte8a28a42013-10-08 14:24:59 +0000296If a device supports xcopy operations then it should set the 3PC
297field (3PC stands for Third Party Copy) in its standard INQUIRY response.
298This utility will attempt a xcopy operation irrespective of the value
299in the 3PC field but if it is zero (cleared) one would expect the
300xcopy operation to fail.
301.PP
Douglas Gilbert68167d12012-09-19 20:30:07 +0000302The status of the SCSI EXTENDED COPY command can be queried with
303.B sg_copy_results(sg3_utils)
304.PP
Douglas Gilbert59159192012-12-22 03:05:14 +0000305Currently only block\-to\-block transfers are implemented; \fIIFILE\fR
Douglas Gilbert68167d12012-09-19 20:30:07 +0000306and \fIOFILE\fR must refer to a SCSI block device.
Douglas Gilbert02ec79b2013-05-08 13:21:30 +0000307.PP
Douglas Gilbert4ea64812012-11-12 23:48:34 +0000308No account is taken of partitions so, for example, /dev/sbc2, /dev/sdc,
309/dev/sg2, and /dev/bsg/3:0:0:1 would all refer to the same thing: the
310whole logical unit (i.e. the whole disk) starting at LBA 0. So any
311partition indication (e.g. /dev/sdc2) is ignored. The user should set
312\fISKIP\fR, \fISEEK\fR and \fICOUNT\fR with information obtained
Douglas Gilbert59159192012-12-22 03:05:14 +0000313from a command like 'fdisk \-l \-u /dev/sdc' to account for partitions.
Douglas Gilbert7fcdff52013-08-19 18:51:18 +0000314.PP
315XCOPY (LID1) capability has been added to the ddpt utility which is in
316a package of the same name. The ddpt utility will run on other
317OSes (e.g. FreeBSD and Windows) while sg_xcopy only runs on Linux. Also
318ddpt permits the arguments to \fIibs=\fR and \fIibs=\fR to be different.
Douglas Gilbert63918a92012-09-08 03:20:30 +0000319.SH EXAMPLES
Douglas Gilbert68167d12012-09-19 20:30:07 +0000320Copy 2M of data from the start of one device to another:
321.PP
322# sg_xcopy if=/dev/sdo of=/dev/sdp count=2048 list_id=2 dc=1
323.br
324sg_xcopy: if=/dev/sdo skip=0 of=/dev/sdp seek=0 count=1024
325.br
326Start of loop, count=1024, bpt=65535, lba_in=0, lba_out=0
327.br
328sg_xcopy: 1024 blocks, 1 command
329.PP
330Check the status of the EXTENDED COPY command:
331.PP
Douglas Gilbert59159192012-12-22 03:05:14 +0000332# sg_copy_results \-\-status \-\-list_id=2 /dev/sdp
Douglas Gilbert68167d12012-09-19 20:30:07 +0000333.br
334Receive copy results (copy status):
335 Held data discarded: Yes
336 Copy manager status: Operation completed without errors
337 Segments processed: 1
338 Transfer count units: 0
339 Transfer count: 0
Douglas Gilbert63918a92012-09-08 03:20:30 +0000340.SH SIGNALS
341The signal handling has been borrowed from dd: SIGINT, SIGQUIT and
342SIGPIPE output the number of remaining blocks to be transferred and
343the records in + out counts; then they have their default action.
344SIGUSR1 causes the same information to be output yet the copy continues.
345All output caused by signals is sent to stderr.
346.SH EXIT STATUS
347The exit status of sg_xcopy is 0 when it is successful. Otherwise see
348the sg3_utils(8) man page.
349.PP
350An additional exit status of 90 is generated if the flock flag is given
351and some other process holds the advisory exclusive lock.
352.SH AUTHORS
353Written by Hannes Reinecke and Douglas Gilbert.
354.SH "REPORTING BUGS"
355Report bugs to <dgilbert at interlog dot com>.
356.SH COPYRIGHT
Douglas Gilbert15a477c2021-09-04 17:23:12 +0000357Copyright \(co 2000\-2021 Hannes Reinecke and Douglas Gilbert
Douglas Gilbert63918a92012-09-08 03:20:30 +0000358.br
359This software is distributed under the GPL version 2. There is NO
360warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
361.SH "SEE ALSO"
Douglas Gilbert28400772021-04-15 02:13:40 +0000362There is a web page discussing sg_dd at https://sg.danny.cz/sg/sg_dd.html
Douglas Gilbert63918a92012-09-08 03:20:30 +0000363.PP
364A POSIX threads version of this utility called
365.B sgp_dd
366is in the sg3_utils package. Another version from that package is called
367.B sgm_dd
368and it uses memory mapped IO to speed transfers from sg devices.
369.PP
370The lmbench package contains
371.B lmdd
372which is also interesting. For moving data to and from tapes see
373.B dt
Douglas Gilbert28400772021-04-15 02:13:40 +0000374which is found at https://www.scsifaq.org/RMiller_Tools/index.html
Douglas Gilbert63918a92012-09-08 03:20:30 +0000375.PP
376To change mode parameters that effect a SCSI device's caching and error
377recovery see
378.B sdparm(sdparm)
379.PP
380See also
Douglas Gilberte502efd2014-03-10 10:17:47 +0000381.B dd(1), sg_copy_results(sg3_utils), ddrescue(GNU), ddpt,ddptctl(ddpt)