Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, February 10, 2021

xorrecord (1)


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


xorrecord [ options ] dev=device [track_source]


XORRECORD(1)                General Commands Manual               XORRECORD(1)

       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
       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
       These permissions or privileges are needed already for listing a drive.
       So  it  might  be  necessary  to  get  the overview as superuser or via
       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
       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
       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
       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 ends.

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

              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
              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 name.
              Profiles are usage models, which are often tied to a  particular
              media  type  (e.g.  CD-RW),  but  may  also apply to a family of
              media. E.g. profile CD-ROM applies to all CD media which contain

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

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

                     Minimally blank an entire CD-RW or blank  an  unformatted

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

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

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

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

       -waiti Wait until input data is available at stdin  or  EOF  occurs  at
              stdin.  Only then begin to access any drives.
              One should use this if xorrisofs is working at the end of a pipe
              where the feeder process reads from the drive before  it  starts
              writing its output into xorrisofs. Example:
              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 value.

              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

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

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

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

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

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

       See attributes(7) for descriptions of the following attributes:

       |Availability   | media/xorriso    |
       |Stability      | Uncommitted      |
       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  <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
       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 <scdbackup@gmx.net>
       for libburnia-project.org

       Copyright (c) 2011 - 2017 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 license.

       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

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source                was                downloaded                from

       Further information about this software can be found on the open source
       community website at https://www.gnu.org/software/xorriso.

                                                   Version 1.4.8, Sep 12, 2017