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

FreeBSD Manual Pages

  
 
  

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

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

SYNOPSIS
       xorrecord [ options ] dev=device	[track_source]

DESCRIPTION
       xorrecord writes	preformatted data to CD, DVD, and BD media.

       It  understands some options of program cdrecord	from cdrtools by Joerg
       Schilling.  Its implementation is part of program xorriso which	shares
       no  source  code	 with  cdrtools,  but  rather makes use	of libburn for
       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	ends.

OPTIONS
       Addressing the drive:

       --devices
	      Print the	list of	accessible CD, DVD, or BD drives  to  standard
	      output.	Drives	might  be  inaccessible	 if  the user lacks of
	      permissions to use them or if the	drive is  in  use  by  another
	      program.
	      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.

       dev=drive_address
	      Set the libburn address of the drive to be used.
	      E.g. on GNU/Linux: dev=/dev/sr0
	      E.g. on FreeBSD: dev=/dev/cd0
	      E.g. on NetBSD: dev=/dev/rcd0d
	      E.g. on Solaris: dev=/dev/rdsk/c2t2d0s2
	      See also above "Drive preparation	and addressing".
	      The medium in the	drive should not be mounted or be otherwise in
	      use.
	      This  option  will  only	get  into  effect if a track source, a
	      blank= option, or	a drive	inquiry	option is given. Else it  will
	      lead to a	SORRY event and	normally cause a non-zero exit value.

       Inquiring drive and media:

       -inq   Print  to	 standard  output:  vendor,  model  name, and firmware
	      revision of the drive.

       -checkdrive
	      Print unconditionally that the drive supports burnfree, SAO, and
	      TAO.  Also print the output of option -inq.

       -atip  Print the	output of -checkdrive, the most	capable	profile	of the
	      medium in	the drive, the list of profiles	which are supported by
	      the drive, whether it is erasable	(i.e.  can  be	blanked),  the
	      media manufacturer, and the medium product name.
	      Profiles	are usage models, which	are often tied to a particular
	      media type (e.g. CD-RW), but may	also  apply  to	 a  family  of
	      media. E.g. profile CD-ROM applies to all	CD media which contain
	      data.

       -toc   Print  a table of	content	of the medium in the drive. The	output
	      is not compatible	to cdrecord option -toc, but rather the	one of
	      xorriso command -toc.  It	lists the address, vendor, model name,
	      and firmware revision of the drive.
	      About the	medium it tells	product	name and manufacturer, whether
	      there is already content written,	and if so, whether the	medium
	      is  closed  or  appendable.  Appendable  media  can take another
	      session.	The amount of readable and writable data is told.   If
	      there  are  sessions, then their start block address and size is
	      reported.	 If a session contains an ISO  9660  filesystem,  then
	      its  Volume Id is	reported.  If the medium is writable, then the
	      next writable block address is reported.
	      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.

       -msinfo
	      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=mode
	      Blank  a	CD-RW  or  DVD-RW  to  make it re-usable from scratch.
	      Format a DVD-RW, DVD+RW, DVD-RAM,	BD-R,  or  BD-RE  if  not  yet
	      formatted.
	      This  operation  normally	 makes any recorded data on the	medium
	      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:

	      as_needed
		     Try to make the media ready for writing from scratch.  If
		     it	 needs formatting, then	format it. If it is not	blank,
		     then try to apply blank=fast.  It is a reason to abort if
		     the medium	cannot assume thoroughly writeable state, e.g.
		     if	it is a	non-blank write-once.
		     This  leaves  unformatted	DVD-RW	in  unformatted	 blank
		     state. To format DVD-RW use blank=format_overwrite. Blank
		     unformatted BD-R stay unformatted.
		     (Note:   blank=as_needed  is  not	an  original  cdrecord
		     option.)

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

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

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

	      deformat_quickest
		     Like blank=deformat but blanking DVD-RW  only  minimally.
		     This  is  faster  than  full  blanking  but  yields media
		     incapable	of  writing  tracks  of	 unpredictable	 size.
		     Multi-session will	not be possible	either.
		     (Note:   blank=deformat_quickest	is   not  an  original
		     cdrecord option.)

	      format_overwrite
		     Format a  DVD-RW  to  "Restricted	Overwrite".  The  user
		     should bring some patience.
		     Format  unformatted  DVD+RW, BD-RE	or blank BD-R to their
		     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)

	      help
		     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
	      content.
	      This option cannot be applied to DVD-R DL	 or  to	 DVD-RW	 which
	      were     blanked	  by	mode	"deformat_quickest".	Option
	      --multi_if_possible may automatically recognize and handle  this
	      situation.
	      In order to have all filesystem content accessible, the eventual
	      ISO-9660	filesystem of a	follow-up session needs	to be prepared
	      in a special way by the filesystem formatter  program.  mkisofs,
	      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
	      --grow_overwriteable_iso.

       -dummy Try  to  perform the drive operations without actually affecting
	      the inserted media. There	is no warranty	that  this  will  work
	      with  a  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.

       tsize=size
	      Announce	the  exact size	of the track source. This is necessary
	      with DVD-R DL media and with quickest  blanked  DVD-RW,  if  the
	      size cannot be determined	in advance from	the track source. E.g.
	      if it is standard	input or a named pipe.
	      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.

       -isosize
	      Try to obtain the	track size  from  the  content	of  the	 track
	      source.	This  works only if the	track source bears an ISO 9660
	      filesystem.  Any other track source content will cause the  burn
	      run to abort.
	      If  the track source is not a regular file or block device, then
	      this option will work only if the	 program's  fifo  size	is  at
	      least 64k. See option fs=.

       padsize=size
	      Add  the	given  amount of trailing zeros	to the upcoming	track.
	      This feature can be disabled by size 0. Default  is  300	kB  in
	      order  to	work around a problem with GNU/Linux which often fails
	      to read the last few blocks of a CD track	which was  written  in
	      write  mode  TAO.	 TAO  is  used	by xorrecord if	the track size
	      cannot be	predicted or  if  the  CD  medium  is  not  blank  but
	      appendable.

       -nopad The same as padsize=0.

       -pad   The  same	 as  padsize=15s.  This	was once sufficient with older
	      GNU/Linux	 kernels.  Meanwhile   one   should   at   least   use
	      padsize=128k, if not padsize=300k.

       -data  Explicitly  announce  that the track source shall	be recorded as
	      data track, and not as audio track. This option  has  no	effect
	      with  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.

       fs=size
	      Set the size of the program  fifo	 buffer	 to  the  given	 value
	      rather than the default of 4m.
	      The  fifo	 buffers  a  temporary surplus of track	source data in
	      order to provide the drive with a	steady stream during times  of
	      temporary	lack of	track source supply.
	      Other  than  cdrecord,  xorrecord	 enables drive buffer underrun
	      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.

       speed=value
	      Set the write speed. Default is 0	= maximum speed.  Speed	can be
	      given in media type dependent x-speed numbers or	as  a  desired
	      throughput per second in MMC compliant kB	(= 1000) or MB (= 1000
	      kB). Media x-speed factor	can be set explicitly by appending "c"
	      for CD, "d" for DVD, "b" for BD. "x" is optional.
	      Example speeds:
	       706k = 706kB/s =	4c = 4xCD
	       5540k = 5540kB/s	= 4d = 4xDVD
	      If  there	 is  no	 hint  about the speed unit attached, then the
	      medium in	the drive will decide.	 Default  unit	is  CD,	 1x  =
	      176,400	raw   bytes/second.    With   DVD,   1x	  =  1,385,000
	      bytes/second.  With BD, 1x = 4,495,625 bytes/second.
	      MMC drives usually activate their	own idea of speed and take the
	      speed value given	by the burn program only as a hint  for	 their
	      own decision.

       minbuf=percentage
	      Equivalent to:
	       modesty_on_drive=<percentage>

       -immed Equivalent to:
	       modesty_on_drive=75
	      In  cdrecord,  this  also	 controls  use	of the Immed bit.  But
	      xorriso uses Immed where possible	and appropriate, unless	it  is
	      disabled by option use_immed_bit=off .

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

       Program version and verbosity:

       -version
	      Print to standard	output a line beginning	by
	      "Cdrecord	2.01-Emulation Copyright"
	      and  further  lines  which report	the version of xorriso and its
	      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	cdrecord.
	      Afterwards end emulation without performing any drive operation.

       Options not compatible to cdrecord:

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

       --drive_not_exclusive
	      This option disables the use of device file  locking  mechanisms
	      when  acquiring  the  drive. On GNU/Linux	the locking is done by
	      open(O_EXCL), on FreeBSD by flock(LOCK_EX).
	      Be aware that it can cause problems if you use a drive which  is
	      mounted,	or  opened  by	some  other  process,  or  guarded  by
	      /dev/pktcdvd*.  Make sure	that other users of the	drive  do  not
	      cause drive activities while a xorrecord burn run	is going on.

       drive_scsi_dev_family=sr|scd|sg|default
	      GNU/Linux	specific:
	      By  default,  cdrskin  tries  to	map  Linux  drive addresses to
	      /dev/sr* before they get opened for operating  the  drive.  This
	      coordinates  well	 with  other use cases of optical drives, like
	      mount(8).	But since year 2010 all	/dev/sr* share a  global  lock
	      which allows only	one drive to process an	SCSI command while all
	      others  have  to	wait  for  its	completion.  This yields awful
	      throughput  if  more  than  one  drive  is  writing  or  reading
	      simultaneously.
	      The global lock is not applied to	device files /dev/sg* and also
	      not with the system calls	read(2), write(2). But ioctl(SG_IO) is
	      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*.

       --grow_overwriteable_iso
	      Enable emulation of multi-session	writing	on overwritable	 media
	      which  contain an	ISO 9660 filesystem. This emulation is learned
	      from growisofs -M	but adapted to the usage model of
	      xorrecord	-msinfo
	      xorrisofs	-C -M |	xorrecord -waiti -multi	-
	      for sequential media.
	      --grow_overwriteable_iso	does  not  hamper  the	use  of	  true
	      multi-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.

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

       stream_recording="on"|"off"|number
	      Mode  "on" requests that compliance to the desired speed setting
	      is preferred over	management of write errors. With  DVD-RAM  and
	      BD  this	can  bring  effective  write speed near	to the nominal
	      write speed  of  the  media.   But  it  will  also  disable  the
	      automatic	 use  of  replacement blocks if	write errors occur. It
	      might as well be disliked	or ignored by the drive.
	      If a number is given, then error management  stays  enabled  for
	      all  byte	 addresses  below that number. Any number below	16s is
	      the same as "off".

       dvd_obs="default"|"32k"|"64k"
	      Set the number of	 bytes	to  be	transmitted  with  each	 write
	      operation	 to DVD	or BD media. With most write types, tracks get
	      padded up	to the next multiple of	this write  size  (see	option
	      --obs_pad).  A  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.

       --obs_pad
	      Pad the data of the last	write  operation  of  a	 DVD-R[W]  DAO
	      session,	or  BD-R session, or stdio: pseudo-drive session up to
	      the full size of an  output  chunk.   This  padding  has	to  be
	      applied automatically to the other DVD and BD media types, where
	      it  causes  e.g.	ISO  images to have trailing unclaimed blocks.
	      Whether it is applied automatically to BD-R  depends  on	option
	      --bdr_obs_exempt.
	      Use  this	 option	if there is the	suspicion that DVD-R[W]	DAO or
	      BD-R sessions abort with your kernel and/or DVD drive, if	 their
	      size is not a multiple of	16 blocks.
	      This option may also get enabled at compile time of libburn.

       --bdr_obs_exempt
	      Exempt  BD-R  media from automatic unconditional transaction end
	      padding,	provided  that	this  padding  is  not	requested   by
	      --obs_pad	and that no stream_recording is	requested.
	      This  is	a  new feature introduced with version 1.5.6. It might
	      become default in	later versions.

       modesty_on_drive=parameter[:parameters]
	      Control whether the drive	buffer	shall  be  kept	 from  getting
	      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:
		modesty_on_drive=off:min_percent=90:max_percent=95:
		timeout_sec=120:min_usec=5000:max_usec=25000

       use_immed_bit="on"|"off"|"default"
	      Control  whether	several	 long  lasting	SCSI commands shall be
	      executed with the	Immed bit, which makes the commands end	 early
	      while  the  drive	 operation  is	still  going  on. xorriso then
	      inquires progress	indication until the drive reports to be ready
	      again.  If  this	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.

       write_start_address=value
	      Set the block address  on	 overwritable  media  where  to	 start
	      writing  the  track.  With DVD+RW, DVD-RAM or BD-RE, byte_offset
	      must be aligned to 2 kiB blocks, but better is 32	kiB on DVD and
	      64 kiB on	 BD.   With  formatted	DVD-RW	32  kiB	 alignment  is
	      mandatory.
	      Other media are not suitable for this option.

       stdio_sync="on"|"off"|number
	      Set  the number of bytes after which to force output to emulated
	      stdio: drives.  This forcing keeps the memory from being clogged
	      with lots	of pending data	for slow devices. Default "on" is  the
	      same as "16m".  Forced output can	be disabled by "off".

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

   Get an overview of drives and their addresses:
	 $ xorrecord --devices

   Get info about a particular drive and loaded	media:
	 $ xorrecord dev=/dev/sr0 -atip	-toc --grow_overwriteable_iso

   Prepare CD-RW or DVD-RW for re-use:
	 $ xorrecord -v	dev=/dev/sr0 blank=as_needed -eject

   Format DVD-RW to avoid need for blanking before re-use:
	 $ xorrecord -v	dev=/dev/sr0 blank=format_overwrite -eject
       This command may	also be	used to	format BD-R media before first use, in
       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 -eject.
       Get  the	 -msinfo  numbers  (and	 properly  reload the tray if it has a
       motor) by:
	 $ m=$(xorrecord dev=/dev/sr0 -msinfo)
       Offer a victim to any problem caused by	obtrusive  demons  after  tray
       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.

FILES
   Startup files:
       If not --no_rc is given as the first argument then  xorrecord  attempts
       on startup to read and execute lines from the following files:
	  /etc/default/xorriso
	  /etc/opt/xorriso/rc
	  /etc/xorriso/xorriso.conf
	  $HOME/.xorrisorc
       The  files  are	read  in  the sequence given here, but none of them is
       required	to exist. The lines are	not interpreted	as  xorrecord  options
       but as generic xorriso commands.	See man	xorriso.

SEE ALSO
       For generic xorriso command mode
	      xorriso(1)

       Formatting track	sources	for xorrecord:
	      xorrisofs(1), mkisofs(8),	genisoimage(8),	afio(1), star(1)

       Other programs which burn sessions to optical media
	      growisofs(1), cdrecord(1), wodim(1), cdrskin(1)

BUGS
       To  report  bugs,  request  help,  or suggest enhancements for xorriso,
       please send electronic mail to the public  list	<bug-xorriso@gnu.org>.
       If more privacy is desired, mail	to <scdbackup@gmx.net>.
       Please describe what you	expect xorriso to do, the program arguments or
       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.

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

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

CREDITS
       xorriso	is  in	part  based  on	 work  by  Vreixo Formoso who provides
       libisofs	together with Mario Danic who also leads the  libburnia	 team.
       Thanks to Andy Polyakov who invented emulated growing, to Derek Foreman
       and Ben Jansens who once	founded	libburn.
       Compliments  towards  Joerg  Schilling whose cdrtools served me for ten
       years.

			  Version 1.5.6, Jun 07, 2023		  XORRECORD(1)

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

home | help