aboutsummaryrefslogtreecommitdiff
path: root/sgm_dd.8
diff options
context:
space:
mode:
Diffstat (limited to 'sgm_dd.8')
-rw-r--r--sgm_dd.8205
1 files changed, 107 insertions, 98 deletions
diff --git a/sgm_dd.8 b/sgm_dd.8
index 307e3c6b..f130d00f 100644
--- a/sgm_dd.8
+++ b/sgm_dd.8
@@ -1,17 +1,16 @@
-.TH SGM_DD "8" "June 2006" "sg3_utils-1.21" SG3_UTILS
+.TH SGM_DD "8" "January 2007" "sg3_utils\-1.23" SG3_UTILS
.SH NAME
sgm_dd \- copies data to and from files and devices. Specialized for
devices that understand the SCSI command set and does memory mapped
transfers from sg devices.
.SH SYNOPSIS
.B sgm_dd
-[\fIbs=<n>\fR] [\fIcount=<n>\fR] [\fIibs=<n>\fR] [\fIif=<ifile>\fR]
-[\fIiflag=<flags>\fR] [\fIobs=<n>\fR] [\fIof=<ofile>\fR]
-[\fIoflag=<flags>\fR] [\fIseek=<n>\fR] [\fIskip=<n>\fR]
-[\fI--help\fR] [\fI--version\fR]
+[\fIbs=BS\fR] [\fIcount=COUNT\fR] [\fIibs=BS\fR] [\fIif=IFILE\fR]
+[\fIiflag=FLAGS\fR] [\fIobs=BS\fR] [\fIof=OFILE\fR] [\fIoflag=FLAGS\fR]
+[\fIseek=SEEK\fR] [\fIskip=SKIP\fR] [\fI\-\-help\fR] [\fI\-\-version\fR]
.PP
-[\fIbpt=<n>\fR] [\fIcdbsz=6|10|12|16\fR] [\fIdio=0|1\fR]
-[\fIsync=0|1\fR] [\fItime=0|1\fR] [\fIverbose=<n>\fR]
+[\fIbpt=BPT\fR] [\fIcdbsz=\fR6|10|12|16] [\fIdio=\fR0|1] [\fIsync=\fR0|1]
+[\fItime=\fR0|1] [\fIverbose=VERB\fR]
.SH DESCRIPTION
.\" Add any additional description here
.PP
@@ -21,103 +20,107 @@ transfers on sg devices. Similar syntax and semantics to
.B dd(1)
but does not perform any conversions.
.PP
-Will only perform memory mapped transfers when <ifile> or <ofile> are
-SCSI generic (sg) devices. If both <ifile> and <ofile> are sg devices
-then memory mapped transfers are only performed on <ifile>.
+Will only perform memory mapped transfers when \fIIFILE\fR or \fIOFILE\fR
+are SCSI generic (sg) devices. If both \fIIFILE\fR and \fIOFILE\fR are
+sg devices then memory mapped transfers are only performed on \fIIFILE\fR.
.PP
The first group in the synopsis above are "standard" Unix
.B dd(1)
-arguments. The second group are extra arguments added by this utility.
+operands. The second group are extra options added by this utility.
Both groups are defined below.
+.SH OPTIONS
.TP
-bpt=BLOCKS
-each IO transaction will be made using this number of blocks (or less if
-near the end of count). Default is 128 for block sizes less that 2048
+\fBbpt\fR=\fIBPT\fR
+each IO transaction will be made using \fIBPT\fR blocks (or less if
+near the end of the copy). Default is 128 for block sizes less that 2048
bytes, otherwise the default is 32. So for bs=512 the reads and writes
will each convey 64 KiB of data by default (less if near the end of the
transfer or memory restrictions). When cd/dvd drives are accessed, the
block size is typically 2048 bytes and bpt defaults to 32 which again
implies 64 KiB transfers.
.TP
-bs=BYTES
-this
+\fBbs\fR=\fIBS\fR
+where \fIBS\fR
.B must
be the block size of the physical device. Note that this differs from
.B dd(1)
-which permits 'bs' to be an integral multiple. Default is 512 which
+which permits \fIBS\fR to be an integral multiple. Default is 512 which
is usually correct for disks but incorrect for cdroms (which normally
-have 2048 byte blocks).
+have 2048 byte blocks). For this utility the maximum size of each individual
+IO operation is \fIBS\fR * \fIBPT\fR bytes.
.TP
-cdbsz=6 | 10 | 12 | 16
+\fBcdbsz\fR=6 | 10 | 12 | 16
size of SCSI READ and/or WRITE commands issued on sg device names.
Default is 10 byte SCSI command blocks (unless calculations indicate
that a 4 byte block number may be exceeded, in which case it defaults
to 16 byte SCSI commands).
.TP
-count=BLOCKS
-copy this number of blocks from 'if' to 'of'. Default is the
-minimum (of 'if' and 'of') number of blocks that sg devices return from
-READ CAPACITY SCSI commands or that block devices (or their partitions)
-report. Normal files are not probed for their size. If 'skip'
-or 'seek' are given and the count is derived (i.e. not explicitly given)
-then the derived count is scaled back so that the copy will not overrun the
-device. If the file name is a block device partition and count is not given
-then the size of the partition rather than the size of the whole device is
-used. If count is not given and cannot be derived then an error message
-is issued and no copy takes place.
+\fBcount\fR=\fICOUNT\fR
+copy \fICOUNT\fR blocks from \fIIFILE\fR to \fIOFILE\fR. Default is the
+minimum (of \fIIFILE\fR and \fIOFILE\fR) number of blocks that sg devices
+report from SCSI READ CAPACITY commands or that block devices (or their
+partitions) report. Normal files are not probed for their size. If
+\fIskip=SKIP\fR or \fIskip=SEEK\fR are given and the count is derived (i.e.
+not explicitly given) then the derived count is scaled back so that the
+copy will not overrun the device. If the file name is a block device
+partition and \fICOUNT\fR is not given then the size of the partition rather
+than the size of the whole device is used. If \fICOUNT\fR is not given and
+cannot be derived then an error message is issued and no copy takes place.
.TP
-dio=0 | 1
-permits direct IO to be selected on the write-side (i.e. 'of'). Only
-allowed when the read-side (i.e. 'if') is a sg device. When 1 there
-may be a "zero copy" copy (i.e. mmap-ed transfer on the read into the user
-space and direct IO from there on the write, potentially two DMAs and
-no data copying from the CPU). Default is 0
+\fBdio\fR=0 | 1
+permits direct IO to be selected on the write\-side (i.e. on \fIOFILE\fR).
+Only allowed when the read\-side (i.e. \fIIFILE\fR) is a sg device. When
+1 there may be a "zero copy" copy (i.e. mmap\-ed transfer on the read into
+the user space and direct IO from there on the write, potentially two DMAs
+and no data copying from the CPU). Default is 0.
.TP
-ibs=BYTES
-if given must be the same as bs
+\fBibs\fR=\fIBS\fR
+if given must be the same as \fIBS\fR given to 'bs=' option.
.TP
-if=FILE
-read from FILE instead of stdin which is the default. A file name of "-"
-is taken to be stdin. Starts reading at the beginning of FILE
-unless 'skip' is given.
+\fBif\fR=\fIIFILE\fR
+read from \fIIFILE\fR instead of stdin. If \fIIFILE\fR is '\-' then stdin
+is read. Starts reading at the beginning of \fIIFILE\fR unless \fISKIP\fR
+is given.
.TP
-iflag=FLAGS
-where FLAGS is a comma separated list of one or more flags outlined below.
-These flags are associated with <ifile> and are ignored when <ifile> is
-stdin.
+\fBiflag\fR=\fIFLAGS\fR
+where \fIFLAGS\fR is a comma separated list of one or more flags outlined
+below. These flags are associated with \fIIFILE\fR and are ignored when
+\fIIFILE\fR is stdin.
.TP
-obs=BYTES
-if given must be the same as bs
+\fBobs\fR=\fIBS\fR
+if given must be the same as \fIBS\fR given to 'bs=' option.
.TP
-of=FILE
-write to FILE instead of stdout. A file name of - is taken to be stdout.
-If FILE is /dev/null then no actual writes are performed. If FILE is .
-(period) then it is treated the same way as /dev/null (this is a
-shorthand notation)
+\fBof\fR=\fIOFILE\fR
+write to \fIOFILE\fR instead of stdout. If \fIOFILE\fR is '\-' then writes
+to stdout. If \fIOFILE\fR is /dev/null then no actual writes are performed.
+If \fIOFILE\fR is '.' (period) then it is treated the same way as
+/dev/null (this is a shorthand notation). If \fIOFILE\fR exists then it
+is _not_ truncated; it is overwritten from the start of \fIOFILE\fR
+unless 'oflag=append' or \fISEEK\fR is given.
.TP
-oflag=FLAGS
-where FLAGS is a comma separated list of one or more flags outlined below.
-These flags are associated with <ofile> and are ignored when <ofile>
-is /dev/null, . (period), or stdout.
+\fBoflag\fR=\fIFLAGS\fR
+where \fIFLAGS\fR is a comma separated list of one or more flags outlined
+below. These flags are associated with \fIOFILE\fR and are ignored when
+\fIOFILE\fR is /dev/null, '.' (period), or stdout.
.TP
-seek=BLOCKS
-start writing BLOCKS bs-sized blocks from the start of the output file.
+\fBseek\fR=\fISEEK\fR
+start writing \fISEEK\fR bs\-sized blocks from the start of \fIOFILE\fR.
Default is block 0 (i.e. start of file).
.TP
-skip=BLOCKS
-start reading BLOCKS bs-sized blocks from the start of input file.
+\fBskip\fR=\fISKIP\fR
+start reading \fISKIP\fR bs\-sized blocks from the start of \fIIFILE\fR.
Default is block 0 (i.e. start of file).
.TP
-sync=0 | 1
-when 1, does SYNCHRONIZE CACHE command on 'of' at the end of the transfer.
-Only active when 'of' is a sg device file name
+\fBsync\fR=0 | 1
+when 1, does SYNCHRONIZE CACHE command on \fIOFILE\fR at the end of the
+transfer. Only active when \fIOFILE\fR is a sg device file name.
.TP
-time=0 | 1
+\fBtime\fR=0 | 1
when 1, times transfer and does throughput calculation, outputting the
-results (to stderr) at completion. When 0 (default) doesn't perform timing
+results (to stderr) at completion. When 0 (default) doesn't perform timing.
.TP
-verbose=<n>
-as <n> increases so does the amount of debug output sent to stderr.
+\fBverbose\fR=\fIVERB\fR
+as \fIVERB\fR increases so does the amount of debug output sent to stderr.
Default value is zero which yields the minimum amount of debug output.
A value of 1 reports extra information that is not repetitive. A value
2 reports cdbs and responses for SCSI commands that are not repetitive
@@ -125,53 +128,58 @@ A value of 1 reports extra information that is not repetitive. A value
repetitive. Values of 3 and 4 yield output for all SCSI commands (and
Unix read() and write() calls) so there can be a lot of output.
.TP
---version
-outputs version number information and exits
+\fB\-\-help\fR
+outputs usage message and exits.
+.TP
+\fB\-\-version\fR
+outputs version number information and exits.
.SH FLAGS
Here is a list of flags and their meanings:
.TP
append
-causes the O_APPEND flag to be added to the open of <ofile>. For normal
+causes the O_APPEND flag to be added to the open of \fIOFILE\fR. For normal
files this will lead to data appended to the end of any existing data.
-Cannot be used together with the 'seek=<n>' option as they conflict.
+Cannot be used together with the \fIseek=SEEK\fR option as they conflict.
The default action of this utility is to overwrite any existing data
-from the beginning of the file or, if 'seek=<n>' is given, starting at
-block <n>. Note that attempting to 'append' to a device file will
-usually be ignored or may cause an error to be reported.
+from the beginning of the file or, if \fISEEK\fR is given, starting at
+block \fISEEK\fR. Note that attempting to 'append' to a device file (e.g.
+a disk) will usually be ignored or may cause an error to be reported.
.TP
direct
-causes the O_DIRECT flag to be added to the open of <ifile> and/or <ofile>.
-This flag requires some memory alignment on IO. Hence user memory buffers
-are aligned to the page size. Has no effect on sg, normal or raw files.
+causes the O_DIRECT flag to be added to the open of \fIIFILE\fR and/or
+\fIOFILE\fR. This flag requires some memory alignment on IO. Hence user
+memory buffers are aligned to the page size. Has no effect on sg, normal
+or raw files.
.TP
dpo
-set the DPO bit (disable page out) in READ and WRITE SCSI commands. Not
+set the DPO bit (disable page out) in SCSI READ and WRITE commands. Not
supported for 6 byte cdb variants of READ and WRITE. Indicates that
data is unlikely to be required to stay in device (e.g. disk) cache.
May speed media copy and/or cause a media copy to have less impact
on other device users.
.TP
dsync
-causes the O_SYNC flag to be added to the open of <ifile> and/or <ofile>.
-The "d" is prepended to lower confusion with the 'sync=0|1' option which
-has another action (i.e. a synchronisation to media at the end of the
-transfer).
+causes the O_SYNC flag to be added to the open of \fIIFILE\fR and/or
+\fIOFILE\fR. The "d" is prepended to lower confusion with the 'sync=0|1'
+option which has another action (i.e. a synchronisation to media at the
+end of the transfer).
.TP
excl
-causes the O_EXCL flag to be added to the open of <ifile> and/or <ofile>.
+causes the O_EXCL flag to be added to the open of \fIIFILE\fR and/or
+\fIOFILE\fR.
.TP
fua
-causes the FUA (force unit access) bit to be set in READ and/or WRITE
-SCSI commands. This only has effect with sg devices. The 6 byte variants
-of the READ and WRITE SCSI commands do not support the FUA bit.
+causes the FUA (force unit access) bit to be set in SCSI READ and/or WRITE
+commands. This only has effect with sg devices. The 6 byte variants
+of the SCSI READ and WRITE commands do not support the FUA bit.
Only active for sg device file names.
.SH RETIRED OPTIONS
Here are some retired options that are still present:
.TP
fua=0 | 1 | 2 | 3
-force unit access bit. When 3, fua is set on both 'if' and 'of'; when 2, fua
-is set on 'if'; when 1, fua is set on 'of'; when 0 (default), fua is cleared
-on both. See the 'fua' flag.
+force unit access bit. When 3, fua is set on both \fIIFILE\fR and
+\fIOFILE\fR; when 2, fua is set on \fIIFILE\fR; when 1, fua is set on
+\fIOFILE\fR; when 0 (default), fua is cleared on both. See the 'fua' flag.
.SH NOTES
A raw device must be bound to a block device prior to using sgm_dd.
See
@@ -182,15 +190,16 @@ before use.
.PP
Raw device partition information can often be found with
.B fdisk(8)
-[the "-ul" argument is useful in this respect].
+[the "\-ul" argument is useful in this respect].
.PP
-BYTES and BLOCKS may be followed by one of these multiplicative suffixes:
+\fICOUNT\fR, \fISKIP\fR, \fISEEK\fR, \fIBPT\fR and \fIBS\fR may include one
+of these multiplicative suffixes:
c C *1; w W *2; b B *512; k K KiB *1,024; KB *1,000; m M MiB *1,048,576;
MB *1,000,000 . This pattern continues for "G", "T" and "P". The latter two
-suffixes can only be used for count, skip and seek values). Also a suffix of
-the form "x<n>" multiplies the leading number by <n>. These multiplicative
-suffixes are compatible with GNU's dd command (since 2002) which claims
-compliance with SI and with IEC 60027-2.
+suffixes can only be used for \fICOUNT\fR, \fISKIP\fR and \fISEEK\fR.
+Also a suffix of the form "x<n>" multiplies the leading number by <n>.
+These multiplicative suffixes are compatible with GNU's dd command (since
+2002) which claims compliance with SI and with IEC 60027\-2.
.PP
Alternatively numerical values can be given in hexadecimal preceded by
either "0x" or "0X" (or with a trailing "h" or "H"). When hex numbers are
@@ -215,7 +224,7 @@ All informative, warning and error output is sent to stderr so that
dd's output file can be stdout and remain unpolluted. If no options
are given, then the usage message is output and nothing else happens.
.PP
-For sg devices this utility issues READ and WRITE (SBC) SCSI commands
+For sg devices this utility issues SCSI READ and WRITE (SBC) commands
which are appropriate for disks and reading from CD/DVD drives. Those
commands are not formatted correctly for tape devices so sgm_dd should
not be used on tape devices.
@@ -245,7 +254,7 @@ Written by Doug Gilbert and Peter Allworth.
.SH "REPORTING BUGS"
Report bugs to <dgilbert at interlog dot com>.
.SH COPYRIGHT
-Copyright \(co 2000-2006 Douglas Gilbert
+Copyright \(co 2000\-2007 Douglas Gilbert
.br
This software is distributed under the GPL version 2. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.