Provided by: xorriso_1.5.4-2ubuntu3_amd64 bug


       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.
       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 handle CD-TEXT.

   MMC, Session, Track, Media types:
       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.
       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 families.
       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 session 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 offer 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_overwriteable_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 device  file.   On
       Solaris,  the user needs r-permission and privilege "sys_devices", 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  xorriso  command
       mode.  See  man  xorriso  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


       Addressing the drive:

              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.
              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 Technologies Corporation), 'CDDVDW
              SH-S203B' is the model name (in this case: a DVD burner).
              Afterwards end emulation without performing any further drive operation.

              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.

              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
              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.
              If  not  option  --grow_overwriteable_iso  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.

              Print  the  argument  text  for  option  -C  of  programs  mkisofs, genisoimage, 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  trailing  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  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  unreadable.   It  is
              combinable  with  burning  in  the  same  run  of xorrecord, or it may be performed
              without a track source, leaving the medium empty.
              The mode given with blank= selects the particular behavior:

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

                     Blank an entire CD-RW or an unformatted DVD-RW.

                     Minimally blank an entire CD-RW or blank an unformatted DVD-RW.

                     Like blank=all but with the additional ability to blank overwritable DVD-RW.
                     This will destroy their formatting and make them sequentially recordable.
                     (Note: blank=deformat is not an original cdrecord options)

                     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  a  DVD-RW  to  "Restricted  Overwrite".  The  user should bring some
                     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.
                     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.
                     For re-formatting already formatted media or for formatting with non-default
                     size, use program xorriso with command -format.
                     (Note: blank=format_overwrite is not an original cdrecord options)

                     Print a short overview of blank modes to standard error output.
                     Afterwards end emulation without performing any drive operation.

       -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
              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, genisoimage, 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  determined  from  the  payload.
              Currently   only   ISO-9660   filesystems   can   be  used  that  way.  See  option

       -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

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

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

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

              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 xorrecord, because there is no
              support for other track formats anyway.

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

       -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 appropriate to the situation.

       -dao   Alias of -sao.

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

              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.

              Equivalent to:

       -immed Equivalent to:
              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:

              Print to standard output a line beginning by
              "Cdrecord 2.01-Emulation Copyright"
              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.
              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 interacts 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, 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
              Afterwards end emulation without performing any drive operation.

       Options not compatible to cdrecord:

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

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

              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 affected, 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*.

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

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

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

              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.

              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.
              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_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=".
              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 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.
              Parameters,   which  are  not  mentioned  with  a  modesty_on_drive=  option,  stay
              unchanged.  Default is:

              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.
              It may depend on the operating system whether -use_immed_bit is  set  to  "off"  by

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

              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


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

   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  option  -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 necessary to force
       their attention by ejecting and reloading the drive tray.  Therefore above run uses option
       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 loading:
         $ 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 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:
         $ dd if=/dev/sr0 bs=2048 skip=64046 | afio -tvZ -
       afio will know when the end of the archive is reached.


   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:
       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


       For generic xorriso command mode

       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  <>.   If  more privacy is desired, mail to
       Please describe what you expect xorriso to do, the program arguments or dialog 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.


       Thomas Schmitt <>


       Copyright (c) 2011 - 2021 Thomas Schmitt
       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


       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.4, Jan 30, 2021                       XORRECORD(1)