918 lines
36 KiB
Groff
918 lines
36 KiB
Groff
.\" Hey, EMACS: -*- nroff -*-
|
|
.\"
|
|
.\" IMPORTANT NOTE:
|
|
.\"
|
|
.\" The original of this file is kept in xorriso/xorrecord.texi
|
|
.\" This here was generated by program xorriso/make_xorriso_1
|
|
.\"
|
|
.\"
|
|
.\" First parameter, NAME, should be all caps
|
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
|
.\" other parameters are allowed: see man(7), man(1)
|
|
.TH XORRECORD 1 "Version 1.5.7, Apr 19, 2024"
|
|
.\" Please adjust this date whenever revising the manpage.
|
|
.\"
|
|
.\" Some roff macros, for reference:
|
|
.\" .nh disable hyphenation
|
|
.\" .hy enable hyphenation
|
|
.\" .ad l left justify
|
|
.\" .ad b justify to both left and right margins
|
|
.\" .nf disable filling
|
|
.\" .fi enable filling
|
|
.\" .br insert line break
|
|
.\" .sp <n> insert n+1 empty lines
|
|
.\" for manpage-specific macros, see man(7)
|
|
.nh
|
|
.SH NAME
|
|
xorrecord \- Emulation of CD/DVD/BD program cdrecord by program xorriso
|
|
.SH SYNOPSIS
|
|
.B xorrecord
|
|
[ options ] dev=device [track_source]
|
|
.br
|
|
.SH DESCRIPTION
|
|
.PP
|
|
\fBxorrecord\fR
|
|
writes preformatted data to CD, DVD, and BD media.
|
|
.br
|
|
.PP
|
|
It understands some options of program cdrecord from cdrtools by
|
|
Joerg Schilling.
|
|
Its implementation is part of program xorriso which shares no source
|
|
code with cdrtools, but rather makes use of libburn for communicating
|
|
with the drive.
|
|
.br
|
|
Another, more complete cdrecord emulator is program \fBcdrskin\fR
|
|
which uses the same burn functions as \fBxorrecord\fR, but is able
|
|
to burn audio CDs and to handle CD\-TEXT.
|
|
.SS
|
|
\fBMMC, Session, Track, Media types:\fR
|
|
.br
|
|
\fBMMC\fR
|
|
is a standard out of the SCSI family which defines the interaction between
|
|
computers and optical drives. Since more than a decade all CD, DVD, or BD
|
|
recorders obey this standard regardless by what bus cabling they are
|
|
attached to the computer. libburn relies on this standard compliance and
|
|
on the capability of the operating system to perform SCSI transactions
|
|
over the particular bus cabling.
|
|
.br
|
|
A \fBSession\fR is a data region on an optical disc which usually
|
|
gets written in a single sweep. It contains at least one
|
|
\fBTrack\fR which is a contiguous string of readable blocks.
|
|
\fBxorrecord\fR produces a single session with a single data track
|
|
which consists of blocks with 2048 bytes each. It chooses the write mode
|
|
automatically according to media type, medium state, and option \-multi.
|
|
.br
|
|
On CD media there are other track types, like audio, and particular write
|
|
modes like TAO and SAO. CD and DVD\- media can put more than one track into
|
|
a session. Some of these features can be addressed by program \fBcdrskin\fR.
|
|
.br
|
|
MMC describes several recordable \fBmedia types\fR which roughly form two
|
|
families.
|
|
.br
|
|
\fBSequentially recordable media\fR
|
|
are CD\-R, CD\-RW, DVD\-R, DVD\-R DL, DVD\-RW, DVD+R, DVD+R DL, BD\-R.
|
|
Except DVD\-R DL they can store more than one session if there is still
|
|
unwritten space and if the previous session was written with option
|
|
\fB\-multi\fR. CD\-RW and DVD\-RW can be blanked in order to be re\-usable
|
|
from scratch.
|
|
.br
|
|
\fBOverwritable media\fR are DVD\-RAM, DVD+RW, formatted DVD\-RW, BD\-RE.
|
|
They offer a single session with a single track for random access writing.
|
|
There is no need to blank overwritable media before re\-use.
|
|
.br
|
|
DVD\-RW media are sold in sequentially recordable state but can be
|
|
formatted once to become overwritable. See options
|
|
\fBblank=format_overwrite\fR and \fBblank=deformat\fR.
|
|
.br
|
|
If ISO 9660 filesystems are to be stored on overwritable media, then it
|
|
is possible to emulate multiple sessions, by using option
|
|
\fB\-\-grow_overwriteable_iso\fR. In this case, the need for
|
|
blanking before re\-use is emulated too.
|
|
.SS
|
|
.B Drive preparation and addressing:
|
|
.PP
|
|
The drives, CD, DVD, or BD burners, are accessed via file addresses which
|
|
are specific to libburn and the operating system. Those addresses get listed
|
|
by a run of \fBxorrecord \-\-devices\fR or \fBxorriso \-device_links\fR.
|
|
.br
|
|
On GNU/Linux, FreeBSD, and NetBSD, the user needs rw\-permission for the
|
|
device file.
|
|
On Solaris, the user needs r\-permission and privilege "sys_devices",
|
|
which is usually gained by running \fBxorrecord\fR via command pfexec.
|
|
.br
|
|
These permissions or privileges are needed already for listing a drive.
|
|
So it might be necessary to get the overview as superuser or via pfexec.
|
|
.br
|
|
\fBxorrecord\fR does not perform cdrecord option \-scanbus and does
|
|
not accept the addresses of form Bus,Target,Lun which are told by \-scanbus.
|
|
If support for these addresses is necessary, consider to use program cdrskin.
|
|
.br
|
|
It is possible to let \fBxorrecord\fR work on emulated drives.
|
|
Their addresses begin by prefix "stdio:" followed by a file address.
|
|
The emulated media behavior depends on the file type.
|
|
See man xorriso for details.
|
|
.br
|
|
If standard output is chosen as emulated drive, then all program result
|
|
texts, which usually appear on standard output, will get redirected to
|
|
standard error.
|
|
.SS
|
|
\fBRelation to program xorriso:\fR
|
|
.br
|
|
\fBxorrecord\fR is actually a command mode of program \fBxorriso\fR,
|
|
which gets entered either by xorriso command "\-as cdrecord" or by
|
|
starting the program by one of the names "xorrecord", "cdrecord",
|
|
"wodim", or "cdrskin".
|
|
.br
|
|
This command mode can be left by argument "\-\-" which leads
|
|
to generic xorriso command mode. See \fBman xorriso\fR for its description.
|
|
Other than in xorriso command mode, the sequence of the cdrecord emulation
|
|
options does not matter.
|
|
All pending actions get performed in a fixed sequence before the program
|
|
run ends or before cdrecord emulation ends.
|
|
.SS
|
|
.br
|
|
.SH OPTIONS
|
|
.br
|
|
.PP
|
|
.TP
|
|
.B Addressing the drive:
|
|
.TP
|
|
\fB--devices\fR
|
|
Print the list of accessible CD, DVD, or BD drives to standard output.
|
|
Drives might be inaccessible if the user lacks of permissions to use them
|
|
or if the drive is in use by another program.
|
|
.br
|
|
Each accessible drive is shown by a line like:
|
|
.br
|
|
0 \-dev '/dev/sr0' rwrw\-\- : 'TSSTcorp' 'CDDVDW SH\-S203B'
|
|
.br
|
|
The libburn address of this drive is '/dev/sr0'. 'TSSTcorp' is the
|
|
name of the vendor (in this case: Toshiba Samsung Storage Technologies
|
|
Corporation), 'CDDVDW SH\-S203B' is the model name (in this case: a DVD burner).
|
|
.br
|
|
Afterwards end emulation without performing any further drive operation.
|
|
.TP
|
|
\fBdev=drive_address\fR
|
|
Set the libburn address of the drive to be used.
|
|
.br
|
|
E.g. on GNU/Linux: dev=/dev/sr0
|
|
.br
|
|
E.g. on FreeBSD: dev=/dev/cd0
|
|
.br
|
|
E.g. on NetBSD: dev=/dev/rcd0d
|
|
.br
|
|
E.g. on Solaris: dev=/dev/rdsk/c2t2d0s2
|
|
.br
|
|
See also above "Drive preparation and addressing".
|
|
.br
|
|
The medium in the drive should not be mounted or be otherwise in use.
|
|
.br
|
|
This option will only get into effect if a track source, a blank= option,
|
|
or a drive inquiry option is given. Else it will lead to a SORRY event
|
|
and normally cause a non\-zero exit value.
|
|
.TP
|
|
.B Inquiring drive and media:
|
|
.TP
|
|
\fB\-inq\fR
|
|
Print to standard output: vendor, model name, and firmware revision
|
|
of the drive.
|
|
.TP
|
|
\fB\-checkdrive\fR
|
|
Print unconditionally that the drive supports burnfree, SAO, and TAO.
|
|
Also print the output of option \-inq.
|
|
.TP
|
|
\fB\-atip\fR
|
|
Print the output of \-checkdrive, the most capable profile of the medium
|
|
in the drive, the list of profiles which are supported by the drive,
|
|
whether it is erasable (i.e. can be blanked), the media manufacturer, and
|
|
the medium product name.
|
|
.br
|
|
Profiles are usage models, which are often tied to a particular media type
|
|
(e.g. CD\-RW), but may also apply to a family of media. E.g. profile CD\-ROM
|
|
applies to all CD media which contain data.
|
|
.TP
|
|
\fB\-toc\fR
|
|
Print a table of content of the medium in the drive. The output is not
|
|
compatible to
|
|
cdrecord option \-toc, but rather the one of \fBxorriso\fR command \-toc.
|
|
It lists the address, vendor, model name, and firmware revision of the drive.
|
|
.br
|
|
About the medium it tells product name and manufacturer, whether there
|
|
is already content written, and if so, whether the medium is closed or
|
|
appendable. Appendable media can take another session.
|
|
The amount of readable and writable data is told.
|
|
If there are sessions, then their start block address and size is reported.
|
|
If a session contains an ISO 9660 filesystem, then its Volume Id is reported.
|
|
If the medium is writable, then the next writable block address is reported.
|
|
.br
|
|
If not option \fB\-\-grow_overwriteable_iso\fR is given or no ISO 9660
|
|
file system is present on the medium, then overwritable media are reported
|
|
as being blank. This is due to the fact that they can be written from
|
|
scratch without further preparation, and that MMC does not distinguish
|
|
between data written by the most previous burn run and older data
|
|
which have not been overwritten by that burn run.
|
|
Consequently, these media are reported with 0 readable blocks, although
|
|
all their writable blocks normally are readable, too.
|
|
.TP
|
|
\fB\-msinfo\fR
|
|
Print the argument text for option \-C of programs mkisofs, genisoimage,
|
|
or xorrisofs. It consists of two numbers separated by a comma.
|
|
.br
|
|
The first number tells the first block of the first track of the last recorded
|
|
session. This is also the address used by default when operating systems
|
|
mount a medium with e.g. ISO 9660 filesystem.
|
|
.br
|
|
The second number tells the next writable address, where \fBxorrecord\fR
|
|
will begin to write the next session.
|
|
.br
|
|
This option is only valid for written, appendable media. In all other
|
|
cases it will yield no output text but will abort the program
|
|
with non\-zero exit value.
|
|
.TP
|
|
.B Settings for the burn run:
|
|
.PP
|
|
A burn run requires exactly one track source address argument, which
|
|
tells from where to read the data which shall be put into the upcoming
|
|
session. The medium state must be either blank or appendable.
|
|
.br
|
|
Track source may be "\-" for standard input or the address of a readable
|
|
file of any type except directories. Nearly all media types accept a track
|
|
source with unpredictable byte count, like standard input or named pipes.
|
|
Nevertheless, DVD\-R DL and DVD\-RW blanked by mode deformat_quickest
|
|
demand exact in\-advance reservation of the track size, so that they either
|
|
need to be read from a source of
|
|
predictable length, or need to be accompanied by option \fBtsize=\fR or
|
|
by option \fB\-isosize\fR.
|
|
.br
|
|
Several options expect a size value as argument. A number with a trailing
|
|
letter "b" or without a trailing letter is a plain byte count. Other trailing
|
|
letters cause multiplication of the given number by a scaling factor:
|
|
.br
|
|
"k" or "K" = 1024 , "m" or "M" = 1024k , "g" or "G" = 1024m , "s" or "S" = 2048
|
|
.br
|
|
E.g. tsize=234567s means a size of 234567 * 2048 = 480393216 bytes.
|
|
.TP
|
|
\fBblank=mode\fR
|
|
Blank a CD\-RW or DVD\-RW to make it re\-usable from scratch.
|
|
Format a DVD\-RW, DVD+RW, DVD\-RAM, BD\-R, or BD\-RE if not yet formatted.
|
|
.br
|
|
This operation normally makes any recorded data on the medium unreadable.
|
|
It is combinable with burning in the same run of \fBxorrecord\fR,
|
|
or it may be performed without a track source, leaving the medium empty.
|
|
.br
|
|
The mode given with blank= selects the particular behavior:
|
|
.RS
|
|
.TP
|
|
.br
|
|
as_needed
|
|
.br
|
|
Try to make the media ready for writing from scratch. If it needs formatting,
|
|
then format it. If it is not blank, then try to apply blank=fast.
|
|
It is a reason to abort if the medium cannot assume thoroughly writeable
|
|
state, e.g. if it is a non\-blank write\-once.
|
|
.br
|
|
This leaves unformatted DVD\-RW in unformatted blank state. To format DVD\-RW use
|
|
blank=format_overwrite. Blank unformatted BD\-R stay unformatted.
|
|
.br
|
|
(Note: blank=as_needed is not an original cdrecord option.)
|
|
.TP
|
|
.br
|
|
all
|
|
.br
|
|
Blank an entire CD\-RW or an unformatted DVD\-RW.
|
|
.TP
|
|
.br
|
|
fast
|
|
.br
|
|
Minimally blank an entire CD\-RW or blank an unformatted DVD\-RW.
|
|
.TP
|
|
.br
|
|
deformat
|
|
.br
|
|
Like blank=all but with the additional ability to blank overwritable DVD\-RW.
|
|
This will destroy their formatting and make them sequentially recordable.
|
|
.br
|
|
(Note: blank=deformat is not an original cdrecord options)
|
|
.TP
|
|
.br
|
|
deformat_quickest
|
|
.br
|
|
Like blank=deformat but blanking DVD\-RW only minimally.
|
|
This is faster than full blanking but yields media incapable of
|
|
writing tracks of unpredictable size.
|
|
Multi\-session will not be possible either.
|
|
.br
|
|
(Note: blank=deformat_quickest is not an original cdrecord option.)
|
|
.TP
|
|
.br
|
|
format_overwrite
|
|
.br
|
|
Format a DVD\-RW to "Restricted Overwrite". The user should bring some patience.
|
|
.br
|
|
Format unformatted DVD+RW, BD\-RE or blank BD\-R to their default size.
|
|
It is not mandatory to do this with DVD+RW and BD\-RE media, because they
|
|
will get formatted automatically on the first write attempt.
|
|
.br
|
|
BD\-R media may be written in unformatted state. This keeps disabled the
|
|
replacement of bad blocks and enables full nominal write speed. Once BD\-R
|
|
media are written, they cannot be formatted any more.
|
|
.br
|
|
For re\-formatting already formatted media or for formatting with
|
|
non\-default size, use program \fBxorriso\fR with command \fB\-format\fR.
|
|
.br
|
|
(Note: blank=format_overwrite is not an original cdrecord options)
|
|
.TP
|
|
.br
|
|
help
|
|
.br
|
|
Print a short overview of blank modes to standard error output.
|
|
.br
|
|
Afterwards end emulation without performing any drive operation.
|
|
.RE
|
|
.TP
|
|
\fB\-multi\fR
|
|
This option keeps CD, unformatted DVD\-R[W], DVD+R, or BD\-R appendable
|
|
after the current session has been written.
|
|
Without it the disc gets closed and may not be written any more \- unless it
|
|
is a \-RW and gets blanked, which causes loss of its content.
|
|
.br
|
|
This option cannot be applied to DVD\-R DL or to DVD\-RW which were blanked
|
|
by mode "deformat_quickest". Option \-\-multi_if_possible
|
|
may automatically recognize and handle this situation.
|
|
.br
|
|
In order to have all filesystem content accessible, the eventual ISO\-9660
|
|
filesystem of a follow\-up
|
|
session needs to be prepared in a special way by the filesystem formatter
|
|
program. mkisofs, genisoimage, and xorrisofs expect particular info about
|
|
the situation which can be retrieved by \fBxorrecord\fR option \-msinfo.
|
|
.br
|
|
With overwritable DVD or BD media, \-multi cannot mark the end of the session.
|
|
So when adding a new session, this end has to be determined from the payload.
|
|
Currently only ISO\-9660 filesystems can be used that way. See option
|
|
\fB\-\-grow_overwriteable_iso\fR.
|
|
.TP
|
|
\fB\-dummy\fR
|
|
Try to perform the drive operations without actually affecting the inserted
|
|
media. There is no warranty that this will work with a particular combination
|
|
of drive and media. Blanking is prevented reliably, though.
|
|
To avoid inadverted real burning, \-dummy refuses burn runs on anything but
|
|
CD\-R[W], DVD\-R[W], or emulated stdio\-drives.
|
|
.TP
|
|
\fB\-waiti\fR
|
|
Wait until input data is available at stdin or EOF occurs at stdin.
|
|
Only then begin to access any drives.
|
|
.br
|
|
One should use this if xorrisofs is working at the end of a pipe where the
|
|
feeder process reads from the drive before it starts writing its output into
|
|
xorrisofs. Example:
|
|
.br
|
|
xorrisofs ... \-C 0,12800 \-M /dev/sr0 ... | \\
|
|
.br
|
|
xorrecord dev=/dev/sr0 ... \-waiti \-
|
|
.br
|
|
This option works even if standard input is not the track source. If no process
|
|
is piping in, then the Enter key of your terminal will act as trigger for
|
|
\fBxorrecord\fR. Note that this input line will not be consumed by
|
|
cdrskin if standard input is not the track source. It will end up as shell
|
|
command, usually.
|
|
.TP
|
|
\fBtsize=size\fR
|
|
Announce the exact size of the track source. This is necessary with
|
|
DVD\-R DL media and with quickest blanked DVD\-RW, if the size cannot be
|
|
determined in advance from the track source. E.g. if it is standard input
|
|
or a named pipe.
|
|
.br
|
|
If the track source does not deliver the predicted amount of bytes, the
|
|
remainder of the track is padded with zeros. This is not considered an error.
|
|
If on the other hand the track source delivers more than the announced bytes
|
|
then the track on media gets truncated to the predicted size and xorrecord
|
|
exits with non\-zero value.
|
|
.TP
|
|
\fB\-isosize\fR
|
|
Try to obtain the track size from the content of the track source.
|
|
This works only if the track source bears an ISO 9660 filesystem.
|
|
Any other track source content will cause the burn run to abort.
|
|
.br
|
|
If the track source is not a regular file or block device, then this option
|
|
will work only if the program's fifo size is at least 64k. See option fs=.
|
|
.TP
|
|
\fBpadsize=size\fR
|
|
Add the given amount of trailing zeros to the upcoming track.
|
|
This feature can be disabled by size 0. Default is 300 kB in order to
|
|
work around a problem with GNU/Linux which often fails to read the last few
|
|
blocks of a CD track which was written in write mode TAO. TAO is used
|
|
by \fBxorrecord\fR if the track size cannot be predicted or if the CD
|
|
medium is not blank but appendable.
|
|
.TP
|
|
\fB\-nopad\fR
|
|
The same as padsize=0.
|
|
.TP
|
|
\fB\-pad\fR
|
|
The same as padsize=15s. This was once sufficient with older GNU/Linux
|
|
kernels. Meanwhile one should at least use padsize=128k, if not padsize=300k.
|
|
.TP
|
|
\fB\-data\fR
|
|
Explicitly announce that the track source shall be recorded as data track,
|
|
and not as audio track. This option has no effect with \fBxorrecord\fR,
|
|
because there is no support for other track formats anyway.
|
|
.TP
|
|
\fB\-tao\fR
|
|
Explicitly demand that write type TAO shall be used for CD, or Incremental
|
|
for DVD\-R. Normally the program will choose the write type according to the
|
|
given medium state, option \-multi, and track source. Demanding it explicitly
|
|
prevents the start of a write run, if it is not appropriate to the situation.
|
|
.TP
|
|
\fB\-sao\fR
|
|
Explicitly demand that write type SAO shall be used for CD, or DAO for DVD\-R.
|
|
This might prevent the write run, if it is not appropriate to the situation.
|
|
.TP
|
|
\fB\-dao\fR
|
|
Alias of \-sao.
|
|
.TP
|
|
\fBfs=size\fR
|
|
Set the size of the program fifo buffer to the given value
|
|
rather than the default of 4m.
|
|
.br
|
|
The fifo buffers a temporary surplus of track source data in order to
|
|
provide the drive with a steady stream during times of temporary lack of track
|
|
source supply.
|
|
.br
|
|
Other than cdrecord, xorrecord enables drive buffer underrun protection by
|
|
default and does not wait with writing until the fifo is full for a first
|
|
time.
|
|
On very old CD drives and slow computers, this might cause aborted burn runs.
|
|
In this case, consider to use program \fBcdrskin\fR for CD burning.
|
|
DVD and BD drives tolerate buffer underrun without problems.
|
|
.br
|
|
The larger the fifo, the longer periods of poor source supply can be
|
|
compensated. But a large fifo can deprive the operating system of read cache
|
|
for better filesystem performance.
|
|
.TP
|
|
\fBspeed=value\fR
|
|
Set the write speed. Default is 0 = maximum speed.
|
|
Speed can be given in media type dependent x\-speed numbers or as a
|
|
desired throughput per second in MMC compliant kB (= 1000)
|
|
or MB (= 1000 kB). Media x\-speed factor can be set explicitly
|
|
by appending "c" for CD, "d" for DVD, "b" for BD. "x" is optional.
|
|
.br
|
|
Example speeds:
|
|
.br
|
|
706k = 706kB/s = 4c = 4xCD
|
|
.br
|
|
5540k = 5540kB/s = 4d = 4xDVD
|
|
.br
|
|
If there is no hint about the speed unit attached, then the
|
|
medium in the drive will decide.
|
|
Default unit is CD, 1x = 176,400 raw bytes/second.
|
|
With DVD, 1x = 1,385,000 bytes/second.
|
|
With BD, 1x = 4,495,625 bytes/second.
|
|
.br
|
|
MMC drives usually activate their own idea of speed and take
|
|
the speed value given by the burn program only as a hint
|
|
for their own decision.
|
|
.TP
|
|
\fBminbuf=percentage\fR
|
|
Equivalent to:
|
|
.br
|
|
modesty_on_drive=<percentage>
|
|
.TP
|
|
\fB\-immed\fR
|
|
Equivalent to:
|
|
.br
|
|
modesty_on_drive=75
|
|
.br
|
|
In cdrecord, this also controls use of the Immed bit.
|
|
But xorriso uses Immed where possible and appropriate, unless it is disabled
|
|
by option use_immed_bit=off .
|
|
.TP
|
|
\fB\-eject\fR
|
|
Eject the drive tray after alll other work is done.
|
|
.TP
|
|
.B Program version and verbosity:
|
|
.TP
|
|
\fB\-version\fR
|
|
Print to standard output a line beginning by
|
|
.br
|
|
"Cdrecord 2.01\-Emulation Copyright"
|
|
.br
|
|
and further lines which report the version of xorriso and its
|
|
supporting libraries. They also state the license under which the program
|
|
is provided, and disclaim any warranty, to the extent permitted by law.
|
|
.br
|
|
Afterwards end emulation without performing any drive operation.
|
|
.TP
|
|
\fB\-v\fR
|
|
Increase program verbosity by one level. There are four verbosity levels
|
|
from nearly silent to debugging verbosity. The both highest levels can
|
|
be enabled by repeated \-v or by \-vv or by \-vvv.
|
|
.TP
|
|
\fB\-V\fR
|
|
Log SCSI commands and drive replies to standard error.
|
|
This might be of interest if \fBxorrecord\fR and a particular drive
|
|
or medium do not cooperate as expected, or if you just want to know
|
|
how libburn interacts with the drive.
|
|
To understand this extremely verbose log, one needs to read SCSI
|
|
specs SPC, SBC, and MMC.
|
|
.br
|
|
Please do not add such a log to a bug report on the first hand,
|
|
unless you want to point out a particular deviation
|
|
from said specs, or if you get asked for this log by a maintainer of
|
|
\fBxorrecord\fR who feels in charge for your bug report.
|
|
.TP
|
|
\fB\-help\fR
|
|
Print a sparse list of program options to standard error
|
|
and declare not to be cdrecord.
|
|
.br
|
|
Afterwards end emulation without performing any drive operation.
|
|
.TP
|
|
.B Options not compatible to cdrecord:
|
|
.TP
|
|
\fB--no_rc\fR
|
|
Only if used as first command line argument this option
|
|
prevents reading and interpretation of startup files. See section FILES below.
|
|
.TP
|
|
\fB--drive_not_exclusive\fR
|
|
This option disables the use of device file locking mechanisms when acquiring
|
|
the drive. On GNU/Linux the locking is done by open(O_EXCL), on FreeBSD by
|
|
flock(LOCK_EX).
|
|
.br
|
|
Be aware that it can cause problems if you use a drive which is mounted,
|
|
or opened by some other process, or guarded by /dev/pktcdvd*.
|
|
Make sure that other users of the drive do not cause drive activities
|
|
while a xorrecord burn run is going on.
|
|
.TP
|
|
\fBdrive_scsi_dev_family=sr|scd|sg|default\fR
|
|
GNU/Linux specific:
|
|
.br
|
|
By default, cdrskin tries to map Linux drive addresses to /dev/sr* before
|
|
they get opened for operating the drive. This coordinates well with
|
|
other use cases of optical drives, like mount(8). But since year 2010
|
|
all /dev/sr* share a global lock which allows only one drive to process
|
|
an SCSI command while all others have to wait for its completion.
|
|
This yields awful throughput if more than one drive is writing or reading
|
|
simultaneously.
|
|
.br
|
|
The global lock is not applied to device files /dev/sg* and also not with
|
|
the system calls read(2), write(2). But ioctl(SG_IO) is affected, which is
|
|
needed to perform the SCSI commands for optical burning.
|
|
.br
|
|
So for simultaneous burn runs on modern GNU/Linux it is advisable to use
|
|
drive_scsi_dev_family="sg". The drive addresses may then well be given as
|
|
/dev/sr* but will nevertheless get used as /dev/sg*.
|
|
.TP
|
|
\fB--grow_overwriteable_iso\fR
|
|
Enable emulation of multi\-session writing on overwritable media which
|
|
contain an ISO 9660 filesystem. This emulation is learned from growisofs \-M
|
|
but adapted to the usage model of
|
|
.br
|
|
xorrecord \-msinfo
|
|
.br
|
|
xorrisofs \-C \-M | xorrecord \-waiti \-multi \-
|
|
.br
|
|
for sequential media.
|
|
.br
|
|
\-\-grow_overwriteable_iso does not hamper the use of true multi\-session media.
|
|
I.e. it is possible to use the same \fBxorrecord\fR options with both
|
|
kinds of media
|
|
and to achieve similar results if ISO 9660 filesystem images are to be written.
|
|
This option implies option \-isosize and therefore demands that the track
|
|
source is a ISO 9660 filesystem image.
|
|
.br
|
|
With overwritable media and no option blank=fast|all present it expands an
|
|
eventual ISO 9660 filesystem on media. It is assumed that this image's inner
|
|
size description points to the end of the valuable data.
|
|
Overwritable media with a recognizable ISO 9660 size will be regarded as
|
|
appendable rather than as blank. I.e. options \-msinfo and \-toc will work.
|
|
\-toc will always show a single session with its size increasing with
|
|
every added ISO 9660 image.
|
|
.TP
|
|
\fB--multi_if_possible\fR
|
|
Apply option \-multi if the medium is suitable. Not suitable are DVD\-R DL
|
|
and DVD\-RW, which were blanked with mode "deformat_quickest".
|
|
.br
|
|
Not all drives correctly recognize such fast\-blanked DVD\-RW which need "on".
|
|
If there is well founded suspicion that a burn run failed due to
|
|
\-multi, then this causes a re\-try without \-multi.
|
|
.TP
|
|
\fBstream_recording="on"|"off"|number\fR
|
|
Mode "on" requests that compliance to the desired speed setting is
|
|
preferred over management of write errors. With DVD\-RAM and BD this can
|
|
bring effective write speed near to the nominal write speed of the media.
|
|
But it will also disable the automatic use of replacement blocks
|
|
if write errors occur. It might as well be disliked or ignored by the drive.
|
|
.br
|
|
If a number is given, then error management stays enabled for all byte
|
|
addresses below that number. Any number below 16s is the same as "off".
|
|
.TP
|
|
\fBdvd_obs="default"|"32k"|"64k"\fR
|
|
Set the number of bytes to be transmitted with each write operation to DVD
|
|
or BD media. With most write types, tracks get padded up to the next
|
|
multiple of this write size (see option \-\-obs_pad). A number of 64 KB may
|
|
improve throughput with bus systems which show latency problems.
|
|
The default depends on media type, option stream_recording=, and on compile
|
|
time options.
|
|
.TP
|
|
\fB\--obs_pad\fR
|
|
Pad the data of the last write operation of a DVD\-R[W] DAO session, or BD\-R
|
|
session, or stdio: pseudo\-drive session up to the full size of an output chunk.
|
|
This padding has to be applied automatically to the other DVD and BD media
|
|
types, where it causes e.g. ISO images to have trailing unclaimed blocks.
|
|
Whether it is applied automatically to BD\-R depends on option
|
|
\-\-bdr_obs_exempt.
|
|
.br
|
|
Use this option if there is the suspicion that DVD\-R[W] DAO or BD\-R sessions
|
|
abort with your kernel and/or DVD drive, if their size is not a multiple of
|
|
16 blocks.
|
|
.br
|
|
This option may also get enabled at compile time of libburn.
|
|
.TP
|
|
\fB\--bdr_obs_exempt\fR
|
|
Exempt BD\-R media from automatic unconditional transaction end padding,
|
|
provided that this padding is not requested by \-\-obs_pad and that
|
|
no stream_recording is requested.
|
|
.br
|
|
This is a new feature introduced with version 1.5.6. It might become default
|
|
in later versions.
|
|
.TP
|
|
\fBmodesty_on_drive=parameter[:parameters]\fR
|
|
Control whether the drive buffer shall be kept from getting completely filled.
|
|
Parameter "on" (or "1") keeps the program from trying to write to the burner
|
|
drive while its buffer is in danger to be filled over a given limit.
|
|
If this filling is exceeded then the program will wait until the filling
|
|
reaches a given low percentage value.
|
|
.br
|
|
This can ease the load on operating system and drive controller and thus help
|
|
with achieving better input bandwidth if disk and burner are not on independent
|
|
controllers (like hda and hdb). It may also help with simultaneous burns on
|
|
different burners with Linux kernels like 3.16, if one has reason not to fix
|
|
the problem by drive_scsi_dev_family="sg". On the other hand it increases
|
|
the risk of buffer underflow and thus reduced write speed.
|
|
.br
|
|
Some burners are not suitable because they
|
|
report buffer fill with granularity too coarse in size or time,
|
|
or expect their buffer to be filled to the top before they go to full speed.
|
|
.br
|
|
Parameters "off" or "0" disable this feature.
|
|
.br
|
|
The threshold for beginning to wait is given by parameter "max_percent=".
|
|
Parameter "min_percent=" defines the threshold for resuming transmission.
|
|
Percentages are permissible in the range of 25 to 100. Numbers in this
|
|
range without a prepended name are interpreted as "on:min_percent=".
|
|
.br
|
|
E.g.: modesty_on_drive=75
|
|
.br
|
|
The optimal values depend on the buffer behavior of the drive.
|
|
.br
|
|
Parameter "timeout_sec=" defines after which time of unsuccessful waiting
|
|
the modesty shall be disabled because it does not work.
|
|
.br
|
|
Parameter "min_usec=" defines the initial sleeping period in microseconds.
|
|
If the drive buffer appears to be too full for sending more data, the
|
|
program will wait the given time and inquire the buffer fill state again.
|
|
If repeated inquiry shows not enough free space, the sleep time will
|
|
slowly be increased to what parameter "max_usec=" defines.
|
|
.br
|
|
Parameters, which are not mentioned with a modesty_on_drive= option,
|
|
stay unchanged.
|
|
Default is:
|
|
.br
|
|
modesty_on_drive=off:min_percent=90:max_percent=95:
|
|
timeout_sec=120:min_usec=5000:max_usec=25000
|
|
.TP
|
|
\fBuse_immed_bit="on"|"off"|"default"\fR
|
|
Control whether several long lasting SCSI commands shall be executed with the
|
|
Immed bit, which makes the commands end early while the drive operation is
|
|
still going on. xorriso then inquires progress indication until the drive
|
|
reports to be ready again. If this feature is turned off, then blanking and
|
|
formatting will show no progress indication.
|
|
.br
|
|
It may depend on the operating system whether \-use_immed_bit is set to "off"
|
|
by default.
|
|
.TP
|
|
\fBwrite_start_address=byte_offset\fR
|
|
Set the byte address on overwritable media where to start writing the track.
|
|
With DVD+RW, DVD\-RAM or BD\-RE, byte_offset must be aligned to 2 kiB blocks,
|
|
but better is 32 kiB on DVD and 64 kiB on BD.
|
|
With formatted DVD\-RW 32 kiB alignment is mandatory.
|
|
.br
|
|
Other media are not suitable for this option.
|
|
.TP
|
|
\fBstdio_sync="on"|"off"|number\fR
|
|
Set the number of bytes after which to force output to emulated stdio: drives.
|
|
This forcing keeps the memory from being clogged with lots of
|
|
pending data for slow devices. Default "on" is the same as "16m".
|
|
Forced output can be disabled by "off".
|
|
.SH EXAMPLES
|
|
.SS
|
|
.B Overview of examples:
|
|
Get an overview of drives and their addresses
|
|
.br
|
|
Get info about a particular drive or loaded media
|
|
.br
|
|
Prepare CD-RW or DVD-RW for re-use, BD-R for bad block handling
|
|
.br
|
|
Format DVD-RW to avoid need for blanking before re-use
|
|
.br
|
|
De-format DVD-RW to make it capable of multi-session again
|
|
.br
|
|
Write a single ISO 9660 filesystem image
|
|
.br
|
|
Write multiple ISO 9660 sessions
|
|
.br
|
|
Write ISO 9660 session on-the-fly
|
|
.br
|
|
Write compressed afio archive on-the-fly
|
|
.br
|
|
.SS
|
|
.B Get an overview of drives and their addresses:
|
|
$ xorrecord \-\-devices
|
|
.SS
|
|
.B Get info about a particular drive and loaded media:
|
|
$ xorrecord dev=/dev/sr0 \-atip \-toc \-\-grow_overwriteable_iso
|
|
.SS
|
|
.B Prepare CD-RW or DVD-RW for re-use:
|
|
$ xorrecord \-v dev=/dev/sr0 blank=as_needed \-eject
|
|
.SS
|
|
.B Format DVD-RW to avoid need for blanking before re-use:
|
|
$ xorrecord \-v dev=/dev/sr0 blank=format_overwrite \-eject
|
|
.br
|
|
This command may also be used to format BD\-R media before first use,
|
|
in order to enable handling of write errors. Several hundred MB of spare
|
|
blocks will be reserved and write runs on such media will perform
|
|
with less than half nominal speed.
|
|
.SS
|
|
.B De-format DVD-RW to make it capable of multi-session again:
|
|
$ xorrecord \-v dev=/dev/sr0 blank=deformat
|
|
.SS
|
|
.B Write a single ISO 9660 filesystem image:
|
|
$ xorrecord \-v dev=/dev/sr0 speed=12 fs=8m \\
|
|
blank=as_needed \-eject padsize=300k my_image.iso
|
|
.SS
|
|
.B Write multiple ISO 9660 sessions:
|
|
This is possible with all media except minimally blanked DVD\-RW and DVD\-R DL,
|
|
which cannot do multi\-session.
|
|
.br
|
|
The first session is written like in the previous example, except that
|
|
option \-multi is used. It will contain the files of hard disk
|
|
directory ./tree1 under the ISO 9660 directory /dir1:
|
|
.br
|
|
$ xorrisofs \-o image_1.iso \-J \-graft\-points /dir1=./tree1
|
|
.br
|
|
$ xorrecord \-v dev=/dev/sr0 speed=12 fs=8m \\
|
|
.br
|
|
\-multi \-\-grow_overwriteable_iso \\
|
|
.br
|
|
blank=as_needed \-eject padsize=300k image_1.iso
|
|
.br
|
|
For the second session xorrisofs needs to know the \-msinfo numbers
|
|
of the medium. Further it will read data from the medium by using the
|
|
system's read\-only CD\-ROM driver.
|
|
.br
|
|
Many systems do not take notice of xorrecord's write activities. It is
|
|
necessary to force their attention by ejecting and reloading the drive tray.
|
|
Therefore above run uses option \-eject.
|
|
.br
|
|
Get the \-msinfo numbers (and properly reload the tray if it has a motor) by:
|
|
.br
|
|
$ m=$(xorrecord dev=/dev/sr0 \-msinfo)
|
|
.br
|
|
Offer a victim to any problem caused by obtrusive demons after tray loading:
|
|
.br
|
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
|
.br
|
|
Use the numbers with xorrisofs to add ./tree2 to the image as /dir2:
|
|
.br
|
|
$ xorrisofs \-M /dev/sr0 \-C $m \-o image_2.iso \\
|
|
.br
|
|
\-J \-graft\-points /dir2=./tree2
|
|
.br
|
|
Now burn the new session onto the same medium. This time without blanking:
|
|
.br
|
|
$ xorrecord \-v dev=/dev/sr0 speed=12 fs=8m \\
|
|
.br
|
|
\-multi \-\-grow_overwriteable_iso \\
|
|
.br
|
|
\-eject padsize=300k image_2.iso
|
|
.br
|
|
Operating systems which mount this medium will read the superblock
|
|
of the second session and show both directories /dir1 and /dir2.
|
|
.SS
|
|
.B Write ISO 9660 session on-the-fly:
|
|
It is possible to combine the run of \fBxorrisofs\fR and \fBxorrecord\fR
|
|
in a pipeline without storing the ISO 9660 image as file on hard disk.
|
|
.br
|
|
The piped run is more vulnerable to the problem that some systems have not
|
|
enough patience with automatic tray loading and that demons may interfere
|
|
with a first CD\-ROM driver read attempt from a freshly loaded medium.
|
|
It is advised to load the tray manually or via a separate run of xorriso with
|
|
a subsequent run of dd.
|
|
.br
|
|
Again, xorriso has the patience and dd is a dispensable victim for demons.
|
|
.br
|
|
$ m=$(xorrecord dev=/dev/sr0 \-msinfo)
|
|
.br
|
|
$ dd if=/dev/sr0 count=1 >/dev/null 2>&1
|
|
.br
|
|
$ xorrisofs \-M /dev/sr0 \-C $m \\
|
|
.br
|
|
\-J \-graft\-points /dir2=./tree2 \\
|
|
.br
|
|
| xorrecord \-v dev=/dev/sr0 speed=12 fs=8m \\
|
|
.br
|
|
\-waiti \-multi \-\-grow_overwriteable_iso \\
|
|
.br
|
|
\-eject padsize=300k \-
|
|
.br
|
|
This is also the main use case of program \fBxorriso\fR itself,
|
|
where the run would need no system workarounds and simply look like:
|
|
.br
|
|
$ xorriso \-dev /dev/sr0 \-joliet on \-speed 12 \-fs 8m \\
|
|
.br
|
|
\-map ./tree2 /dir2 \-commit_eject all
|
|
.SS
|
|
.B Write compressed afio archive on-the-fly:
|
|
This is possible with all media except minimally blanked DVD\-RW and DVD\-R DL.
|
|
Since the compressed output stream is of very variable speed, a larger fifo
|
|
is advised. Nevertheless, this example is not suitable for very old CD drives
|
|
which have no underrun protection and thus would abort the burn run on
|
|
temporary data shortage.
|
|
.br
|
|
$ find . | afio \-oZ \- | \\
|
|
.br
|
|
xorrecord \-v dev=/dev/sr0 speed=12 fs=64m \\
|
|
.br
|
|
\-multi padsize=300k \-
|
|
.br
|
|
afio archives do not contain references to absolute data block addresses. So
|
|
they need no special precautions for multi\-session. One may get the session
|
|
start addresses by option \-toc, and then use dd option skip= to begin reading
|
|
at one of those addresses. E.g. for listing its content:
|
|
.br
|
|
$ dd if=/dev/sr0 bs=2048 skip=64046 | afio \-tvZ \-
|
|
.br
|
|
afio will know when the end of the archive is reached.
|
|
.SH FILES
|
|
.SS
|
|
.B Startup files:
|
|
.br
|
|
If not \-\-no_rc is given as the first argument then \fBxorrecord\fR
|
|
attempts on startup to read and execute lines from the following files:
|
|
.br
|
|
/etc/default/xorriso
|
|
.br
|
|
/etc/opt/xorriso/rc
|
|
.br
|
|
/etc/xorriso/xorriso.conf
|
|
.br
|
|
$HOME/.xorrisorc
|
|
.br
|
|
The files are read in the sequence given here, but none of them is required
|
|
to exist. The lines are not interpreted as \fBxorrecord\fR options but
|
|
as generic \fBxorriso\fR commands. See man xorriso.
|
|
.SH SEE ALSO
|
|
.TP
|
|
For generic xorriso command mode
|
|
.BR xorriso(1)
|
|
.TP
|
|
Formatting track sources for xorrecord:
|
|
.BR xorrisofs(1),
|
|
.BR mkisofs(8),
|
|
.BR genisoimage(8),
|
|
.BR afio(1),
|
|
.BR star(1)
|
|
.TP
|
|
Other programs which burn sessions to optical media
|
|
.BR growisofs(1),
|
|
.BR cdrecord(1),
|
|
.BR wodim(1),
|
|
.BR cdrskin(1)
|
|
.SH BUGS
|
|
To report bugs, request help, or suggest enhancements for \fBxorriso\fR,
|
|
please send electronic mail to the public list <bug\-xorriso@gnu.org>.
|
|
If more privacy is desired, mail to <scdbackup@gmx.net>.
|
|
.br
|
|
Please describe what you expect \fBxorriso\fR to do,
|
|
the program arguments or dialog commands by which you tried to achieve it,
|
|
the messages of \fBxorriso\fR, and the undesirable outcome of your
|
|
program run.
|
|
.br
|
|
Expect to get asked more questions before solutions can be proposed.
|
|
.SH AUTHOR
|
|
Thomas Schmitt <scdbackup@gmx.net>
|
|
.br
|
|
for libburnia\-project.org
|
|
.SH COPYRIGHT
|
|
Copyright (c) 2011 \- 2024 Thomas Schmitt
|
|
.br
|
|
Permission is granted to distribute this text freely. It shall only be
|
|
modified in sync with the technical properties of xorriso. If you make use
|
|
of the license to derive modified versions of xorriso then you are entitled
|
|
to modify this text under that same license.
|
|
.SH CREDITS
|
|
\fBxorriso\fR is in part based on work by Vreixo Formoso who provides
|
|
libisofs together with Mario Danic who also leads the libburnia team.
|
|
Thanks to Andy Polyakov who invented emulated growing,
|
|
to Derek Foreman and Ben Jansens who once founded libburn.
|
|
.br
|
|
Compliments towards Joerg Schilling whose cdrtools served me for ten years.
|