Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XORRECORD(1)		     General Commands Manual		    XORRECORD(1)

NAME
     xorrecord -  Emulation of CD/DVD/BD program cdrecord by program xorriso

SYNOPSIS
     xorrecord [ options ] dev=device [track_source]

DESCRIPTION
     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 communicat-
     ing with the drive.
     Another, more complete cdrecord emulator is program cdrskin which uses  the
     same burn functions as xorrecord, but is able to burn audio CDs and to han-
     dle CD-TEXT.

   MMC, Session, Track, Media types:
     MMC  is a standard out of the SCSI family which defines the interaction be-
     tween 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.
     A Session is a data region on an optical disc which usually gets written in
     a single sweep. It contains at least one Track which is a contiguous string
     of readable blocks.  xorrecord 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.
     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 cdrskin.
     MMC  describes  several recordable media types which roughly form two fami-
     lies.
     Sequentially recordable media 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 ses-
     sion if there is still unwritten space and  if  the  previous  session  was
     written  with option -multi. CD-RW and DVD-RW can be blanked in order to be
     re-usable from scratch.
     Overwritable media are DVD-RAM, DVD+RW, formatted DVD-RW, BD-RE.  They  of-
     fer  a single session with a single track for random access writing.  There
     is no need to blank overwritable media before re-use.
     DVD-RW media are sold in sequentially recordable state but can be formatted
     once  to  become  overwritable.  See  options  blank=format_overwrite   and
     blank=deformat.
     If  ISO 9660 filesystems are to be stored on overwritable media, then it is
     possible to emulate multiple sessions, by	using  option  --grow_overwrite-
     able_iso.	In  this  case,  the need for blanking before re-use is emulated
     too.

   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.
     On GNU/Linux, FreeBSD, and NetBSD, the user needs rw-permission for the de-
     vice file.  On Solaris, the user needs r-permission and privilege	"sys_de-
     vices", which is usually gained by running xorrecord via command pfexec.
     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.
     xorrecord 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.
     It is possible to let xorrecord 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.
     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.

   Relation to program xorriso:
     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".
     This  command mode can be left by argument "--" which leads to generic xor-
     riso command mode. See man xorriso for its description.  Other than in xor-
     riso 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.

OPTIONS
     Addressing the drive:

     --devices
	    Print the list of accessible CD, DVD, or BD drives to standard  out-
	    put.   Drives might be inaccessible if the user lacks of permissions
	    to use them or if the drive is in use by another program.
	    Each accessible drive is shown by a line like:
	      0  -dev '/dev/sr0' rwrw-- :  'TSSTcorp' 'CDDVDW SH-S203B'
	    The libburn address of this drive is '/dev/sr0'. 'TSSTcorp'  is  the
	    name  of the vendor (in this case: Toshiba Samsung Storage Technolo-
	    gies Corporation), 'CDDVDW SH-S203B' is  the  model  name  (in  this
	    case: a DVD burner).
	    Afterwards end emulation without performing any further drive opera-
	    tion.

     dev=drive_address
	    Set the libburn address of the drive to be used.
	    E.g. on GNU/Linux: dev=/dev/sr0
	    E.g. on FreeBSD: dev=/dev/cd0
	    E.g. on NetBSD: dev=/dev/rcd0d
	    E.g. on Solaris: dev=/dev/rdsk/c2t2d0s2
	    See also above "Drive preparation and addressing".
	    The  medium  in  the  drive should not be mounted or be otherwise in
	    use.
	    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.

     Inquiring drive and media:

     -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 manu-
	    facturer, and the medium product name.
	    Profiles  are usage models, which are often tied to a particular me-
	    dia 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 xor-
	    riso 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 ses-
	    sions, then their start block address and size is  reported.   If  a
	    session  contains  an ISO 9660 filesystem, then its Volume Id is re-
	    ported.  If the medium is writable, then the next writable block ad-
	    dress is reported.
	    If not option --grow_overwriteable_iso is given or no ISO 9660  file
	    system  is	present  on  the medium, then overwritable media are re-
	    ported 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,  al-
	    though all their writable blocks normally are readable, too.

     -msinfo
	    Print the argument text for option -C of programs mkisofs, genisoim-
	    age, or xorrisofs. It consists of two numbers separated by a comma.
	    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.
	    The second number tells the next writable address,	where  xorrecord
	    will begin to write the next session.
	    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.

     Settings for the burn run:

     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.
     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 tsize= or by option -isosize.
     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 trail-
     ing letters cause multiplication of the given number by a scaling factor:
     "k"  or "K" = 1024 , "m" or "M" = 1024k , "g" or "G" = 1024m , "s" or "S" =
     2048
     E.g. tsize=234567s means a size of 234567 * 2048 = 480393216 bytes.

     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.
	    This operation normally makes any recorded data on	the  medium  un-
	    readable.	It  is	combinable  with burning in the same run of xor-
	    record, or it may be performed without a track source,  leaving  the
	    medium empty.
	    The mode given with blank= selects the particular behavior:

	    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.
		   This leaves unformatted DVD-RW in unformatted blank state. To
		   format  DVD-RW  use blank=format_overwrite. Blank unformatted
		   BD-R stay unformatted.
		   (Note: blank=as_needed is not an original cdrecord option.)

	    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 over-
		   writable DVD-RW.  This will destroy their formatting and make
		   them sequentially recordable.
		   (Note: blank=deformat is not an original cdrecord options)

	    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 unpredictable size.  Multi-session will not
		   be possible either.
		   (Note: blank=deformat_quickest is not  an  original	cdrecord
		   option.)

	    format_overwrite
		   Format  a  DVD-RW  to "Restricted Overwrite". The user should
		   bring some patience.
		   Format unformatted DVD+RW, BD-RE or blank BD-R to  their  de-
		   fault  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.
		   BD-R media may be written in unformatted  state.  This  keeps
		   disabled the replacement of bad blocks and enables full nomi-
		   nal	write speed. Once BD-R media are written, they cannot be
		   formatted any more.
		   For re-formatting already formatted media or  for  formatting
		   with non-default size, use program xorriso with command -for-
		   mat.
		   (Note: blank=format_overwrite is not an original cdrecord op-
		   tions)

	    help
		   Print  a short overview of blank modes to standard error out-
		   put.
		   Afterwards end emulation without performing any drive  opera-
		   tion.

     -multi
	    This  option  keeps CD, unformatted DVD-R[W], DVD+R, or BD-R append-
	    able 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 or to  DVD-RW  which  were
	    blanked  by mode "deformat_quickest". Option --multi_if_possible may
	    automatically recognize and handle this situation.
	    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, genisoim-
	    age, and xorrisofs expect particular info about the situation  which
	    can be retrieved by xorrecord option -msinfo.
	    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 deter-
	    mined from the payload.  Currently only ISO-9660 filesystems can  be
	    used that way. See option --grow_overwriteable_iso.

     -dummy
	    Try  to  perform the drive operations without actually affecting the
	    inserted media. There is no warranty that this will work with a par-
	    ticular combination of drive and media. Blanking is prevented  reli-
	    ably, 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 writ-
	    ing its output into xorrisofs. Example:
	    xorrisofs ... -C 0,12800 -M /dev/sr0 ... | \
	    xorrecord dev=/dev/sr0 ... -waiti -
	    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 xorrecord. 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.

     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  stan-
	    dard input or a named pipe.
	    If	the track source does not deliver the predicted amount of bytes,
	    the remainder of the track is padded with zeros. This is not consid-
	    ered 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.

     -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.
	    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=.

     padsize=size
	    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 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  Explicitly	announce that the track source shall be recorded as data
	    track, and not as audio track. This option has no effect  with  xor-
	    record, because there is no support for other track formats anyway.

     -tao   Explicitly	demand	that write type TAO shall be used for CD, or In-
	    cremental 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.

     -sao   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 appropri-
	    ate to the situation.

     -dao   Alias of -sao.

     fs=size
	    Set  the  size  of the program fifo buffer to the given value rather
	    than the default of 4m.
	    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.
	    Other than cdrecord, xorrecord enables drive buffer underrun protec-
	    tion 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  cdrskin  for CD burning.  DVD and BD drives tolerate buffer
	    underrun without problems.
	    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.

     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 explicitly by appending "c" for
	    CD, "d" for DVD, "b" for BD. "x" is optional.
	    Example speeds:
	     706k = 706kB/s = 4c = 4xCD
	     5540k = 5540kB/s = 4d = 4xDVD
	    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.
	    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.

     minbuf=percentage
	    Equivalent to:
	     modesty_on_drive=<percentage>

     -immed
	    Equivalent to:
	     modesty_on_drive=75
	    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 .

     -eject
	    Eject the drive tray after alll other work is done.

     Program version and verbosity:

     -version
	    Print to standard output a line beginning by
	    "Cdrecord 2.01-Emulation Copyright"
	    and further lines which report the version of xorriso and  its  sup-
	    porting  libraries. They also state the license under which the pro-
	    gram is provided, and disclaim any warranty, to the extent permitted
	    by law.
	    Afterwards end emulation without performing any drive operation.

     -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 or by -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  in-
	    teracts  with  the drive.  To understand this extremely verbose 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,  un-
	    less  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.

     Options not compatible to cdrecord:

     --no_rc
	    Only  if  used  as	first command line argument this option prevents
	    reading and interpretation of startup files. See section  FILES  be-
	    low.

     --drive_not_exclusive
	    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).
	    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/pk-
	    tcdvd*.   Make sure that other users of the drive do not cause drive
	    activities while a xorrecord burn run is going on.

     drive_scsi_dev_family=sr|scd|sg|default
	    GNU/Linux specific:
	    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.
	    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  af-
	    fected,  which  is	needed	to perform the SCSI commands for optical
	    burning.
	    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*.

     --grow_overwriteable_iso
	    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
	    xorrecord -msinfo
	    xorrisofs -C -M | xorrecord -waiti -multi -
	    for sequential media.
	    --grow_overwriteable_iso  does not hamper the use of true multi-ses-
	    sion media.  I.e. it is possible to use the same  xorrecord  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.
	    With overwritable media and no option blank=fast|all present it  ex-
	    pands  an  eventual ISO 9660 filesystem on media. It is assumed that
	    this image's inner size description points to the end of  the  valu-
	    able  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.

     --multi_if_possible
	    Apply option -multi if the medium  is  suitable.  Not  suitable  are
	    DVD-R  DL  and DVD-RW, which were blanked with mode "deformat_quick-
	    est".
	    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.

     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 replace-
	    ment blocks if write errors occur. It might as well be  disliked  or
	    ignored by the drive.
	    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".

     dvd_obs="default"|"32k"|"64k"
	    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 num-
	    ber of 64 KB may improve throughput with bus systems which show  la-
	    tency   problems.	 The  default  depends	on  media  type,  option
	    stream_recording=, and on compile time options.

     --obs_pad
	    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.
	    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.
	    This option may also get enabled at compile time of libburn.

     --bdr_obs_exempt
	    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.
	    This is a new feature introduced with version 1.5.6. It might become
	    default in later versions.

     modesty_on_drive=parameter[:parameters]
	    Control whether the drive buffer shall be  kept  from  getting  com-
	    pletely filled.  Parameter "on" (or "1") keeps the program from try-
	    ing 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.
	    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.
	    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.
	    Parameters "off" or "0" disable this feature.
	    The  threshold for beginning to wait is given by parameter "max_per-
	    cent=".  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=".
	    E.g.: modesty_on_drive=75
	    The optimal values depend on the buffer behavior of the drive.
	    Parameter "timeout_sec=" defines after which  time	of  unsuccessful
	    waiting the modesty shall be disabled because it does not work.
	    Parameter  "min_usec="  defines  the  initial sleeping period in mi-
	    croseconds.  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.
	    Parameters, which are not mentioned with a modesty_on_drive= option,
	    stay unchanged.  Default is:
	      modesty_on_drive=off:min_percent=90:max_percent=95:
	      timeout_sec=120:min_usec=5000:max_usec=25000

     use_immed_bit="on"|"off"|"default"
	    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  fea-
	    ture  is  turned  off,  then  blanking  and  formatting will show no
	    progress indication.
	    It may depend on the operating system whether -use_immed_bit is  set
	    to "off" by default.

     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.
	    Other media are not suitable for this option.

     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".

EXAMPLES
   Overview of examples:
     Get an overview of drives and their addresses
     Get info about a particular drive or loaded media
     Prepare CD-RW or DVD-RW for re-use, BD-R for bad block handling
     Format DVD-RW to avoid need for blanking before re-use
     De-format DVD-RW to make it capable of multi-session again
     Write a single ISO 9660 filesystem image
     Write multiple ISO 9660 sessions
     Write ISO 9660 session on-the-fly
     Write compressed afio archive on-the-fly

   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
     This command may also be used to format BD-R media before first use, in or-
     der 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.

   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.
     The  first session is written like in the previous example, except that op-
     tion -multi is used. It will contain  the	files  of  hard  disk  directory
     ./tree1 under the ISO 9660 directory /dir1:
       $ xorrisofs -o image_1.iso -J -graft-points /dir1=./tree1
       $ xorrecord -v dev=/dev/sr0 speed=12 fs=8m \
		   -multi --grow_overwriteable_iso \
		   blank=as_needed -eject padsize=300k image_1.iso
     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.
     Many systems do not take notice of xorrecord's write activities. It is nec-
     essary  to  force their attention by ejecting and reloading the drive tray.
     Therefore above run uses option -eject.
     Get the -msinfo numbers (and properly reload the tray if it  has  a  motor)
     by:
       $ m=$(xorrecord dev=/dev/sr0 -msinfo)
     Offer  a  victim to any problem caused by obtrusive demons after tray load-
     ing:
       $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
     Use the numbers with xorrisofs to add ./tree2 to the image as /dir2:
       $ xorrisofs -M /dev/sr0 -C $m -o image_2.iso \
		   -J -graft-points /dir2=./tree2
     Now burn the new session onto the same medium. This time without blanking:
       $ xorrecord -v dev=/dev/sr0 speed=12 fs=8m \
		   -multi --grow_overwriteable_iso \
		   -eject padsize=300k image_2.iso
     Operating systems which mount this medium will read the superblock  of  the
     second session and show both directories /dir1 and /dir2.

   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.
     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.
     Again, xorriso has the patience and dd is a dispensable victim for demons.
       $ m=$(xorrecord dev=/dev/sr0 -msinfo)
       $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
       $ xorrisofs -M /dev/sr0 -C $m  \
		   -J -graft-points /dir2=./tree2 \
	 | xorrecord -v dev=/dev/sr0 speed=12 fs=8m \
		     -waiti -multi --grow_overwriteable_iso \
		     -eject padsize=300k -
     This is also the main use case of program xorriso	itself,  where	the  run
     would need no system workarounds and simply look like:
       $ xorriso -dev /dev/sr0 -joliet on -speed 12 -fs 8m \
		 -map ./tree2 /dir2 -commit_eject all

   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.
       $ find . | afio -oZ - | \
	 xorrecord -v dev=/dev/sr0 speed=12 fs=64m \
		   -multi padsize=300k -
     afio  archives  do not contain references to absolute data block addresses.
     So they need no special precautions for multi-session. One may get the ses-
     sion 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:
       $ dd if=/dev/sr0 bs=2048 skip=64046 | afio -tvZ -
     afio will know when the end of the archive is reached.

FILES
   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:
	/etc/default/xorriso
	/etc/opt/xorriso/rc
	/etc/xorriso/xorriso.conf
	$HOME/.xorrisorc
     The files are read in the sequence given here, but none of them is required
     to exist. The lines are not interpreted as xorrecord options but as generic
     xorriso commands. See man xorriso.

SEE ALSO
     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)

BUGS
     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>.
     Please describe what you expect xorriso to do, the program arguments or di-
     alog commands by which you tried to achieve it, the  messages  of	xorriso,
     and the undesirable outcome of your program run.
     Expect to get asked more questions before solutions can be proposed.

AUTHOR
     Thomas Schmitt <scdbackup@gmx.net>
     for libburnia-project.org

COPYRIGHT
     Copyright (c) 2011 - 2023 Thomas Schmitt
     Permission is granted to distribute this text freely. It shall only be mod-
     ified  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.

CREDITS
     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.
     Compliments towards Joerg Schilling whose cdrtools served me for ten years.

			   Version 1.5.6, Jun 07, 2023		    XORRECORD(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=xorrecord&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help