Provided by: xorriso_1.5.0-1build1_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 upcomming 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  overwriteable
                     DVD-RW.   This  will  destroy  their  formatting  and make them sequentially
                     (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 unpredicatable
                     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 overwriteable 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 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  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 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
              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.

              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 overwriteable 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 overwriteable 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.   Overwriteable  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.
       It is advised to load the tray manually or via  dd  by  the  CD-ROM  driver,  rather  than
       letting  xorrecord  do this by its own SCSI driver. Many system CD-ROM drivers do not take
       notice of xorrecord's activities.
         $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
       Now get the -msinfo numbers:
         $ m=$(xorrecord dev=/dev/sr0 -msinfo)
       and use them 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:
         $ 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 this run would 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 - 2018 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.0, Sep 15, 2018                       XORRECORD(1)