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

FreeBSD Manual Pages

  
 
  

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

NAME
       xorrisofs -  Emulation of ISO 9660 program mkisofs by program xorriso

SYNOPSIS
       xorrisofs [ options ] [-o filename ] pathspec [pathspecs	...]

DESCRIPTION
       xorrisofs  produces Rock	Ridge enhanced ISO 9660	filesystems and	add-on
       sessions	 to  such  filesystems.	 Optionally  it	 can  produce	Joliet
       directory trees too.

       xorrisofs understands options of	program	mkisofs	from cdrtools by Joerg
       Schilling.   Its	implementation is part of program xorriso which	shares
       no source code with cdrtools.

   ISO 9660, Rock Ridge, Joliet, HFS+:
       ISO 9660	(aka ECMA-119) is a read-only filesystem that is  mainly  used
       for  optical  media  CD,	 DVD, BD, but may also reside on other storage
       devices like disk files,	USB sticks or disk partitions.	It  is	widely
       readable	 by  many operating systems and	by boot	facilities of personal
       computers.
       ISO 9660	describes  directories	and  data  files  by  very  restricted
       filenames  with	no  distinction	 of  upper  case  and lower case.  Its
       metadata	do not comply to fundamental POSIX specifications.
       Rock Ridge is the name of a set of additional information which enhance
       an ISO 9660 filesystem so that  it  can	represent  a  POSIX  compliant
       filesystem  with	 ownership,  access  permissions,  symbolic links, and
       other attributes.  Rock Ridge allows filenames of up to 255  bytes  and
       paths of	up to 1024 bytes.
       xorrisofs  produces  Rock  Ridge	information by default.	It is strongly
       discouraged to disable this feature.
       Joliet is the name of  an  additional  directory	 tree  which  provides
       filenames  up  to  64  characters  encoded as UTF-16.  A	Joliet tree is
       mainly interesting for reading the ISO image by	operating  systems  of
       Microsoft  Corporation.	 Production  of	 this  directory  tree	may be
       enabled by option -J.
       ISO 9660:1999 is	 the  name  of	an  additional	directory  tree	 which
       provides	 longer	 filenames.  It	allows single file names to have up to
       207 characters.	It might be of use with	 some  older  computer	system
       boot  facilities	 which	read  neither  Rock  Ridge nor Joliet but need
       longer filenames	nevertheless.  Production of this directory  tree  may
       be enabled by option -iso-level 4.
       HFS+ is the name	of a filesystem	which is normally used for writing and
       reading	on  hard  disks	and similar devices. It	is possible to embed a
       HFS+ partition into the emerging	ISO 9660 image and to mark it by Apple
       Partition Map entries. This interferes with  options  which  copy  data
       into  the first 32 KiB of the ISO image,	like -G	or -isohybrid-mbr. See
       option -hfsplus.
       The main	purpose	for having an embedded HFS+ partition  is  booting  of
       certain models of Apple computers.

   Inserting files into	the ISO	image:
       xorrisofs deals with two	kinds of file addresses:
       disk_path is a path to an object	in the local filesystem	tree.
       iso_rr_path  is	the  Rock  Ridge  address  of a	file object in the ISO
       image.  If no Rock Ridge	information shall be  stored  in  an  emerging
       ISO, then the names will	get mapped to ISO 9660 names of	limited	length
       and character set.

       A program argument is handled as	a pathspec, if it is not recognized as
       original	 mkisofs  option  or  additional xorrisofs option.  A pathspec
       depicts an input	file object by a disk_path.  If	 option	 -graft-points
       is  not	present,  then	the  behavior  depends	on  the	 file  type of
       disk_path. Directories get merged  with	the  /-directory  of  the  ISO
       image. Files of other types get copied into the /-directory.
       If  -graft-points is present then each pathspec gets split at the first
       occurrence of the =-character.  The part	 before	 the  =	 is  taken  as
       target,	i.e. the iso_rr_path for the file object in the	ISO image. The
       part after the first = is taken as source, i.e. the  disk_path  of  the
       input object.
       It  is  possible	 to  make  =-characters	 part  of  the	iso_rr_path by
       preceding  them	with  a	 \-character.  The  same  must	be  done   for
       \-characters which shall	be part	of the iso_rr_path.

       If the source part of the pathspec leads	to a directory,	then all files
       underneath  this	 directory  get	 inserted  into	the image, too.	 It is
       possible	to exclude particular files from being	inserted  by  help  of
       option -m.
       In  case	 that  target  already	exists,	 the  following	 rules	apply:
       Directories and other files  may	 overwrite  existing  non-directories.
       Directories  get	merged with existing directories.  Non-directories may
       not overwrite existing directories.

   Relation to program xorriso:
       xorrisofs is actually a command mode of	program	 xorriso,  which  gets
       entered	either	by  xorriso  command  "-as mkisofs" or by starting the
       program by one of the names "xorrisofs",	"mkisofs",  "genisoimage",  or
       "genisofs".
       This  command  mode can be left by argument "--"	which leads to generic
       xorriso command mode. See man xorriso for its description.

       xorriso performs	image reading and writing by help of libburn, which is
       mainly intended for optical drives, but also operates on	all POSIX file
       types except directories.
       The program messages call any image file	a "drive".  File  types	 which
       are  not	 supported  for	 reading are reported as "blank". The reported
       free media space	may be quite fictional.
       Nevertheless xorrisofs does not operate directly	on optical drives, but
       rather forces libburn to	regard them as general device files.   So  for
       writing	of  sequential optical media (CD, DVD-R, DVD+R,	BD-R) one will
       have to use a burn program. E.g the cdrecord emulation of xorriso.  See
       EXAMPLES.

OPTIONS
       Image loading:

       The following options control loading of	an existing ISO	image for  the
       purpose	of  preparing  a suitable add-on session.  If they are missing
       then a new image	is composed from scratch.

       -M disk_path
	      Set the path from	which to load the existing ISO image directory
	      tree on which to base the	 upcoming  directory  tree  as	add-on
	      session.	 The  path  must lead to a random-access readable file
	      object.  On GNU/Linux: regular data files	or block device	files.
	      A	  special   kind   of	pseudo	 disk_path   has   the	  form
	      "/dev/fd/"number.	  It depicts the open file descriptor with the
	      given number, regardless whether the operating  system  supports
	      this feature by file nodes in /dev/fd or not.  E.g. /dev/fd/3 is
	      file  descriptor	3  which  was opened by	the program that later
	      started xorriso.

       -prev-session disk_path
	      Alias of -M.

       -dev disk_path
	      Alias of -M.

       -C last_session_start,next_writeable_address
	      Set the 2	KiB block address  last_session_start  from  where  to
	      read the ISO image out of	the file given by option -M.
	      Separated	 by  a	comma, set the next_writeable_address to which
	      the add-on session will finally be written. Decisive is actually
	      the block	address	which the intended readers will	have to	use as
	      superblock address on the	intended medium.
	      Both values can be inquired from optical media by	help  of  burn
	      programs	and cdrecord option -msinfo. xorriso itself can	obtain
	      it in its	cdrecord emulation.
		values=$(xorriso -as cdrecord dev=/dev/... -msinfo)
		echo $values
	      Option -C	may be used without option -M to create	an  ISO	 image
	      from scratch and prepare it for being finally written to a block
	      address  other than 0. Parameter last_session_start must then be
	      set to 0.

       -cdrecord-params	last_session_start,next_writeable_address
	      Alias of -C.

       Settings	for file insertion:

       -path-list disk_path
	      Read  pathspecs  line-by-line  from  disk_file  and  insert  the
	      depicted	file  objects  into the	ISO image. If disk_path	is "-"
	      then read	the pathspecs from standard input.

       --quoted_path_list disk_path
	      Like option -path-list but  reading  quoted  words  rather  than
	      plain lines.  Whitespace outside of quotes will be discarded. On
	      the  other  hand	it  is	possible  to represent pathspecs which
	      contain newline characters.
	      The double quotation mark	" and the single quotation mark	'  can
	      be  used	to  enclose  whitespace	and make it part of pathspecs.
	      Each mark	type can enclose  the  marks  of  the  other  type.  A
	      trailing	backslash  \  outside  quotations or an	open quotation
	      cause the	next input line	to be appended.

       -f
	      Resolve symbolic links on	 disk  rather  than  storing  them  as
	      symbolic links in	the ISO	image.

       -follow-links
	      Alias of -f.

       -graft-points
	      Enable  interpretation of	input file pathspecs as	combination of
	      iso_rr_path and disk_path, separated by a	=-character.

       -m disk_pattern
	      Exclude files from  being	 inserted  into	 the  image.  Silently
	      ignored are those	files of which the disk_path matches the given
	      shell parser pattern.  If	no /-character is part of the pattern,
	      then it gets matched against the leaf name of the	disk file.
	      It is possible to	give more than one -m option.

       -exclude
	      Alias of -m.

       -x
	      Alias of -m.

       -old-exclude
	      Alias of -m.

       -exclude-list disk_path
	      Perform  -m  using  each	line out of file disk_path as argument
	      disk_pattern.

       -z
	      Enable recognition and proper processing	of  zisofs  compressed
	      files  as	 produced  by  program	mkzftree. These	files will get
	      equipped with the	necessary meta data so	that  a	 Linux	kernel
	      will  recognize  them  and deliver their content in uncompressed
	      form.

       -transparent-compression
	      Alias of -z.

       --zisofs-version-2
	      Enable the recognition and  proper  processing  of  experimental
	      zisofs version 2 compressed files.  The Linux kernel (as of 5.9)
	      does not yet know	this format and	will complain like
		isofs: Unknown ZF compression algorithm: PZ
	      This complaint can be prevented by option	--zisofs2-susp-z2 .
	      The  files  will	be  shown  by  unaware	kernels	 as  they were
	      submitted	to xorriso, i.e. with zisofs2  header,	block  pointer
	      list, and	compressed data.
	      --zisofs-version-2 also enables -z.

       --zisofs2-susp-z2
	      Enable  the production of	SUSP entries "Z2" instead of "ZF" with
	      zisofs2 compressed files.	Unaware	Linux kernels silently	ignore
	      "Z2" entries.

       --zisofs2-susp-zf
	      Enable  the production of	SUSP entries "ZF" instead of "Z2" with
	      zisofs2 compressed files.	Unaware	Linux kernels  complain	 about
	      zisofs2  "ZF"  by	 "Unknown  ZF  compression algorithm" and thus
	      leave a mark in the system log.

       -root iso_rr_path
	      Insert  all  files  under	 the  given  iso_rr_path.  If	option
	      -graft-points  is	 given,	 then iso_rr_path is prepended to each
	      target part of a pathspec.
	      The default for -root is "/".

       -old-root iso_rr_path
	      Enable incremental insertion of files  into  the	loaded	image.
	      The effective target and source addresses	of given pathspecs get
	      compared	whether	the target already exists in the ISO image and
	      is still identical to the	source on disk.	Metadata  in  the  ISO
	      image will get adjusted, if they differ from those on disk.  New
	      files  and  files	 with  changed	content	 will get newly	added.
	      Target files which do not	exist in any of	the according pathspec
	      sources will get removed from the	ISO directory tree.
	      If the effective setting of -root	differs	from  the  iso_rr_path
	      given  with  -old-root,  then the	files underneath the -old-root
	      directory	get cloned underneath  the  -root  directory.  Cloning
	      happens before file comparison.

       --old-root-no-ino
	      Disable  recording  and  use  of disk inode numbers.  If no disk
	      inode numbers are	recorded, then option -old-root	will  have  to
	      read disk	file content and compare it with the MD5 checksum that
	      is recorded in the ISO image.
	      With  recorded  disk  inode  numbers and with credible ctime and
	      mtime, it	is possible to detect potential	changes	in the content
	      without actually reading it.  A  loophole	 remains  if  multiple
	      different	 filesystems  may  get	mounted	at the same directory,
	      like it is habit with /mnt.  In this case	one has	to use	option
	      --old-root-devno	 or  disable  the  inode  number  shortcut  by
	      --old-root-no-ino.

       --old-root-devno
	      Enable comparison	 of  recorded  device  numbers	together  with
	      recorded	inode  numbers.	 This  works only with good old	stable
	      device numbers which get out of  fashion,	 regrettably.  If  the
	      hard  disk has a different device	number after each reboot, then
	      this comparison will see all files as changed and	 thus  prevent
	      any incremental size saving.

       --old-root-no-md5
	      Disable  recording  and  use  of	MD5  checksums	for  data file
	      content.	If neither checksums and nor disk  inode  numbers  are
	      recorded,	then option -old-root will have	to read	ISO image file
	      content when comparing it	with disk file content.

       Settings	for image production:

       -o disk_path
	      Set  the output file address for the emerging ISO	image.	If the
	      address exists as	regular	file, it will be truncated to length 0
	      when image production  begins.  It  may  not  already  exist  as
	      directory.   If  it does not exist yet then its parent directory
	      must exist and a regular file will get created.
	      A	  special   kind   of	pseudo	 disk_path   has   the	  form
	      "/dev/fd/"number.	  It depicts the open file descriptor with the
	      given number, regardless whether the operating  system  supports
	      this feature by file nodes in /dev/fd or not.  E.g. /dev/fd/4 is
	      file  descriptor	4  which  was opened by	the program that later
	      started xorriso.
	      Default is standard output (/dev/fd/1) which may also be set  by
	      disk_path	"-".

       -output disk_path
	      Alias of -o.

       --stdio_sync "on"|"off"|"end"|number
	      Set  the	number of bytes	after which to force output to disk in
	      order to keep the	memory from being clogged with lots of pending
	      data for slow devices. "on" is the same as "16m".	 Forced	output
	      can be disabled by "off",	or be delayed by "end" until all  data
	      are  produced.  If  a number is chosen, then it must be at least
	      64k.
	      The default  with	 xorriso  mkisofs  emulation  is  --stdio_sync
	      "off".
	      xorriso  uses  an	 inner fifo buffer with	default	size 4 MiB. So
	      forcing  the  operating  system  i/o  cache  to  disk  does  not
	      necessarily  block  the  simultaneous  production	 of more image
	      content.

       --emul-toc
	      Write  a	second	superblock  with  the	first	session	  into
	      random-access  files.  If	 further sessions get appended and the
	      first superblock gets updated, then the second  superblock  will
	      not  be  overwritten. So it is still possible to mount the first
	      session and to find the start blocks of the further sessions.
	      The   price   is	 64   KiB   extra   space   consumption.    If
	      -partition_offset	is non-zero, then it is	128 KiB	plus twice the
	      partition	setup.

       --no-emul-toc
	      Do  not  write  a	 second	superblock with	the first session into
	      random-access files.
	      This is the default.

       --sort-weight weight_number iso_rr_path
	      Attribute	a LBA weight number to regular files.  If  iso_rr_path
	      leads  to	a directory then all regular files underneath will get
	      the weight_number.
	      The weight_number	may range from -2147483648 to 2147483647.  The
	      higher it	is, the	lower will be the block	address	 of  the  file
	      data  in	the  emerging ISO image.  Currently the	El Torito boot
	      catalog has a hardcoded weight of	1 billion.  Normally it	should
	      occupy the block with the	lowest possible	address.   Data	 files
	      get added	or loaded with initial weight 0. Boot image files have
	      a	default	weight of 2.

       --sort-weight-list disk_path
	      Read  pairs  of weight number and	iso_rr_path from a file	of the
	      local filesystem.	Apply each pair	like with --sort-weight.
	      Only the last --sort-weight-list or --sort-weight-patterns of  a
	      xorrisofs	run gets into effect.
	      The  weight  number  is  read  from  the start of	the line.  The
	      iso_rr_path part of an input line	begins immediately  after  the
	      first blank or tab character of the line.
	      Notes  for  the case that	this feature is	used within a sequence
	      of generic xorriso commands (not an issue	with  a	 pure  mkisofs
	      emulation	run):
	      The  addressed files must	already	be in the ISO image model when
	      you execute
		-as mkisofs --sort-weight-list disk_path --
	      Several such commands may	be used	to apply more than one	weight
	      file.
	      Data  files  which  are  loaded  by  -indev or -dev get a	weight
	      between 1	and 2 exp 28 = 268,435,456, depending on  their	 block
	      address.	This  shall keep them roughly in the same order	if the
	      write method of modifying	is applied.

       --sort-weight-patterns disk_path
	      Like --sort-weight-list ,	 but  expanding	 the  iso_rr_paths  as
	      shell   parser  patterns	and  applying  --sort-weight  to  each
	      matching file.

       -uid number|name
	      Use the given number or locally existing user name as  owner  id
	      of  all files and	directories in the emerging filesystem.	 Empty
	      name or name "-" revoke this feature.

       -gid number|name
	      Use the given number or locally existing group name as group  id
	      of  all files and	directories in the emerging filesystem.	 Empty
	      name or name "-" revoke this feature.

       -dir-mode mode
	      Set the access permissions for all directories in	the  image  to
	      the  given  mode	which is either	an octal number	beginning with
	      "0" or  a	 comma	separated  list	 of  statements	 of  the  form
	      [ugoa]*[+-=][rwxst]* . E.g. ug=rx,a-rwx

       -file-mode mode
	      Like -dir-mode but for all regular data files in the image.

       -pad
	      Add  300	KiB  to	 the  end  of  the  produced  ISO  image. This
	      circumvents possible read	errors from ISO	images which have been
	      written to CD media in  TAO  mode.   The	additional  bytes  are
	      claimed as part of the ISO image if not --emul-toc is given.
	      Option -pad is the default.

       -no-pad
	      Disable padding of 300 KiB to the	end of the produced ISO	image.
	      This is safe if the image	is not meant to	be written on CD or if
	      it gets written to CD as only track in write mode	SAO.

       --old-empty
	      Use  the	old  way  of of	giving block addresses in the range of
	      [0,31] to	files with no own data content.	The new	way is to have
	      a	dedicated block	to which all such files	will point.

       Settings	for standards compliance:

       -iso-level number
	      Specify the ISO 9660 version which defines  the  limitations  of
	      file  naming  and	data file size.	The naming restrictions	do not
	      apply to the Rock	Ridge names but	only to	the low-level ISO 9660
	      names.  There are	three conformance levels:
	      Level 1 allows ISO names of the form 8.3 and file	size up	 to  4
	      GiB - 1.
	      Level  2 allows ISO names	with up	to 32 characters and file size
	      up to 4 GiB - 1.
	      Level 3  allows ISO names	with up	to 32 characters and file size
	      of up to 400 GiB - 200 KiB. (This	size limitation	is set by  the
	      xorriso  implementation  and  not	 by ISO	9660 which would allow
	      nearly 8 TiB.)
	      Pseudo-level 4 enables production	of an additional ISO 9660:1999
	      directory	tree.

       -disallow_dir_id_ext
	      Do not follow a bad habit	of mkisofs which allows	 dots  in  the
	      ISO  names  of  directories.  On	the  other hand, some bootable
	      GNU/Linux	images depend on this bad habit.

       -U
	      This option allows ISO file names	 without  dot  and  up	to  37
	      characters,  ISO	file paths longer than 255 characters, and all
	      ASCII characters in file names. Further it omits	the  semicolon
	      and the version numbers at the end of ISO	names.
	      This all violates	ISO 9660 specs.

       -untranslated-filenames
	      Alias of -U.

       -untranslated_name_len number
	      Allow  ISO  file	names  up  to  the  given number of characters
	      without any character conversion.	The maximum number is 96.   If
	      a	file name has more characters, then image production will fail
	      deliberately.
	      This violates ISO	9660 specs.

       -allow-lowercase
	      Allow lowercase character	in ISO file names.
	      This violates ISO	9660 specs.

       -relaxed-filenames
	      Allow  nearly  all  7-bit	 characters  in	 ISO  file names.  Not
	      allowed are 0x0 and  '/'.	 If  not  option  -allow-lowercase  is
	      given, then lowercase letters get	converted to uppercase.
	      This violates ISO	9660 specs.

       -d
	      Do not add trailing dot to ISO file names	without	dot.
	      This violates ISO	9660 specs.

       -omit-period
	      Alias of -d.

       -l
	      Allow up to 31 characters	in ISO file names.

       -full-iso9660-filenames
	      Alias of -l.

       -max-iso9660-filenames
	      Allow up to 37 characters	in ISO file names.
	      This violates ISO	9660 specs.

       -N
	      Omit  the	 semicolon  and	 the version numbers at	the end	of ISO
	      names.
	      This violates ISO	9660 specs.

       -omit-version-number
	      Alias of -N.

       Settings	for standards extensions:

       -R
	      With  mkisofs  this  option  enables  Rock   Ridge   extensions.
	      xorrisofs	 produces  them	by default. It is strongly discouraged
	      to disable them by option	--norock.

       -rock
	      Alias of -R.

       -r
	      Enable Rock Ridge	and set	user and group id of all files in  the
	      ISO   image   to	0.   Grant  r-permissions  to  all.  Deny  all
	      w-permissions.  If any x-permission is set,  grant  x-permission
	      to all.  Remove s-bit and	t-bit.
	      These  attribute	changes	 stay  delayed until mkisofs emulation
	      ends. Within the same -as	mkisofs	emulation command they can  be
	      revoked  by  a  subsequent  option  --norock.  For compatibility
	      reasons, option -R does not revoke the changes ordered by	-r.

       -rational-rock
	      Alias of -r.

       --norock
	      This option disables the production of Rock Ridge	extensions for
	      the ISO 9660 file	objects.  The  multi-session  capabilities  of
	      xorrisofs	 depend	 much on the naming fidelity of	Rock Ridge. So
	      it is strongly discouraged to disable it by this option,	except
	      for the special use case to revoke the effect of -r by:
	       --norock	-R

       --set_all_file_dates timestring
	      Set  mtime, atime, and ctime of all files	and directories	to the
	      given time.
	      Valid  timestring	 formats  are:	'Nov  8	 14:51:13  CET	2007',
	      110814512007.13, 2007110814511300. See also --modification-date=
	      and man xorriso, Examples	of input timestrings.
	      If the timestring	is "set_to_mtime", then	the atime and ctime of
	      each  file  and  directory  get  set to the value	found in their
	      mtime.
	      These actions stay delayed until actual ISO  production  begins.
	      Up  to  then  they  can  be revoked by --set_all_file_dates with
	      empty timestring or timestring "default".
	      The timestamps of	the El Torito boot catalog file	get  refreshed
	      when   the   ISO	 is   produced.	 They  can  be	influenced  by
	      --modification-date=.

       -file_name_limit	number
	      Set the maximum permissible length for file names	in  the	 range
	      of  64  to 255.  Path components which are longer	than the given
	      number  will  get	 truncated  and	 have  their  last  33	 bytes
	      overwritten by a colon ':' and the hex representation of the MD5
	      of  the  first 4095 bytes	of the whole oversized name. Potential
	      incomplete  UTF-8	 characters  will  get	their  leading	 bytes
	      replaced by '_'.
	      Linux  kernels  up  to at	least 4.1 misrepresent names of	length
	      254 and 255.  If you expect such names in	 or  under  disk_paths
	      and plan to mount	the ISO	by such	Linux kernels, consider	to set
	      -file_name_limit 253.

       -D     The  standard  ECMA-119  demands that no path in the image shall
	      have more	than 8 name components or 255 characters. Therefore it
	      would be necessary to move deeper	directory trees	 to  a	higher
	      directory.  Rock	Ridge  offers  an  opportunity	to  let	 these
	      relocated	directories appear at their  original  deep  position,
	      but  this	feature	might not be implemented properly by operating
	      systems which mount the image.
	      Option -D	disables this  deep  directory	relocation,  and  thus
	      violates ISO 9660	specs.
	      xorrisofs	 has  -D  set  by default. If given explicitly then it
	      overrides	the options -rr_reloc_dir and -hide-rr-moved.

       -disable-deep-relocation
	      Alias of -D.

       -rr_reloc_dir name
	      Enable  the  relocation  of  deep	 directories  and  thus	 avoid
	      ECMA-119	file  paths  of	 more  than  8	name components	or 255
	      characters. Directories which lead to such file paths  will  get
	      moved  to	 a  directory  in the root directory of	the image. Its
	      name gets	set by this option.  It	is permissible to use the root
	      directory	itself.
	      The overall directory tree  will	appear	originally  deep  when
	      interpreted as Rock Ridge	tree. It will appear as	re-arranged if
	      only ECMA-119 information	is considered.
	      If  the given relocation target directory	does not already exist
	      when image production begins,  then  it  will  get  created  and
	      marked  for  Rock	 Ridge	as  relocation	artefact.  At least on
	      GNU/Linux	it will	not be displayed in mounted Rock Ridge images.
	      The name must not	 contain  a  '/'  character  after  its	 first
	      character	and it must not	be longer than 255 bytes.
	      This option has no effect	if option -D is	present.

       -hide-rr-moved
	      Alias of -rr_reloc_dir "/.rr_moved"

       --for_backup
	      Enable all options which improve backup fidelity:
	      --acl, --xattr-any, --md5, --hardlinks.
	      If   you	later  restore	a  backup  with	 xattr	from  non-user
	      namespaces, then make sure that the target operating system  and
	      filesystem  know	what  these attributes mean. Possibly you will
	      need  administrator  privileges  to  record  or	restore	  such
	      attributes.  At  recording  time,	 xorriso  will try to tolerate
	      missing privileges and just record what is readable.
	      Option  -xattr  after  option  -for_backup   excludes   non-user
	      attributes from being recorded.

       --acl
	      Enable  recording	 and loading of	ACLs from GNU/Linux or FreeBSD
	      (see man getfacl,	man acl).  They	will not  be  in  effect  with
	      mounted  ISO  images.  But  xorriso can restore them on the same
	      systems when extracting files from the ISO image.

       --xattr
	      Enable recording and loading of GNU/Linux	 or  FreeBSD  extended
	      attributes in user namespace (see	man getfattr and man attr, man
	      getextattr  and  man 9 extattr, respectively).  They will	not be
	      in effect	with mounted ISO images. But xorriso can restore  them
	      on the same systems when extracting files	from the ISO image.

       --xattr-any
	      Enable  recording	 and  loading of GNU/Linux or FreeBSD extended
	      attributes in all	 namespaces.  This  might  need	 administrator
	      privileges, even if the owner of the disk	file tries to read the
	      attributes.

       --md5
	      Enable  recording	of MD5 checksums for the overall ISO image and
	      for each single data file	in the image. xorriso  can  check  the
	      content  of  an  ISO  image  with	 these sums and	raise alert on
	      mismatch.	 See man xorriso, options  -check_media,  check_md5_r.
	      xorriso can print	recorded MD5 checksums.	E.g. by:
	       -find / -exec get_md5

       --hardlinks
	      Enable  loading and recording of hardlink	relations.  Search for
	      families of iso_rr files which stem from	the  same  disk	 file,
	      have  identical content filtering	and have identical properties.
	      The members of each family get the same inode number in the  ISO
	      image.
	      Whether these numbers are	respected at mount time	depends	on the
	      operating	 system.  xorriso  can	create	hardlink families when
	      extracting files from the	ISO image.

       --scdbackup_tag disk_path record_name
	      Append a scdbackup checksum record to the	image. This works only
	      if the parameter next_writeable_address of option	-C  is	0  and
	      --md5  is	 enabled.   If	disk_path is not an empty string, then
	      append a scdbackup checksum record to  the  end  of  this	 file.
	      record_name is a word that gets part of tag and record.
	      Program  scdbackup_verify	will recognize and verify tag and file
	      record.
	      An empty record_name disables this feature.

       -J
	      Enable the production of an  additional  Joliet  directory  tree
	      along with the ISO 9660 Rock Ridge tree.

       -joliet
	      Alias of -J.

       -joliet-long
	      Allow  103  characters in	Joliet file names rather than 64 as is
	      prescribed by the	specification. Allow Joliet paths longer  than
	      the prescribed limit of 240 characters.
	      Oversized	 names	get  truncated.	Without	this option, oversized
	      paths get	excluded from the Joliet tree.

       -joliet-utf16
	      Encode Joliet file names in UTF-16BE  rather  than  UCS-2.   The
	      difference is with characters which are not present in UCS-2 and
	      get  encoded  in	UTF-16	by 2 words of 16 bit each.  Both words
	      then stem	from a reserved	subset of UCS-2.

       -hfsplus
	      Enable the production of an additional  HFS+  filesystem	inside
	      the  ISO	9660  image  and  mark it by Apple Partition Map (APM)
	      entries in the System Area, the first 32 KiB of the image.
	      This may collide with options like -G  or	 -isohybrid-mbr	 which
	      submit  user  data for inclusion in the same address range.  The
	      first 8 bytes of the System Area	get  overwritten  by  {	 0x45,
	      0x52,  0x08 0x00,	0xeb, 0x02, 0xff, 0xff } which can be executed
	      as x86 machine code without negative effects.  So	if an MBR gets
	      combined with this  feature,  then  its  first  8	 bytes	should
	      contain no essential commands.
	      The  next	blocks of 2 KiB	in the System Area will	be occupied by
	      APM entries.  The	first one covers the part  of  the  ISO	 image
	      before  the  HFS+	 filesystem metadata. The second one marks the
	      range from HFS+ metadata to the end of  file  content  data.  If
	      more  ISO	 image	data follow, then a third partition entry gets
	      produced.	Other features of xorriso might	 cause	the  need  for
	      more APM entries.
	      Be  aware	 that  HFS+ is case-insensitive	although it can	record
	      file names with upper-case and  lower-case  letters.  Therefore,
	      file  names  from	 the  iso_rr name tree may collide in the HFS+
	      name tree. In this case they get changed	by  adding  underscore
	      characters  and counting numbers.	In case	of very	long names, it
	      might be necessary to map	them to	"MANGLED_...".
	      WARNING:
	      The HFS+ implementation in libisofs has a	limit  of  125,829,120
	      bytes  for the size of the overall directory tree. This suffices
	      for about	300,000	files of normal	name length. If	the limit gets
	      exceeded,	a FAILURE event	will be	issued and the ISO  production
	      will not happen.

       -hfsplus-serial-no
	      Set  a  string  of  16 digits "0"	to "9" and letters "a" to "f",
	      which will be used as unique serial number of an	emerging  HFS+
	      filesystem.

       -hfsplus-block-size number
	      Set  the	allocation  block  size	to be used when	producing HFS+
	      filesystems. Permissible are 512,	2048, or 0.  The  latter  lets
	      the program decide.

       -apm-block-size number
	      Set  the	block size to be used when describing partitions by an
	      Apple Partition Map. Permissible are 512,	2048, or 0. The	latter
	      lets the program decide.
	      Note that	size 512 is not	compatible with	production of GPT, and
	      that size	2048 will not be mountable  -t	hfsplus	 at  least  by
	      older Linux kernels.

       -hfsplus-file-creator-type creator type iso_rr_path
	      Set  the	HFS+  creator  and  type  attributes  of a file	in the
	      emerging image.  These are two codes of 4	characters each.

       -hfs-bless-by blessing iso_rr_path
	      Issue a HFS+ blessing. They are roles which can be attributed to
	      up to four directories and a data	file:
	      "ppc_bootdir",  "intel_bootfile",	 "show_folder",	 "os9_folder",
	      "osx_folder".
	      They may be abbreviated as "p", "i", "s",	"9", and "x".
	      Each  such  role	can  be	attributed to at most one file object.
	      "intel_bootfile" is the one that would apply to a	data file. All
	      others apply to directories.  No file object can bear more  than
	      one blessing.

       -hfs-bless disk_path
	      Issue  HFS+  blessing "ppc_bootdir" to the directory which stems
	      from the directory disk_path in the local	filesystem tree.
	      This works only if there is at least one	data  file  underneath
	      the  directory.	disk_path  can	become ambiguous if files from
	      different	local filesystem  sub-trees  are  put  into  the  same
	      sub-tree	of  the	 ISO image.  Consider to use -hfs-bless-by "p"
	      for unambiguous addressing via iso_rr_path.

       Settings	for file hiding:

       -hide disk_path_pattern
	      Make files invisible in the directory tree of ISO	9660 and  Rock
	      Ridge,  if  their	 disk_path  matches  the  given	 shell	parser
	      pattern.	The data content of such hidden	files will be included
	      in the resulting image, even if they  do	not  show  up  in  any
	      directory.  But you will need own	means to find nameless data in
	      the image.
	      This command does	not apply to the boot catalog.

       -hide-list disk_path
	      Perform  -hide using each	line out of file disk_path as argument
	      disk_path_pattern.

       -hide-joliet disk_path_pattern
	      Like option -hide	but making files invisible  in	the  directory
	      tree  of	Joliet,	 if  their  disk_path  matches the given shell
	      parser pattern.

       -hide-joliet-list disk_path
	      Perform -hide-joliet using each line out of  file	 disk_path  as
	      argument disk_path_pattern.

       -hide-hfsplus disk_path_pattern
	      Like  option  -hide  but making files invisible in the directory
	      tree of HFS+, if their disk_path matches the given shell	parser
	      pattern.

       -hide-hfsplus-list disk_path
	      Perform  -hide-hfsplus  using each line out of file disk_path as
	      argument disk_path_pattern.

       ISO image ID strings:

       The following strings and file addresses	 get  stored  in  the  Primary
       Volume Descriptor of the	ISO9660	image. The file	addresses are ISO 9660
       paths.  These  files should have	iso_rr_paths which consist only	of the
       characters [A-Z0-9_] and	exactly	one dot	 which	separates  at  most  8
       characters from at most 3 characters.

       -V text
	      Set the Volume Id	of the ISO image.  xorriso accepts any text up
	      to  32 characters, but according to rarely obeyed	specs stricter
	      rules apply:
	      Conformant  are  ASCII  characters  out  of   [A-Z0-9_].	 Like:
	      "IMAGE_23"
	      Joliet allows 16 UCS-2 characters. Like: "Windows	name"
	      Be aware that the	volume id might	get used automatically as name
	      of  the  mount  point when the medium is inserted	into a playful
	      computer system.

       -volid text
	      Alias of -V.

       -volset text
	      Set the Volume Set Id of the ISO image.  Permissible are	up  to
	      128 characters.

       -P text
	      Set  the	Publisher  Id  of the ISO image. This may identify the
	      person or	organisation who specified  what  shall	 be  recorded.
	      Permissible are up to 128	characters.

       -publisher text
	      Alias of -P.

       -A text
	      Set  the Application Id of the ISO image.	 This may identify the
	      specification of how the data are	recorded.  Permissible are  up
	      to 128 characters.
	      The  special text	"@xorriso@" gets converted to the id string of
	      xorriso which is normally	written	as Preparer Id.	It is a	 wrong
	      tradition	to write the program id	as Application Id.

       -appid text
	      Alias of -A.

       -sysid text
	      Set the System Id	of the ISO image. This may identify the	system
	      which  can recognize and act upon	the content of the System Area
	      in image blocks 0	to 15.	Permissible are	up to 32 characters.

       -p text
	      Set the Preparer Id of the ISO  image.  This  may	 identify  the
	      person  or  other	 entity	 which controls	the preparation	of the
	      data which shall be recorded. Normally this should be the	id  of
	      xorriso and not of the person or program which operates xorriso.
	      Please   avoid   to  change  it.	 Permissible  are  up  to  128
	      characters.
	      The special text "@xorriso@" gets	converted to the id string  of
	      xorriso which is default at program startup.

       -preparer text
	      Alias of -p.

       -abstract iso_path
	      Set  the	address	 of  the  Abstract File	of the ISO image. This
	      should be	the ISO	9660  path  of	a  file	 in  the  image	 which
	      contains	 an   abstract	statement  about  the  image  content.
	      Permissible are up to 37 characters.

       -biblio iso_path
	      Set the address of the Biblio File of the	ISO image. This	should
	      be the ISO 9660 path of a	 file  in  the	image  which  contains
	      bibliographic records.  Permissible are up to 37 characters.

       -copyright iso_path
	      Set  the	address	 of  the Copyright File	of the ISO image. This
	      should be	the ISO	9660  path  of	a  file	 in  the  image	 which
	      contains	a  copyright  statement.   Permissible	are  up	 to 37
	      characters.

       --modification-date=YYYYMMDDhhmmsscc
	      Set  a  timestring  that	overrides  ISO	image	creation   and
	      modification  timestamps	literally.   It	 must  consist	of  16
	      decimal digits which form	YYYYMMDDhhmmsscc,  with	 YYYY  between
	      1970  and	 2999. Time zone is GMT.  It is	supposed to match this
	      GRUB line:
	       search --fs-uuid	--set YYYY-MM-DD-hh-mm-ss-cc
	      E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
	      Among the	influenced timestamps are: isohybrid MBR id, El	Torito
	      boot catalog file, HFS+ superblock.

       --application_use character|0xXY|disk_path
	      Specify the content of the Application Use field which can  take
	      at most 512 bytes.
	      If  the  parameter  of  this command is empty, then the field is
	      filled with 512 0-bytes. If it is	a single  character,  then  it
	      gets  repeated  512 times.  If it	begins by "0x" followed	by two
	      hex digits [0-9a-fA-F], then the digits are read as  byte	 value
	      which gets repeated 512 times.
	      Any  other  parameter  text  is used as disk_path	to open	a data
	      file and to read up to 512 bytes from it.	If the file is smaller
	      than 512 bytes, then the remaining bytes in the field get	set to
	      binary 0.

       El Torito Bootable ISO images:

       The precondition	for a bootable ISO image is to have in the  ISO	 image
       the  files  of  a  boot	loader.	 The  boot facilities of computers get
       directed	to such	files, which usually  execute  further	program	 files
       from  the ISO image.  xorrisofs can produce several kinds of boot block
       or boot record, which become part of the	ISO image, and get interpreted
       by the according	boot facility.

       An El Torito boot record	points the bootstrapping facility  to  a  boot
       catalog	with  one  or more boot	images,	which are binary program files
       stored in the ISO image.	 The content of	the boot image files is	not in
       the scope of El Torito.
       xorriso composes	the boot catalog according to  the  boot  image	 files
       given  and  structured  by  options  -b,	 -e,  -eltorito-alt-boot,  and
       --efi-boot. Often it contains only one entry.
       Normally	the boot images	are data files inside the ISO  filesystem.  By
       special	path  "--interval:appended_partition_NNN:all::"	it is possible
       to refer	to an appended partition. The number NNN gives	the  partition
       number as used with the corresponding option -append_partition.	E.g.:
	 -append_partition 2 0xef /tmp/efi.img
	 -e --interval:appended_partition_2:all::
       El  Torito  gets	 interpreted by	boot facilities	PC-BIOS	and EFI.  Most
       bootable	GNU/Linux CDs are equipped with	ISOLINUX or GRUB  boot	images
       for PC-BIOS.
       xorrisofs  supports  the	 example options out of	the ISOLINUX wiki, the
       options used in GRUB script  grub-mkrescue,  and	 the  example  in  the
       FreeBSD AvgLiveCD wiki.

       For  CD booting via boot	facilities other than PC-BIOS and EFI, and for
       booting from USB	sticks or hard disks, see the next section  about  the
       System Area.

       -b iso_rr_path
	      Specify  the  boot  image	 file  which shall be mentioned	in the
	      current entry of the El Torito boot catalog. It will  be	marked
	      as suitable for PC-BIOS.
	      With  boot  images  from ISOLINUX	and GRUB this option should be
	      accompanied by options -c	, -no-emul-boot	, -boot-load-size 4  ,
	      -boot-info-table.

       -eltorito-boot iso_rr_path
	      Alias of -b.

       -eltorito-alt-boot
	      Finalize	the  current  El Torito	boot catalog entry and begin a
	      new one.	A boot image file and all its necessary	options	 shall
	      be  specified  before option -eltorito-alt-boot.	All further El
	      Torito boot options apply	to the new catalog  entry.  Up	to  32
	      catalog entries are possible.

       -e iso_rr_path
	      Specify  the  boot  image	 file  which shall be mentioned	in the
	      current entry of the El Torito boot catalog. It will  be	marked
	      as suitable for EFI.
	      Option  -e  should  be  followed	by option -no-emul-boot	and no
	      other El Torito options before an	eventual -eltorito-alt-boot.

       --efi-boot iso_rr_path
	      Perform	-eltorito-alt-boot,   option   -e   with   the	 given
	      iso_rr_path,  -no-emul-boot,  and	again -eltorito-alt-boot. This
	      gesture is used  for  achieving  EFI-bootability	of  the	 GRUB2
	      rescue CD.

       -eltorito-platform "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
	      Set   the	  Platform  Id	number	for  the  next	option	-b  or
	      -eltorito-boot.  The number may be chosen	by a platform name  or
	      by  a number between 0 and 255 (0x00 and 0xFF). "x86" = 0	is for
	      PC-BIOS, "PPC" = 1 for some PowerPC systems, "Mac" = 2 for  some
	      MacIntosh	 systems,  "efi" = 0xEF	for EFI	on modern PCs with x86
	      compatible CPUs or others.
	      If  the  new  platform  id  differs  from	 the   previous	  one,
	      -eltorito-alt-boot gets performed.

       -boot-load-size number|"full"
	      Set the number of	512-byte blocks	to be loaded at	boot time from
	      the boot image in	the current catalog entry.
	      Non-emulating  BIOS  bootimages  usually	need a load size of 4.
	      Nevertheless the default setting of mkisofs is to	use  the  full
	      size  of	the  boot image	rounded	up to a	multiple of 4 512-byte
	      blocks. This default may be  explicitly  enforced	 by  the  word
	      "full" instead of	a number.
	      EFI boot images usually get set the number of blocks occupied by
	      the boot image file.
	      El Torito	cannot represent load sizes higher than	65535.

       -hard-disk-boot
	      Mark  the	 boot  image  in the current catalog entry as emulated
	      hard disk.  (Not suitable	for any	known boot loader.)

       -no-emul-boot
	      Mark the	boot  image  in	 the  current  catalog	entry  as  not
	      emulating	 floppy	 or  hard  disk.  (This	is to be used with all
	      known boot loaders.)
	      If neither -hard-disk-boot nor -no-emul-boot is given, then  the
	      boot  image will be marked as emulating a	floppy.	 (Not suitable
	      for any known boot loader.)

       -eltorito-id text|56_hexdigits
	      Define the ID string of the boot catalog section where the  boot
	      image  will  be  listed.	If the value consists of 56 characters
	      [0-9A-Fa-f] then it is converted into 28 bytes, else  the	 first
	      28  characters become the	ID string.  The	ID string of the first
	      boot image becomes the overall catalog ID.  It is	limited	to  24
	      characters. Other	id_strings become section IDs.

       -eltorito-selcrit hexdigits
	      Define the Selection Criteria of the boot	image.	Up to 20 bytes
	      get  read	 from  the  given  characters  [0-9A-Fa-f].   They get
	      attributed to the	boot image entry in the	catalog.

       -boot-info-table
	      Overwrite	 bytes	8  to  63  in  the  current  boot  image.  The
	      information  will	 be supplied by	xorriso	in the course of image
	      production: Block	address	 of  the  Primary  Volume  Descriptor,
	      block  address  of  the  boot image file,	size of	the boot image
	      file.

       --grub2-boot-info
	      Overwrite	bytes 2548 to 2555 in the current boot	image  by  the
	      address  of  that	 boot image.  The address is written as	64 bit
	      little-endian number. It is the 2KB block	address	 of  the  boot
	      image content, multiplied	by 4, and then incremented by 5.

       -c iso_rr_path
	      Set  the	address	 of the	El Torito boot catalog file within the
	      image.  This file	address	is not	significant  for  the  booting
	      PC-BIOS  or  EFI,	 but it	may later be read by other programs in
	      order to learn about the available boot images.

       -eltorito-catalog iso_rr_path
	      Alias of -c.

       --boot-catalog-hide
	      Prevent the El Torito boot catalog from appearing	as file	in the
	      directory	trees of the image.

       System Area, MBR, GPT, APM, other boot blocks:

       The first 16 blocks of an  ISO  image  are  the	System	Area.	It  is
       reserved	 for  system  dependent	 boot  software.  This may be the boot
       facilities and partition	tables of various hardware architectures.
       A MBR (Master Boot Record) contains boot	code and  a  partition	table.
       It  is read by PC-BIOS when booting from	USB stick or hard disk,	and by
       PowerPC CHRP or PReP when booting.  An MBR  partition  with  type  0xee
       indicates the presence of GPT.
       A GPT (GUID Partition Table) marks partitions in	a more modern way.  It
       is  read	 by  EFI  when booting from USB	stick or hard disk, and	may be
       used for	finding	and mounting a HFS+ partition inside the ISO image.
       An APM (Apple Partition Map) marks the HFS+ partition.  It is  read  by
       Macs for	booting	and for	mounting.
       MBR,  GPT and APM are combinable. APM occupies the first	8 bytes	of MBR
       boot code. All three do not hamper El Torito booting from CDROM.
       xorrisofs supports further boot facilities: MIPS	Big Endian (SGI), MIPS
       Little Endian (DEC), SUN	SPARC, HP-PA, DEC Alpha.  Those	 are  mutually
       not combinable and also not combinable with MBR,	GPT, or	APM.

       Several	of  the	 following options expect disk paths as	input but also
       accept description strings for the libisofs interval reader,  which  is
       able  to	cut out	data from disk files or	-indev and to zeroize parts of
       the   content:	-G,   -generic-boot,   --embedded-boot,	  --grub2-mbr,
       -isohybrid-mbr,	 -efi-boot-part,   -prep-boot-part,  -B,  -sparc-boot,
       -append_partition.
       The description string consists of the following	components,  separated
       by colon	':'
	 "--interval:"Flags":"Interval":"Zeroizers":"Source
       The  component  "--interval"  states that this is not a plain disk path
       but rather a interval reader description	string.
       The component Flags modifies the	further	interpretation:
       "local_fs" demands to read from a file depicted by the path in Source.
       "imported_iso" demands to read from the	-indev.	 This  works  only  if
       -outdev is not the same as -indev. The Source component is ignored.
       "appended_partition_NNN"	 with  a  decimal  number  NNN	works only for
       options which announce El Torito	boot image paths: -b, -e,  --efi-boot.
       The  number  gives  the partition number	as used	with the corresponding
       option -append_partition.
       The component Interval consists of two byte address  numbers  separated
       by a "-"	character. E.g.	"0-429"	means to read bytes 0 to 429.
       The  component  Zeroizers  consists  of	zero  or  more comma separated
       strings.	 They define which part	of the	read  data  to	zeroize.  Byte
       number  0  means	 the  byte read	from the Interval start	address.  Each
       string may be one of:
       "zero_mbrpt" demands to zeroize the MBR partition table	if  bytes  510
       and 511 bear the	MBR signature 0x55 0xaa.
       "zero_gpt"  demands  to check for a GPT header in bytes 512 to 1023, to
       zeroize it and its partition table blocks.
       "zero_apm" demands to check for an APM  block  0	 and  to  zeroize  its
       partition table blocks.
       Start_byte"-"End_byte  demands  to  zeroize the read-in bytes beginning
       with number Start_byte and ending after End_byte.
       The component Source is the file	path with flag "local_fs", and ignored
       with flag "imported_iso".
       Byte numbers may	be scaled by a suffix  out  of	{k,m,g,t,s,d}  meaning
       multiplication  by  {1024,  1024k,  1024m,  1024g, 2048,	512}. A	scaled
       value end number	depicts	the last byte of the scaled range.
       E.g. "0d-0d" is "0-511".
       Examples:
	 "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso"
	 "imported_iso:45056d-47103d::"

       -G disk_path
	      Copy at most 32768 bytes from the	given disk file	 to  the  very
	      start of the ISO image.
	      Other  than a El Torito boot image, the file disk_path needs not
	      to be added to the ISO image. It will not	show up	as file	in the
	      directory	trees.
	      In multi-session situations, the special disk_path "."  prevents
	      reading  of  a disk file but nevertheless	causes the adjustments
	      in the existing MBR, which were ordered by other options.

       -generic-boot disk_path
	      Alias of -G.

       --embedded-boot disk_path
	      Alias of -G.

       --grub2-mbr disk_path
	      Install disk_path	in the System Area  and	 treat	it  as	modern
	      GRUB2 MBR.  The content start address of the first boot image is
	      converted	 to  a count of	512 byte blocks, and an	offset of 4 is
	      added.  The result is written as 64 bit little-endian number  to
	      byte address 0x1b0.

       -isohybrid-mbr disk_path
	      Install disk_path	as ISOLINUX isohybrid MBR which	makes the boot
	      image given by option -b bootable	from USB sticks	and hard disks
	      via  PC-BIOS.   This  preparation	 is  normally done by ISOLINUX
	      program isohybrid	on the already produced	ISO image.
	      The  disk	 path  should  lead  to	 one  of  the  Syslinux	 files
	      isohdp[fp]x*.bin	.  The MBR gets	patched	according to isohybrid
	      needs. The first partition describes the range of	the ISO	image.
	      Its start	is at block 0 by default, but may be set  to  64  disk
	      blocks by	option -partition_offset 16.
	      For the meaning of special disk_path "." see option -G.

       -isohybrid-gpt-basdat
	      Mark the current El Torito boot image (see options -b and	-e) in
	      an  actually  invalid  GPT as partition of type Basic Data. This
	      works only with -isohybrid-mbr and has the same  impact  on  the
	      system  area  as	-efi-boot-part.	  It  cannot  be combined with
	      -efi-boot-part or	-hfsplus.
	      The first	three boot images which	are marked by  GPT  will  also
	      show  up	as partition entries in	MBR. The MBR partition of type
	      0xEF is what actually is used by EFI firmware for	 booting  from
	      USB  stick.  The MBR partition for PC-BIOS gets type 0x00	rather
	      than 0x17	in this	case.  Often the further MBR entries  are  the
	      ones which actually get used by EFI.

       -isohybrid-gpt-hfsplus
	      Mark the current El Torito boot image (see options -b and	-e) in
	      GPT as partition of type HFS+.  Impact and restrictions are like
	      with -isohybrid-gpt-basdat.

       -isohybrid-apm-hfsplus
	      Mark the current El Torito boot image (see options -b and	-e) in
	      Apple  Partition	Map as partition of type HFS+. This works only
	      with -isohybrid-mbr and has a similar impact on the system  area
	      as  -hfsplus.  It	 cannot	 be  combined  with  -efi-boot-part or
	      -hfsplus.
	      The ISOLINUX isohybrid MBR file must begin by a known pattern of
	      32 bytes of x86 machine code which essentially does nothing.  It
	      will get overwritten by 32 bytes of APM header mock-up.

       -part_like_isohybrid
	      Control  whether	-isohybrid-gpt-basdat, -isohybrid-gpt-hfsplus,
	      and -isohybrid-apm-hfsplus apply even if not  -isohybrid-mbr  is
	      present.	 No  MBR  partition  of	type 0xee emerges, even	if GPT
	      gets produced.  Gaps between GPT and APM partitions will not  be
	      filled by	more partitions.  Appended partitions get mentioned in
	      APM if other APM partitions emerge.

       -iso_mbr_part_type "default"|number|type_guid
	      Set  the	partition  type	 of  the  MBR  or  GPT partition which
	      represents the ISO or at least protects it.
	      Number may be 0x00 to 0xff. The text  "default"  re-enables  the
	      default  types  of  the  various	occasions to create an ISO MBR
	      partition.  This is without effect if no such partition  emerges
	      by  other	 settings  or  if  the	partition  type	 is prescribed
	      mandatorily like 0xee for	GPT protective MBR or 0x96 for CHRP.
	      If instead a type_guid is	given by a 32-digit  hex  string  like
	      a2a0d0ebe5b9334487c068b6b72699c7	or  by	a structured text like
	      EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, then it will  be  used  as
	      partition	 type  if  the	ISO filesystem appears as partition in
	      GPT.   In	 MBR,  C12A7328-F81F-11D2-BA4B-00A0C93EC93B  will   be
	      mapped to	0xef.  Any other GUID will be mapped to	0x83.

       --protective-msdos-label
	      Patch  the  System Area by a simple PC-DOS partition table where
	      partition	1 claims the range of the ISO  image  but  leaves  the
	      first  block  unclaimed.	 This  is  mutally exclusive to	option
	      -isohybrid-mbr.

       --mbr-force-bootable
	      Enforce an MBR partition with "bootable/active" flag if  options
	      like  --protective-msdos-label  or --grub2-mbr are given.	 These
	      options normally cause the flag to be set	if  there  is  an  MBR
	      partition	of type	other than 0xee	or 0xef.  If no	such partition
	      exists,  then  no	 bootflag  is set, unless --mbr-force-bootable
	      forces creation of a dummy partition of type 0x00	 which	covers
	      only the first block of the ISO image.
	      If no bootable MBR is indicated by other options and a partition
	      gets  created  by	 -append_partition,  then --mbr-force-bootable
	      causes   a   bootflag   like   it	   would    do	  with	  e.g.
	      --protective-msdos-label.

       --gpt-iso-bootable
	      Set  bit 2 of the	GPT partition flags for	the ISO	9660 partition
	      if such a	GPT  partition	emerges.  This	bit  is	 specified  as
	      "Legacy  BIOS  bootable"	but  its true significance is unclear.
	      Some GPT-aware BIOS might	want to	see it in some partition.

       --gpt-iso-not-ro
	      Do not set bit 60	of the GPT partition flags for	the  ISO  9660
	      partition	if such	a GPT partition	emerges. This bit is specified
	      as  "Read-only"  and  thus appropriate. But it is	unusual	in GPT
	      disk partitions.

       -partition_offset 2kb_block_adr
	      Cause a partition	table with a single partition that  begins  at
	      the  given  block	 address. This is counted in 2048 byte blocks,
	      not in 512 byte blocks. If the block address is non-zero then it
	      must be at least 16. Values larger than 16 are hardly of use.  A
	      non-zero partition offset	causes two superblocks to be generated
	      and two sets of directory	trees. The  image  is  then  mountable
	      from its absolute	start as well as from the partition start.
	      The  offset  value  of  an  ISO  image gets preserved when a new
	      session is added to a loaded image.  So the value	 defined  here
	      is only in effect	if a new ISO image gets	written.

       -partition_hd_cyl number
	      Set  the	number	of  heads  per	cylinder for the MBR partition
	      table.  0	chooses	a default value. Maximum is 255.

       -partition_sec_hd number
	      Set the number of	sectors	per head for the MBR partition	table.
	      0	chooses	a default value. Maximum is 63.
	      The  product  partition_sec_hd  *	 partition_hd_cyl * 512	is the
	      cylinder size.  It should	be divisible by	2048 in	order to  make
	      exact   alignment	  possible.    With  appended  partitions  and
	      -appended_part_as_gpt there  is  no  limit  for  the  number  of
	      cylinders.  Else	there  may  be	at  most 1024 of them.	If the
	      cylinder size is	too  small  to	stay  below  the  limit,  then
	      appropriate   values   of	  partition_hd_cyl   are  chosen  with
	      partition_sec_hd	32  or	63.  If	 the  image  is	 larger	  than
	      8,422,686,720  bytes,  then the cylinder size constraints	cannot
	      be fulfilled for MBR.  They seem not  overly  important  anyway.
	      Flat block addresses in partition	tables are good	for 1 TiB.

       -partition_cyl_align mode
	      Control  image size alignment to an integer number of cylinders.
	      It is prescribed by isohybrid  specs  and	 it  seems  to	please
	      program fdisk.  Cylinder size must be divisible by 2048.	Images
	      larger  than  8,323,596,288  bytes  cannot  be  aligned  in  MBR
	      partition	table.
	      Mode "auto" is default. Alignment	by  padding  happens  only  if
	      option -isohybrid-mbr is given.
	      Mode    "on"   causes   alignment	  by   padding	 with	option
	      --protective-msdos-label too.  Mode "all"	is like	"on" but  also
	      pads up partitions from -append_partition	to an aligned size.
	      Mode "off" disables alignment unconditionally.

       -append_partition partition_number type_code disk_path
	      Cause  a	prepared  filesystem  image  to	be appended to the ISO
	      image and	to be described	by a partition table entry in  a  boot
	      block  at	 the  start  of	 the emerging ISO image. The partition
	      entry will bear the size of the submitted	file rounded up	to the
	      next multiple of 2048 bytes or  to  the  next  multiple  of  the
	      cylinder size.
	      Beware  of subsequent multi-session runs.	The appended partition
	      will get overwritten.
	      partition_number may be 1	to 4. Number 1 will put	the whole  ISO
	      image  into  the unclaimed space before partition	1. So together
	      with most	xorriso	MBR or GPT features, number  2	would  be  the
	      most natural choice.
	      The type_code may	be "FAT12", "FAT16", "Linux", or a hexadecimal
	      number  between  0x00 and	0xff. Not all those numbers will yield
	      usable results. For a list of  codes  search  the	 Internet  for
	      "Partition  Types"  or  run fdisk	command	"L".  If the partition
	      appears in GPT then type_code 0xef is mapped to the  EFI	System
	      Partition	 Type  GUID.  All others get mapped to Basic Data Type
	      GUID.
	      type_code	may also be a type  GUID  as  plain  hex  string  like
	      a2a0d0ebe5b9334487c068b6b72699c7	or  as	structured  text  like
	      EBD0A0A2-B9E5-4433-87C0-68B6B72699C7. It will  be	 used  if  the
	      partition	     is	     mentioned	   in	  GPT.	   In	  MBR,
	      C12A7328-F81F-11D2-BA4B-00A0C93EC93B will	be mapped to 0xef. Any
	      other   GUID   will   be	  mapped    to	  0x83.	    In	  APM,
	      48465300-0000-11AA-AA11-00306543ECAC will	be mapped to partition
	      type "Apple_HFS",	any other to "Data".
	      If  some	other  command	causes the production of GPT, then the
	      appended partitions will be mentioned there  too,	 even  if  not
	      -appended_part_as_gpt is given.

       -appended_part_as_gpt
	      Marks  partitions	 from  -append_partition in GPT	rather than in
	      MBR.  In this case the MBR shows a single	partition of type 0xee
	      which covers the whole output data.
	      By default, appended partitions get marked in GPT	only if	GPT is
	      produced because of other	options.

       -appended_part_as_apm
	      Marks partitions from -append_partition in Apple Partition  Map,
	      too.
	      By default, appended partitions get marked in APM	only if	APM is
	      produced	because	 of  other options and -part_like_isohybrid is
	      enabled.

       -efi-boot-part disk_path
	      Copy a file from disk into the emerging ISO image	and mark it by
	      a	GPT entry as  EFI  System  Partition.  EFI  boot  firmware  is
	      supposed	to  use	a FAT filesystem image in such a partition for
	      booting from USB stick or	hard disk.
	      Instead of a disk_path, the word --efi-boot-image	may be	given.
	      It  exposes  in  GPT the content of the first El Torito EFI boot
	      image as EFI system partition. EFI boot images are introduced by
	      options -e or --efi-boot.	 The affected EFI  boot	 image	cannot
	      show up in HFS+ because it is stored outside the HFS+ partition.

       --gpt_disk_guid value
	      Control  whether	an emerging GPT	shall get a randomly generated
	      disk GUID	or whether the GUID is supplied	by  the	 user.	 Value
	      "random"	is  default.  Value "modification-date"	produces a low
	      quality GUID from	the value set by option	--modification-date=.
	      A	string of 32 hex digits, or a RFC 4122 compliant  GUID	string
	      may  be  used to set the disk GUID directly. UEFI	prescribes the
	      first  three  components	of  a  RFC  4122  GUID	string	to  be
	      byte-swapped in the binary representation:
	      E.g. --gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446	equals
	      --gpt_disk_guid 2acd0323c7734a42a29825632da7f446
	      The  partition GUIDs get generated by minimally varying the disk
	      GUID.

       -chrp-boot-part
	      Mark the block range of the whole	 emerging  ISO	image  as  MBR
	      partition	 of  type  0x96. This is not compatible	with any other
	      feature that  produces  MBR  partition  entries.	It  makes  GPT
	      unrecognizable.
	      CHRP is often used in conjunction	with HFS. It is	not yet	tested
	      whether  HFS+  filesystems  produced  with option	-hfsplus would
	      boot on any CHRP capable machine which does not  boot  pure  ISO
	      9660 as well.

       -chrp-boot
	      Alias of -chrp-boot-part.

       -prep-boot-part disk_path
	      Copy a file from disk into the emerging ISO image	and mark it by
	      a	 MBR  partition	 entry	of  type  0x41.	 PReP boot firmware is
	      supposed to read the content of  the  partition  as  single  ELF
	      executable  file.	  This	option	is  compatible	with other MBR
	      partitions and with GPT.

       -mips-boot iso_rr_path
	      Declare a	data file in the image to be a MIPS  Big  Endian  boot
	      file  and	 cause	production of a	MIPS Big Endian	Volume Header.
	      This is mutually exclusive with production of other boot	blocks
	      like  MBR.   It  will  overwrite the first 512 bytes of any data
	      provided by -G.  Up to 15	boot files can be declared by multiple
	      -mips-boot options.

       -mipsel-boot iso_rr_path
	      Declare a	data file in the image to be the  MIPS	Little	Endian
	      boot  file.  This	 is mutually exclusive with other boot blocks.
	      It will overwrite	the first 512 bytes of any  data  provided  by
	      -G.  Only	a single boot file can be declared by -mipsel-boot.

       -B disk_path[,disk_path ...]
	      Cause one	or more	data files on disk to be written after the end
	      of  the  ISO  image.  A  SUN Disk	Label will be written into the
	      first 512	bytes of the ISO  image	 which	lists  this  image  as
	      partition	1 and the given	disk_paths as partition	2 up to	8.
	      The disk files should contain suitable boot images for SUN SPARC
	      systems.
	      The  pseudo  disk_path  "..."  causes  that  all empty partition
	      entries become copies of the last	non-empty entry. If  no	 other
	      disk_path	is given before	"..." then all partitions describe the
	      ISO image. In this case, the boot	loader code has	to be imported
	      by option	-G.

       -sparc-boot disk_path[,disk_path	...]
	      Alias of -B.

       -sparc-label text
	      Set the ASCII label text of a SUN	Disk Label.

       --grub2-sparc-core iso_rr_path
	      Cause the	content	address	and size of the	given data file	in the
	      image  to	 be written after the SUN Disk Label. Both numbers are
	      counted in bytes.	 The address is	written	as 64  bit  big-endian
	      number  to byte 0x228.  The size is written as 32	bit big-endian
	      number to	byte 0x230.

       -hppa-cmdline text
	      Set the PALO command line	for HP-PA. Up to 1023  characters  are
	      permitted	by default. With -hppa-hdrversion 4 the	limit is 127.
	      Note  that the first five	-hppa options are mandatory, if	any of
	      the -hppa	options	is  given.  Only  option  -hppa-hdrversion  is
	      allowed to be missing.

       -hppa-bootloader	iso_rr_path
	      Designate	the given path as HP-PA	bootloader file.

       -hppa-kernel-32 iso_rr_path
	      Designate	the given path as HP-PA	32 bit kernel file.

       -hppa-kernel-64 iso_rr_path
	      Designate	the given path as HP-PA	64 bit kernel file.

       -hppa-ramdisk iso_rr_path
	      Designate	the given path as HP-PA	RAM disk file.

       -hppa-hdrversion	number
	      Choose  between  PALO  header version 5 (default)	and version 4.
	      For  the	appropriate   value   see   in	 PALO	source	 code:
	      PALOHDRVERSION.

       -alpha-boot iso_rr_path
	      Declare  a  data	file  in  the  image  to  be the DEC Alpha SRM
	      Secondary	Bootstrap Loader and cause production of a boot	sector
	      which points to it.  This	is mutually exclusive with  production
	      of other boot blocks like	MBR.

       Character sets:

       Character  sets	should not matter as long as only english alphanumeric
       characters are used for file names  or  as  long	 as  all  writers  and
       readers	of  the	 medium	 use  the  same	 character set.	 Outside these
       constraints it may be necessary to let xorriso convert byte codes.
       A conversion from input character set to	the output  character  set  is
       performed  when	an  ISO	 image	gets  written.	 Vice versa there is a
       conversion from output character	set to the input character set when an
       ISO  image  gets	 loaded.   The	sets  can  be	defined	  by   options
       -input-charset and -output-charset, if needed.

       -input-charset character_set_name
	      Set the character	set from which to convert disk file names when
	      inserting	them into the ISO image.

       -output-charset character_set_name
	      Set the character	set from which to convert  names of loaded ISO
	      images and to which to convert names when	writing	ISO images.

       Jigdo Template Extraction:

       From  man  genisoimage: "Jigdo is a tool	to help	in the distribution of
       large files like	CD and DVD images; see	http://atterer.net/jigdo/  for
       more details. Debian CDs	and DVD	ISO images are published on the	web in
       jigdo format to allow end users to download them	more efficiently."
       If  the	use  of	 libjte	 was  enabled at compile time of xorriso, then
       xorrisofs can produce a .jigdo and a .template  file  together  with  a
       single-session  ISO  image.  If	not,  then  Jigdo options will cause a
       FAILURE event, which normally leads to program abort.
       One may determine the ability for Jigdo by:
	 $ xorrisofs -version 2>&1 | grep '^libjte' && echo YES

       The .jigdo file contains	checksums and symbolic	file  addresses.   The
       .template  file	contains  the compressed ISO image with	reference tags
       instead of the content bytes of the listed files.
       Input for this process are the normal arguments for a xorrisofs session
       with no image loaded, and a checksum file which lists those data	 files
       which may be listed in the .jigdo file and externally referenced	in the
       .template  file.	  Each	designated file	is represented in the checksum
       file by a single	text line:
       Checksum	as hex digits, 2 blanks, size as 12 decimal digits or  blanks,
       2 blanks, symbolic file address
       The  kind  of  checksum	is  chosen by -jigdo "checksum_algorithm" with
       values "md5" (32	hex digits) or "sha256"	(64 hex	digits).  It will also
       be used for the file address lines in the .jigdo	file.
	The default is "md5".
       The file	address	in a checksum file line	has to bear the	same  basename
       as  the	disk_path of the file which it shall match. The	directory path
       of the file address is decisive	for  To=From  mapping,	not  for  file
       recognition.  After To=From mapping, the	file address gets written into
       the  .jigdo file. Jigdo restore tools will convert these	addresses into
       really reachable	data source addresses from which they can read.
       If the list of jigdo parameters is not  empty,  then  padding  will  be
       counted as part of the ISO image.

       -jigdo-checksum-algorithm "md5"|"sha256"
	      Set the checksum algorithm which shall be	used for the data file
	      entries in the .jigdo file and is	expected in the	checksum file.
	      Default is "md5".

       -jigdo-jigdo disk_path
	      Set  the	disk_path  for	the .jigdo file	with the checksums and
	      download addresses for filling the holes in .template.

       -jigdo-template disk_path
	      Set the disk_path	for the	.template  file	 with  the  holed  and
	      compressed ISO image copy.

       -jigdo-min-file-size size
	      Set  the minimum size for	a data file to be listed in the	.jigdo
	      file and being a hole in the .template  file.   size  may	 be  a
	      plain  number  counting  bytes, or a number with appended	letter
	      "k", "m",	"g" to count KiB (1024 bytes), MiB (1024 KiB), or  GiB
	      (1024 MiB).

       -jigdo-force-checksum disk_path_pattern
	      adds  a  regular expression pattern which	will get compared with
	      the absolute disk_path of	any data file that was	not  found  in
	      the  checksum  file.   A	match  causes  a  MISHAP  event, which
	      normally does not	abort the program run  but  finally  causes  a
	      non-zero exit value of the program.

       -jigdo-force-md5	disk_path_pattern
	      Outdated alias of	-jigdo-force-checksum.

       -jigdo-exclude disk_path_pattern
	      Add  a  regular  expression pattern which	will get compared with
	      the absolute disk_path of	any data file. A match causes the file
	      to stay in .template in any case.

       -jigdo-map To=From
	      Add a string pair	of the form To=From to the parameter list.  If
	      a	data file gets listed in the .jigdo file, then it is  referred
	      by  the  file  address  from its line in the checksum file. This
	      file address gets	 checked  whether  it  begins  with  the  From
	      string.  If  so,	then  this  string  will be replaced by	the To
	      string and a ':' character, before it goes into the .jigdo file.
	      The From string should end by a '/' character.

       -checksum-list disk_path
	      Set the disk_path	where to find  the  checksum  file  file  with
	      symbolic	  file	  addresses   and   checksums	according   to
	      -jigdo-checksum-algorithm.

       -md5-list disk_path
	      Outdated alias of	-checksum-list.

       -jigdo-template-compress	"gzip"|"bzip2"
	      Choose one of "bzip2" or	"gzip"	for  the  compression  of  the
	      template file. The jigdo file is put out uncompressed.

       -checksum_algorithm_iso list_of_names
	      Choose  one or more of "md5", "sha1", "sha256", "sha512" for the
	      auxiliary	"# Image  Hex"	checksums  in  the  .jigdo  file.  The
	      list_of_names  may e.g. look like	"md5,sha1,sha512". Value "all"
	      chooses all available algorithms.	 Note that  MD5	 stays	always
	      enabled.

       -checksum_algorithm_template list_of_names
	      Choose  the algorithms for the "#	Template Hex" checksums	in the
	      .jigdo file.  The	rules for list_of_names	are the	same  as  with
	      -checksum_algorithm_iso.

       Miscellaneous options:

       -print-size
	      Print  to	 stdandard  output the foreseeable number of 2048 byte
	      blocks in	the emerging ISO image.	Do not produce this image.
	      The result depends on several settings.
	      If option	--emul-toc  is given, then padding (see	-pad)  is  not
	      counted  as  part	 of  the  image	 size. In this case either use
	      -no-pad or add 150 (= 300	KiB) to	the resulting number.
	      If mkisofs emulation ends	after  option  -print-size,  then  the
	      properties of the	most recently specified	boot image file	cannot
	      be edited	by subsequent xorriso commands.

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

       -help
	      List supported options to	stderr.	Original mkisofs options  bear
	      their original mkisofs description texts.

       -quiet
	      Suppress	most  messages	of the program run, except those which
	      indicate problems	or errors.

       -gui
	      Increase the frequency of	pacifier messages while	writing	an ISO
	      image.

       -log-file disk_path
	      Truncate file disk_path  to  0  size  and	 redirect  to  it  all
	      messages	which  would normally appear on	stderr.	-log-file with
	      empty text as disk_path re-enables output	to stderr.

       -v
	      Enable the output	of informational program messages.

       -verbose
	      Alias of -v.

       -version
	      Print to standard	output a text that begins with
	       "mkisofs	2.01-Emulation Copyright (C)"
	      and to standard error the	version	information of xorriso.

EXAMPLES
   Overview of examples:
       A simple	image production run
       Set ISO image paths by -graft-points
       Perform multi-session runs
       Let xorrisofs work underneath growisofs
       Incremental backup of a few directory trees
       Incremental backup with accumulated trees
       Create bootable images for PC-BIOS and EFI

   A simple image production run
       A prepared file tree in directory ./for_iso gets	copied into  the  root
       directory  of  the ISO image. File permissions get set to read-only for
       everybody.  Joliet attributes for Microsoft  systems  get  added.   The
       resulting image gets written as data file ./image.iso on	disk.
	 $ xorrisofs -r	-J -o ./image.iso ./for_iso

   Set ISO image paths by -graft-points
       Without	option	-graft-points  each given disk file is copied into the
       root directory of the ISO image,	maintaining its	name. If  a  directory
       is  given,  then	its files and sub-directories are copied into the root
       directory, maintaining their names.
	 $ xorrisofs ... /home/me/datafile /tmp/directory
       yields in the ISO image root directory:
	 /datafile
	 /file_1_from_directory
	 ...
	 /file_N_from_directory

       With option -graft-points it is possible	to put files  and  directories
       to arbitrary paths in the ISO image.
	 $ xorrisofs ... -graft-points /home/me/datafile /dir=/tmp/directory
       yields in the ISO image root directory:
	 /datafile
	 /dir
       Eventually  needed  parent  directories	in  the	 image will be created
       automatically:
	 /datafiles/file1=/home/me/datafile
       yields in the ISO image:
	 /datafiles/file1
       The attributes of directory /datafiles  get  copied  from  /home/me  on
       disk.

       Normally	 one  should  avoid  =	and  \ characters in the ISO part of a
       pathspec.  But if it must be, one may escape them:
	 /with_\=_and_\\/file=/tmp/directory/file
       yields in the ISO image:
	 /with_=_and_\/file

   Perform multi-session runs
       This example works for multi-session  media  only:  CD-R[W],  DVD-R[W],
       DVD+R,  BD-R.   Add  cdrskin option --grow_overwriteable_iso to all -as
       cdrecord	 runs  in  order  to   enable	multi-session	emulation   on
       overwritable media.
       The first session is written like this:
	 $ xorrisofs -graft-points \
		     /tree1=prepared_for_iso/tree1 \
	   | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
       Follow-up sessions are written like this	(the run of dd is only to give
       demons a	chance to spoil	it):
	 $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
	 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
	 $ xorrisofs -M	/dev/sr0 -C $m -graft-points \
		     /tree2=prepared_for_iso/tree2 \
	   | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi	-eject -
       Always eject the	drive tray between sessions.
       The  run	 of  xorriso -as mkisofs will read old sessions	via the	CD-ROM
       driver of /dev/sr0. This	driver might  not  be  aware  of  the  changed
       content	as  long  as  the medium is not	loaded again. In this case the
       previous	session	would not be properly assessed by xorriso and the  new
       session would contain only the newly added files.
       Some  systems  have not enough patience with automatic tray loading and
       some demons may interfere with a	first CD-ROM driver read attempt  from
       a freshly loaded	medium.
       When  loading  the  tray	 manually, wait	10 seconds after the drive has
       stopped blinking.
       A safe automatic	way seems to be	a separate run of xorriso for  loading
       the  tray  with	proper waiting,	and a subsequent run of	dd which shall
       offer itself to any problems caused by  demons  assessing  the  changed
       drive  status.	If  this  does	not  help,  insert a run of "sleep 10"
       between xorriso and dd.

   Let xorrisofs work underneath growisofs
       growisofs expects an ISO	formatter program which	understands options -C
       and -M. A variable is defined to	override the hardcoded default name.
	 $ export MKISOFS="xorrisofs"
	 $ growisofs -Z	/dev/dvd /some/files
	 $ growisofs -M	/dev/dvd /more/files
       If no "xorrisofs" is available on your system, then you	will  have  to
       create  a link pointing to the xorriso binary and tell growisofs	to use
       it. E.g.	by:
	 $ ln -s $(which xorriso) "$HOME/xorrisofs"
	 $ export MKISOFS="$HOME/xorrisofs"
       One may quit mkisofs emulation by argument "--" and  make  use  of  all
       xorriso	commands. growisofs dislikes options which start with "-o" but
       -outdev must be set to "-".  So use "outdev" instead:
	 $ growisofs -Z	/dev/dvd --for_backup -- \
		     outdev - -update_r	/my/files /files
	 $ growisofs -M	/dev/dvd --for_backup -- \
		     outdev - -update_r	/my/files /files
       Note that --for_backup is given in the mkisofs emulation.  To  preserve
       the  recorded  extra  data  it  must  already  be  in  effect, when the
       emulation loads the image.

   Incremental backup of a few directory trees
       This   changes	the   directory	  trees	   /open_source_project	   and
       /personal_mail  in  the	ISO  image so that they	become exact copies of
       their disk counterparts.	 ISO file objects get created, deleted or  get
       their attributes	adjusted accordingly.
       ACL,  xattr,  hard  links  and  MD5  checksums will be recorded.	 It is
       expected	that inode numbers in the disk filesystem are persistent  over
       cycles of mounting and booting.	Files with names matching *.o or *.swp
       get excluded explicitly.

       To  be used several times on the	same medium, whenever an update	of the
       two disk	trees to the medium is desired.	Begin with a blank medium  and
       update  it until	he run fails gracefully	due to lack of remaining space
       on the old one.
       Always eject the	drive tray between sessions.  A	run of dd  shall  give
       demons a	chance to spoil	the first read on freshly loaded media.
	 $ msinfo=$(xorriso -as	cdrecord dev=/dev/sr0 -msinfo)
	 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
	 $ load_opts=
	 $ test	-n "$msinfo" &&	load_opts="-M /dev/sr0 -C $msinfo"
	 $ xorrisofs $load_opts	-o - --for_backup -m '*.o' -m '*.swp' \
	   -V PROJ_MAIL_"$(date	'+%Y_%m_%d_%H%M%S')" -graft-points \
	   -old-root / \
	   /projects=/home/thomas/projects \
	   /personal_mail=/home/thomas/personal_mail \
	   | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti	-eject -

       This  makes  sense  if  the  full  backup  leaves substantial remaining
       capacity	on media and if	the expected changes are much smaller than the
       full backup.

       Better do not use your youngest backup for -old-root.   Have  at	 least
       two  media  which  you  use  alternatingly.  So	only older backups get
       endangered by the new write  operation,	while  the  newest  backup  is
       stored safely on	a different medium.
       Always  have  a blank medium ready to perform a full backup in case the
       update attempt fails  due  to  insufficient  remaining  capacity.  This
       failure will not	spoil the old medium, of course.

       If   inode  numbers  on	disk  are  not	persistent,  then  use	option
       --old-root-no-ino .  In this case an update run will  compare  recorded
       MD5 sums	against	the current file content on hard disk.

       With  mount  option  -o	"sbsector="  on	 GNU/Linux or -s on FreeBSD or
       NetBSD it is possible to	access the session trees which	represent  the
       older  backup  versions.	With CD	media, GNU/Linux mount accepts session
       numbers directly	by its option "session=".
       Multi-session media and most overwritable media written by xorriso  can
       tell the	sbsectors of their sessions by xorriso option -toc:
	 $ xorriso -dev	/dev/sr0 -toc
       xorriso can print the matching mount command for	a session number:
	 $ xorriso -mount_cmd /dev/sr0 session 12 /mnt
       or for a	volume id that matches a search	expression:
	 $ xorriso -mount_cmd /dev/sr0 volid '*2008_12_05*' /mnt
       Both yield on standard output something like:
	 mount	  -t	iso9660	  -o   nodev,noexec,nosuid,ro,sbsector=1460256
       '/dev/sr0' '/mnt'
       The superuser may let xorriso execute the mount command directly:
	 # osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt

   Incremental backup with accumulated trees
       Solaris does not	offer the option to mount older	sessions.  In order to
       keep them accessible, one may map all files to  a  file	tree  under  a
       session	directory  and	accumulate  those  directories from session to
       session.	 The -root tree	is cloned from the -old-root  tree  before  it
       gets compared with the appropriate trees	on disk.
       This demands to know the	previously used	session	directory name.
       With the	first session:
	 $ xorrisofs -root /session1 \
	   -o -	--for_backup -m	'*.o' -m '*.swp' \
	   -V PROJ_MAIL_"$(date	'+%Y_%m_%d_%H%M%S')" -graft-points \
	   /projects=/home/thomas/projects \
	   /personal_mail=/home/thomas/personal_mail \
	   | xorriso -as cdrecord dev=/dev/sr0 -v blank=as_needed \
		     -multi -waiti -eject -

       With  the  second session, option -old-root refers to /session1 and the
       new -root is /session2.
       Always eject the	drive tray between sessions.  A	run of dd  shall  give
       demons a	chance to spoil	the first read on freshly loaded media.
	 $ msinfo=$(xorriso -as	cdrecord dev=/dev/sr0 -msinfo)
	 $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
	 $ load_opts=
	 $ test	-n "$msinfo" &&	load_opts="-M /dev/sr0 -C $msinfo"
	 $ xorrisofs $load_opts	-root /session2	-old-root /session1 \
	   -o -	--for_backup -m	'*.o' -m '*.swp' \
	   -V PROJ_MAIL_"$(date	'+%Y_%m_%d_%H%M%S')" -graft-points \
	   /projects=/home/thomas/projects \
	   /personal_mail=/home/thomas/personal_mail \
	   | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti	-eject -
       With  the third session,	option -old-root refers	to /session2.  The new
       -root is	/session3. And so on.

   Create bootable images for PC-BIOS and EFI
       The SYSLINUX/ISOLINUX boot loader suite is popular for booting PC-BIOS.
       The ISOLINUX wiki prescribes to create on disk  a  directory  ./CD_root
       and  to	copy  all  desired files underneath that directory. Especially
       file isolinux.bin shall be copied to ./CD_root/isolinux/isolinux.bin  .
       This is the boot	image file.
       The prescribed mkisofs options can be used unchanged with xorrisofs:
	 $ xorrisofs -o	output.iso \
	     -b	isolinux/isolinux.bin -c isolinux/boot.cat \
	     -no-emul-boot -boot-load-size 4 -boot-info-table \
	     ./CD_root
       Put it on CD by a burn program. E.g.:
	 $ xorriso -as cdrecord	-v dev=/dev/sr0	blank=as_needed	output.iso

       The image from above example will boot from CD, DVD or BD, but not from
       USB  stick or other hard-disk-like devices. This	can be done by help of
       an  isohybrid  MBR.  Syslinux  provides	matching  template  files   as
       isohdp[fp]x*.bin	. E.g. /usr/lib/syslinux/isohdpfx.bin .
       If   a	few   hundred	KB   of	  size	do  not	 matter,  then	option
       -partition_offset can  be  used	to  create  a  partition  table	 where
       partition 1 starts not at block 0. This facilitates later manipulations
       of the USB stick	by tools for partitioning and formatting.
       The  image  from	the following example will be prepared for booting via
       MBR and its first partition will	start at hard disk block 64.
       It will also boot from optical media.
	 $ xorrisofs -o	output.iso \
	     -b	isolinux/isolinux.bin -c isolinux/boot.cat \
	     -no-emul-boot -boot-load-size 4 -boot-info-table \
	     -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
	     -partition_offset 16 \
	     ./CD_root
       Become superuser	and copy the image to the  unpartitioned  base	device
       file  of	 the  USB  stick.  On  GNU/Linux  this	is  e.g. /dev/sdb, not
       /dev/sdb1.
       CAUTION:	This will overwrite any	partitioning on	the USB	stick and make
       remaining data unaccessible.
       So first	make sure you got the correct address of the intended  device.
       E.g. by reading 100 MiB data from it and	watching it blinking:
	 # dd bs=2K if=/dev/sdb	count=50K >/dev/null
       Now copy	the image onto it
	 # dd bs=2K if=output.iso of=/dev/sdb

       Now for EFI:
       The  boot  image	 file  has to be the image of an EFI System Partition,
       i.e. a FAT filesystem with directory /EFI/BOOT and boot files with  EFI
       prescribed  names:  BOOTIA32.EFI	for 32 bit x86,	BOOTx64.EFI for	64 bit
       AMD/x86 (in UEFI-2.4 there is indeed a lower  case  "x"),  BOOTAA64.EFI
       for  64	bit  ARM. The software in the FAT filesystem should be able to
       find and	inspect	the ISO	filesystem for boot loader  configuration  and
       start  of operating system. GRUB2 program grub-mkimage can produce such
       a FAT filesystem	with suitable content, which then uses	further	 GRUB2
       software	from the ISO filesystem.
       EFI  boot  equipment  may be combined with above	ISOLINUX isohybrid for
       PC-BIOS in a not	really UEFI-2.4	compliant way, which  obviously	 works
       well.  It  yields  MBR  and  GPT	 partition  tables,  both  with	nested
       partitions.  Assumed  the  EFI  System  Partition  image	 is  ready  as
       ./CD_root/boot/grub/efi.img,  add  the  following  options  before  the
       directory address ./CD_root:
	     -eltorito-alt-boot	-e 'boot/grub/efi.img' -no-emul-boot \
	     -isohybrid-gpt-basdat \
       More compliant with UEFI-2.4 is to decide for either MBR	or GPT and  to
       append  a copy of the EFI System	Partition in order to avoid overlap of
       ISO partition and EFI partition.	Here for MBR:
	     -eltorito-alt-boot	-e 'boot/grub/efi.img' -no-emul-boot \
	     -append_partition 2 0xef ./CD_root/boot/grub/efi.img \
       The resulting ISOs are supposed to boot	from  optical  media  and  USB
       stick.	One may	omit option -eltorito-alt-boot if no option -b is used
       to make the ISO bootable	via PC-BIOS.

       For ISOs	with pure GRUB2	boot equipment	consider  to  use  GRUB2  tool
       grub-mkrescue as	frontend to xorrisofs.

       If  you	have  a	bootable ISO filesystem	and want to know its equipment
       plus a proposal how to reproduce	it, try:
	 $ xorriso -hfsplus on -indev IMAGE.iso	\
	     -report_el_torito plain -report_system_area plain \
	     -print "" -print "======= Proposal	for xorrisofs options:"	\
	     -report_el_torito as_mkisofs

FILES
   Startup files:
       If not --no_rc is given as the first argument then  xorrisofs  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  xorrisofs  options
       but as generic xorriso commands.	See man	xorriso.

       After  the  xorriso startup files, the program tries one	by one to open
       for reading:
	  ./.mkisofsrc
	  $MKISOFSRC
	  $HOME/.mkisofsrc
	  $(dirname $0)/.mkisofsrc
       On success it interprets	the file content  and  does  not  try  further
       files.	The  last  address  is	used  only  if	start argument 0 has a
       non-trivial dirname.
       The reader currently interprets the following NAME=VALUE	pairs:
	APPI default for -A
	PUBL default for -publisher
	SYSI default for -sysid
	VOLI default for -V
	VOLS default for -volset
       Any other lines will be silently	ignored.

ENVIRONMENT
       The following environment variables influence the program behavior:
       HOME is used to find xorriso and	mkisofs	startup	files.
       MKISOFSRC may be	used to	point the program to a mkisofs startup file.
       SOURCE_DATE_EPOCH belongs to the	specs of reproducible-builds.org.   It
       is supposed to be either	undefined or to	contain	a decimal number which
       tells the seconds since january 1st 1970. If it contains	a number, then
       it  is  used  as	time value to set the default of --modification-date=.
       --gpt_disk_guid	defaults  to  "modification-date".   The  default   of
       --set_all_file_dates  is	 then  "set_to_mtime".	Further	the "now" time
       for ISO nodes without disk source is then set to	the  SOURCE_DATE_EPOCH
       value.
       Startup	 files	 and  program  options	can  override  the  effect  of
       SOURCE_DATE_EPOCH.

SEE ALSO
       For generic xorriso command mode
	      xorriso(1)

       For the cdrecord	emulation of xorriso
	      xorrecord(1)

       For mounting xorriso generated ISO 9660 images (-t iso9660)
	      mount(8)

       Other programs which produce ISO	9660 images
	      mkisofs(8), genisoimage(8)

       Programs	which burn sessions to optical media
	      growisofs(1), cdrecord(1), wodim(1), cdrskin(1), xorriso(1)

       ACL and xattr
	      getfacl(1), setfacl(1), getfattr(1), setfattr(1)

       MD5 checksums
	      md5sum(1)

       On FreeBSD the commands for xattr and MD5 differ
	      getextattr(8), setextattr(8), md5(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
       xorrisofs is in part based on  work  by	Vreixo	Formoso	 who  provides
       libisofs	 together  with	Mario Danic who	also leads the libburnia team.
       Vladimir	Serbinenko contributed the HFS+	filesystem  code  and  related
       knowledge.
       Compliments  towards  Joerg  Schilling whose cdrtools served me for ten
       years.

			  Version 1.5.6, Jun 07, 2023		  XORRISOFS(1)

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

home | help