xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso |
xorrecord [ options ] dev=device [track_source] |
xorrecord writes preformatted data to CD, DVD, and BD media. 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. |
|
MMC 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. |
Drive preparation and addressing: |
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 xorrecord
--devices or xorriso
-device_links. |
|
xorrecord is actually a command mode of program
xorriso, which gets entered either by xorriso command
"-as cdrecord" or by starting the program by
one of the names "xorrecord",
"cdrecord", "wodim", or
"cdrskin". |
Addressing the drive: |
--devices |
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. |
dev=drive_address |
Set the libburn address of the drive to be used. |
|
-inq |
Print to standard output: vendor, model name, and firmware revision of the drive. |
-checkdrive |
Print unconditionally that the drive supports burnfree, SAO, and TAO. Also print the output of option -inq. |
-atip |
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. |
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. |
-toc |
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 xorriso command -toc. It lists the address, vendor, model name, and firmware revision of the drive. |
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. |
-msinfo |
Print the argument text for option -C of programs
mkisofs, genisoimage, or xorrisofs. It consists of two
numbers separated by a comma. |
Settings for the burn run: |
A burn run requires exactly one track source address
argument, which tells from where to read the data wich shall
be put into the upcomming session. The medium state must be
either blank or appendable. |
blank=mode |
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. |
as_needed |
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. |
all |
Blank an entire CD-RW or an unformatted DVD-RW. |
fast |
Minimally blank an entire CD-RW or blank an unformatted DVD-RW. |
deformat |
Like blank=all but with the additional ability to blank
overwriteable DVD-RW. This will destroy their
formatting and make them sequentially recordable. |
deformat_quickest |
Like blank=deformat but blanking DVD-RW only
minimally. This is faster than full blanking but yields
media incapable of writing tracks of unpredicatable size.
Multi-session will not be possible either. |
format_overwrite |
Format a DVD-RW to "Restricted
Overwrite". The user should bring some patience. |
help |
Print a short overview of blank modes to standard error
output. |
-multi |
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. |
This option cannot be applied to DVD-R DL and
DVD-RW which were blanked by type
deformat_quickest. |
-dummy |
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. |
|
-waiti |
Wait until input data is available at stdin or EOF occurs at stdin. Only then begin to access any drives. |
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: |
tsize=size |
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. |
-isosize |
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. |
padsize=size |
Add the given amount of trailing zeros to the upcomming 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 xorrecord if the track size cannot be predicted or if the CD medium is not blank but appendable. |
-nopad |
The same as padsize=0. |
||
-pad |
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. |
||
-data |
Explicitely announce that the track source shall be recorded as data track, and not as audio track. This option has no effect with xorrecord, because there is no support for other track formats anyway. |
fs=size |
Set the size of the program fifo buffer to the given
value rather than the default of 4m. |
speed=value |
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 explicity by appending "c" for CD,
"d" for DVD, "b" for BD. "x"
is optional. |
-eject |
Eject the drive tray after alll other work is done. |
|
-version |
Print to standard output a line beginning by |
-v |
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 resp. -vvv. |
||
-V |
Log SCSI commands and drive replies to standard error. This might be of interest if xorrecord 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 verbous log, one needs to read SCSI specs SPC, SBC, and MMC. |
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 xorrecord who feels in charge for your bug report. |
-help |
Print a sparse list of program options to standard error and declare not to be cdrecord. |
Afterwards end emulation without performing any drive operation. |
|
--no_rc |
Only if used as first command line argument this option prevents reading and interpretation of startup files. See section FILES below. |
--grow_overwriteable_iso |
Enable emulation of multi-session writing on
overwriteable media which contain an ISO 9660 filesystem.
This emulation is learned from growisofs -M but
adapted to the usage model of |
stream_recording="on"|"off"|number |
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. |
dvd_obs="default"|"32k"|"64k" |
Linux specific: Set the number of bytes to be transmitted with each write operation to DVD or BD media. Tracks get padded up to the next multiple of this write size. 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. |
write_start_address=value |
Set the block 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. |
stdio_sync="on"|"off"|number |
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". |
Overview of examples: |
Get an overview of drives and their addresses |
Get an overview of drives and their addresses: |
$ xorrecord --devices |
Get info about a particular drive and loaded media: |
$ xorrecord dev=/dev/sr0 -atip -toc --grow_overwriteable_iso |
Prepare CD-RW or DVD-RW for re-use: |
$ xorrecord -v dev=/dev/sr0 blank=as_needed -eject |
Format DVD-RW to avoid need for blanking before re-use: |
$ xorrecord -v dev=/dev/sr0 blank=format_overwrite
-eject |
De-format DVD-RW to make it capable of multi-session again: |
$ xorrecord -v dev=/dev/sr0 blank=deformat |
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 |
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. |
Write ISO 9660 session on-the-fly: |
It is possible to combine the run of xorrisofs and
xorrecord in a pipeline without storing the ISO 9660
image as file on hard disk: |
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. |
Startup files: |
If not --no_rc is given as the first argument
then xorrecord attempts on startup to read and
execute lines from the following files: |
For generic xorriso command mode |
xorriso(1) |
Formatting track sources for xorrecord: |
xorrisofs(1), mkisofs(8), genisoimage(8), afio(1), star(1) |
Other programs which burn sessions to optical media |
growisofs(1), cdrecord(1), wodim(1), cdrskin(1) |
To report bugs, request help, or suggest enhancements for
xorriso, please send electronic mail to the public
list <bug-xorriso@gnu.org>. If more privacy is
desired, mail to <scdbackup@gmx.net>. |
Thomas Schmitt <scdbackup@gmx.net> |
Copyright (c) 2011 - 2012 Thomas Schmitt |
xorriso 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. |