1XORRISOFS(1)                General Commands Manual               XORRISOFS(1)
2
3
4

NAME

6       xorrisofs -  Emulation of ISO 9660 program mkisofs by program xorriso
7

SYNOPSIS

9       xorrisofs [ options ] [-o filename ] pathspec [pathspecs ...]
10

DESCRIPTION

12       xorrisofs  produces Rock Ridge enhanced ISO 9660 filesystems and add-on
13       sessions  to  such  filesystems.  Optionally  it  can  produce   Joliet
14       directory trees too.
15
16       xorrisofs understands options of program mkisofs from cdrtools by Joerg
17       Schilling.  Its implementation is part of program xorriso which  shares
18       no source code with cdrtools.
19
20   ISO 9660, Rock Ridge, Joliet, HFS+:
21       ISO  9660  (aka ECMA-119) is a read-only filesystem that is mainly used
22       for optical media CD, DVD, BD, but may also  reside  on  other  storage
23       devices  like  disk  files, USB sticks or disk partitions. It is widely
24       readable by many operating systems and by boot facilities  of  personal
25       computers.
26       ISO  9660  describes  directories  and  data  files  by very restricted
27       filenames with no distinction  of  upper  case  and  lower  case.   Its
28       metadata do not comply to fundamental POSIX specifications.
29       Rock Ridge is the name of a set of additional information which enhance
30       an ISO 9660 filesystem so that  it  can  represent  a  POSIX  compliant
31       filesystem  with  ownership,  access  permissions,  symbolic links, and
32       other attributes.  Rock Ridge allows filenames of up to 255  bytes  and
33       paths of up to 1024 bytes.
34       xorrisofs  produces  Rock  Ridge information by default. It is strongly
35       discouraged to disable this feature.
36       Joliet is the name of  an  additional  directory  tree  which  provides
37       filenames  up  to  64  characters  encoded as UTF-16.  A Joliet tree is
38       mainly interesting for reading the ISO image by  operating  systems  of
39       Microsoft  Corporation.   Production  of  this  directory  tree  may be
40       enabled by option -J.
41       ISO 9660:1999 is  the  name  of  an  additional  directory  tree  which
42       provides  longer  filenames.  It allows single file names to have up to
43       207 characters.  It might be of use with  some  older  computer  system
44       boot  facilities  which  read  neither  Rock  Ridge nor Joliet but need
45       longer filenames nevertheless.  Production of this directory  tree  may
46       be enabled by option -iso-level 4.
47       HFS+ is the name of a filesystem which is normally used for writing and
48       reading on hard disks and similar devices. It is possible  to  embed  a
49       HFS+ partition into the emerging ISO 9660 image and to mark it by Apple
50       Partition Map entries. This interferes with  options  which  copy  data
51       into  the first 32 KiB of the ISO image, like -G or -isohybrid-mbr. See
52       option -hfsplus.
53       The main purpose for having an embedded HFS+ partition  is  booting  of
54       certain models of Apple computers.
55
56   Inserting files into the ISO image:
57       xorrisofs deals with two kinds of file addresses:
58       disk_path is a path to an object in the local filesystem tree.
59       iso_rr_path  is  the  Rock  Ridge  address  of a file object in the ISO
60       image.  If no Rock Ridge information shall be  stored  in  an  emerging
61       ISO, then the names will get mapped to ISO 9660 names of limited length
62       and character set.
63
64       A program argument is handled as a pathspec, if it is not recognized as
65       original  mkisofs  option  or  additional xorrisofs option.  A pathspec
66       depicts an input file object by a disk_path.  If  option  -graft-points
67       is  not  present,  then  the  behavior  depends  on  the  file  type of
68       disk_path. Directories get merged  with  the  /-directory  of  the  ISO
69       image. Files of other types get copied into the /-directory.
70       If  -graft-points is present then each pathspec gets split at the first
71       occurrence of the =-character.  The part  before  the  =  is  taken  as
72       target,  i.e. the iso_rr_path for the file object in the ISO image. The
73       part after the first = is taken as source, i.e. the  disk_path  of  the
74       input object.
75       It  is  possible  to  make  =-characters  part  of  the  iso_rr_path by
76       preceding  them  with  a  \-character.  The  same  must  be  done   for
77       \-characters which shall be part of the iso_rr_path.
78
79       If the source part of the pathspec leads to a directory, then all files
80       underneath this directory get inserted into  the  image,  too.   It  is
81       possible  to  exclude  particular  files from being inserted by help of
82       option -m.
83       In  case  that  target  already  exists,  the  following  rules  apply:
84       Directories  and  other  files  may overwrite existing non-directories.
85       Directories get merged with existing directories.  Non-directories  may
86       not overwrite existing directories.
87
88   Relation to program xorriso:
89       xorrisofs  is  actually  a  command mode of program xorriso, which gets
90       entered either by xorriso command "-as  mkisofs"  or  by  starting  the
91       program  by  one of the names "xorrisofs", "mkisofs", "genisoimage", or
92       "genisofs".
93       This command mode can be left by argument "--" which leads  to  generic
94       xorriso command mode. See man xorriso for its description.
95
96       xorriso performs image reading and writing by help of libburn, which is
97       mainly intended for optical drives, but also operates on all POSIX file
98       types except directories.
99       The  program  messages  call any image file a "drive". File types which
100       are not supported for reading are reported  as  "blank".  The  reported
101       free media space may be quite fictional.
102       Nevertheless xorrisofs does not operate directly on optical drives, but
103       rather forces libburn to regard them as general device files.   So  for
104       writing  of  sequential optical media (CD, DVD-R, DVD+R, BD-R) one will
105       have to use a burn program. E.g the cdrecord emulation of xorriso.  See
106       EXAMPLES.
107
108

OPTIONS

110       Image loading:
111
112       The  following options control loading of an existing ISO image for the
113       purpose of preparing a suitable add-on session.  If  they  are  missing
114       then a new image is composed from scratch.
115
116       -M disk_path
117              Set the path from which to load the existing ISO image directory
118              tree on which to base the upcomming  directory  tree  as  add-on
119              session.   The  path  must lead to a random-access readable file
120              object.  On GNU/Linux: regular data files or block device files.
121              A   special   kind   of   pseudo   disk_path   has   the    form
122              "/dev/fd/"number.   It depicts the open file descriptor with the
123              given number, regardless whether the operating  system  supports
124              this feature by file nodes in /dev/fd or not.  E.g. /dev/fd/3 is
125              file descriptor 3 which was opened by  the  program  that  later
126              started xorriso.
127
128       -prev-session disk_path
129              Alias of -M.
130
131       -dev disk_path
132              Alias of -M.
133
134       -C last_session_start,next_writeable_address
135              Set  the  2  KiB  block address last_session_start from where to
136              read the ISO image out of the file given by option -M.
137              Separated by a comma, set the  next_writeable_address  to  which
138              the add-on session will finally be written. Decisive is actually
139              the block address which the intended readers will have to use as
140              superblock address on the intended medium.
141              Both  values  can be inquired from optical media by help of burn
142              programs and cdrecord option -msinfo. xorriso itself can  obtain
143              it  in its cdrecord emulation. Do not let it load the drive, but
144              rather do this manually or by a program like dd  which  reads  a
145              few bytes. Only then it is sure that the device driver knows the
146              true readable size of the medium.
147                dd if=/dev/... count=1 >/dev/null 2>&1
148                values=$(xorriso -as cdrecord dev=/dev/... -msinfo)
149                echo $values
150              Option -C may be used without option -M to create an  ISO  image
151              from scratch and prepare it for being finally written to a block
152              address other than 0. Parameter last_session_start must then  be
153              set to 0.
154
155       -cdrecord-params last_session_start,next_writeable_address
156              Alias of -C.
157
158       Settings for file insertion:
159
160       -path-list disk_path
161              Read  pathspecs  line-by-line  from  disk_file  and  insert  the
162              depicted file objects into the ISO image. If  disk_path  is  "-"
163              then read the pathspecs from standard input.
164
165       --quoted_path_list disk_path
166              Like  option  -path-list  but  reading  quoted words rather than
167              plain lines.  Whitespace outside of quotes will be discarded. On
168              the  other  hand  it  is  possible  to represent pathspecs which
169              contain newline characters.
170              The double quotation mark " and the single quotation mark '  can
171              be  used  to  enclose  whitespace and make it part of pathspecs.
172              Each mark type can enclose  the  marks  of  the  other  type.  A
173              trailing  backslash  \  outside  quotations or an open quotation
174              cause the next input line to be appended.
175
176       -f
177              Resolve symbolic links on  disk  rather  than  storing  them  as
178              symbolic links in the ISO image.
179
180       -follow-links
181              Alias of -f.
182
183       -graft-points
184              Enable  interpretation of input file pathspecs as combination of
185              iso_rr_path and disk_path, separated by a =-character.
186
187       -m disk_pattern
188              Exclude files from  being  inserted  into  the  image.  Silently
189              ignored are those files of which the disk_path matches the given
190              shell parser pattern.  If no /-character is part of the pattern,
191              then it gets matched against the leaf name of the disk file.
192              It is possible to give more than one -m option.
193
194       -exclude
195              Alias of -m.
196
197       -x
198              Alias of -m.
199
200       -old-exclude
201              Alias of -m.
202
203       -exclude-list disk_path
204              Perform  -m  using  each  line out of file disk_path as argument
205              disk_pattern.
206
207       -z
208              Enable recognition and proper processing  of  zisofs  compressed
209              files  as  produced  by  program  mkzftree. These files will get
210              equipped with the necessary meta data so  that  a  Linux  kernel
211              will  recognize  them  and deliver their content in uncompressed
212              form.
213
214       -transparent-compression
215              Alias of -z.
216
217       -root iso_rr_path
218              Insert  all  files  under  the  given  iso_rr_path.  If   option
219              -graft-points  is  given,  then iso_rr_path is prepended to each
220              target part of a pathspec.
221              The default for -root is "/".
222
223       -old-root iso_rr_path
224              Enable incremental insertion of files  into  the  loaded  image.
225              The effective target and source addresses of given pathspecs get
226              compared whether the target already exists in the ISO image  and
227              is  still  identical  to the source on disk. Metadata in the ISO
228              image will get adjusted, if they differ from those on disk.  New
229              files  and  files  with  changed  content  will get newly added.
230              Target files which do not exist in any of the according pathspec
231              sources will get removed from the ISO directory tree.
232              If  the  effective setting of -root differs from the iso_rr_path
233              given with -old-root, then the files  underneath  the  -old-root
234              directory  get  cloned  underneath  the -root directory. Cloning
235              happens before file comparison.
236
237       --old-root-no-ino
238              Disable recording and use of disk inode  numbers.   If  no  disk
239              inode  numbers  are recorded, then option -old-root will have to
240              read disk file content and compare it with the MD5 checksum that
241              is recorded in the ISO image.
242              With  recorded  disk  inode  numbers and with credible ctime and
243              mtime, it is possible to detect potential changes in the content
244              without  actually  reading  it.   A loophole remains if multiple
245              different filesystems may get mounted  at  the  same  directory,
246              like  it is habit with /mnt.  In this case one has to use option
247              --old-root-devno  or  disable  the  inode  number  shortcut   by
248              --old-root-no-ino.
249
250       --old-root-devno
251              Enable  comparison  of  recorded  device  numbers  together with
252              recorded inode numbers. This works only  with  good  old  stable
253              device  numbers  which  get  out of fashion, regrettably. If the
254              hard disk has a different device number after each reboot,  then
255              this  comparison  will see all files as changed and thus prevent
256              any incremental size saving.
257
258       --old-root-no-md5
259              Disable recording  and  use  of  MD5  checksums  for  data  file
260              content.   If  neither  checksums and nor disk inode numbers are
261              recorded, then option -old-root will have to read ISO image file
262              content when comparing it with disk file content.
263
264       Settings for image production:
265
266       -o disk_path
267              Set  the output file address for the emerging ISO image.  If the
268              address exists as regular file, it will be truncated to length 0
269              when  image  production  begins.  It  may  not  already exist as
270              directory.  If it does not exist yet then its  parent  directory
271              must exist and a regular file will get created.
272              A    special   kind   of   pseudo   disk_path   has   the   form
273              "/dev/fd/"number.  It depicts the open file descriptor with  the
274              given  number,  regardless whether the operating system supports
275              this feature by file nodes in /dev/fd or not.  E.g. /dev/fd/4 is
276              file  descriptor  4  which  was opened by the program that later
277              started xorriso.
278              Default is standard output (/dev/fd/1) which may also be set  by
279              disk_path "-".
280
281       -output disk_path
282              Alias of -o.
283
284       --stdio_sync "on"|"off"|"end"|number
285              Set  the  number of bytes after which to force output to disk in
286              order to keep the memory from being clogged with lots of pending
287              data for slow devices. "on" is the same as "16m".  Forced output
288              can be disabled by "off", or be delayed by "end" until all  data
289              are  produced.  If  a number is chosen, then it must be at least
290              64k.
291              The default  with  xorriso  mkisofs  emulation  is  --stdio_sync
292              "off".
293              xorriso  uses  an  inner fifo buffer with default size 4 MiB. So
294              forcing  the  operating  system  i/o  cache  to  disk  does  not
295              necessarily  block  the  simultaneous  production  of more image
296              content.
297
298       --emul-toc
299              Write  a  second  superblock  with  the   first   session   into
300              random-access  files.  If  further sessions get appended and the
301              first superblock gets updated, then the second  superblock  will
302              not  be  overwritten. So it is still possible to mount the first
303              session and to find the start blocks of the further sessions.
304              The   price   is   64   KiB   extra   space   consumption.    If
305              -partition_offset is non-zero, then it is 128 KiB plus twice the
306              partition setup.
307
308       --no-emul-toc
309              Do not write a second superblock with  the  first  session  into
310              random-access files.
311              This is the default.
312
313       --sort-weight weight_number iso_rr_path
314              Attribute  a  LBA weight number to regular files. If iso_rr_path
315              leads to a directory then all regular files underneath will  get
316              the weight_number.
317              The weight_number may range from -2147483648 to 2147483647.  The
318              higher it is, the lower will be the block address  of  the  file
319              data  in  the  emerging ISO image.  Currently the El Torito boot
320              catalog has a hardcoded weight of 1 billion.  Normally it should
321              occupy  the  block with the lowest possible address.  Data files
322              get added or loaded with initial weight 0. Boot image files have
323              a default weight of 2.
324
325       --sort-weight-list disk_path
326              Read  pairs  of weight number and iso_rr_path from a file of the
327              local filesystem. Apply each pair like with --sort-weight.
328              Only the last --sort-weight-list or --sort-weight-patterns of  a
329              xorrisofs run gets into effect.
330              The  weight  number  is  read  from  the start of the line.  The
331              iso_rr_path part of an input line begins immediately  after  the
332              first blank or tab character of the line.
333              Notes  for  the case that this feature is used within a sequence
334              of generic xorriso commands (not an issue with  a  pure  mkisofs
335              emulation run):
336              The  addressed files must already be in the ISO image model when
337              you execute
338                -as mkisofs --sort-weight-list disk_path --
339              Several such commands may be used to apply more than one  weight
340              file.
341              Data  files  which  are  loaded  by  -indev or -dev get a weight
342              between 1 and 2 exp 28 = 268,435,456, depending on  their  block
343              address.  This  shall keep them roughly in the same order if the
344              write method of modifying is applied.
345
346       --sort-weight-patterns disk_path
347              Like --sort-weight-list ,  but  expanding  the  iso_rr_paths  as
348              shell   parser  patterns  and  applying  --sort-weight  to  each
349              matching file.
350
351       -uid number|name
352              Use the given number or locally existing user name as  owner  id
353              of  all files and directories in the emerging filesystem.  Empty
354              name or name "-" revoke this feature.
355
356       -gid number|name
357              Use the given number or locally existing group name as group  id
358              of  all files and directories in the emerging filesystem.  Empty
359              name or name "-" revoke this feature.
360
361       -dir-mode mode
362              Set the access permissions for all directories in the  image  to
363              the  given  mode  which is either an octal number beginning with
364              "0" or  a  comma  separated  list  of  statements  of  the  form
365              [ugoa]*[+-=][rwxst]* . E.g. ug=rx,a-rwx
366
367       -file-mode mode
368              Like -dir-mode but for all regular data files in the image.
369
370       -pad
371              Add  300  KiB  to  the  end  of  the  produced  ISO  image. This
372              circumvents possible read errors from ISO images which have been
373              written  to  CD  media  in  TAO  mode.  The additional bytes are
374              claimed as part of the ISO image if not --emul-toc is given.
375              Option -pad is the default.
376
377       -no-pad
378              Disable padding of 300 KiB to the end of the produced ISO image.
379              This is safe if the image is not meant to be written on CD or if
380              it gets written to CD as only track in write mode SAO.
381
382       --old-empty
383              Use the old way of of giving block addresses  in  the  range  of
384              [0,31] to files with no own data content. The new way is to have
385              a dedicated block to which all such files will point.
386
387       Settings for standards compliance:
388
389       -iso-level number
390              Specify the ISO 9660 version which defines  the  limitations  of
391              file  naming  and data file size. The naming restrictions do not
392              apply to the Rock Ridge names but only to the low-level ISO 9660
393              names.  There are three conformance levels:
394              Level  1  allows ISO names of the form 8.3 and file size up to 4
395              GiB - 1.
396              Level 2 allows ISO names with up to 32 characters and file  size
397              up to 4 GiB - 1.
398              Level 3  allows ISO names with up to 32 characters and file size
399              of up to 400 GiB - 200 KiB. (This size limitation is set by  the
400              xorriso  implementation  and  not  by ISO 9660 which would allow
401              nearly 8 TiB.)
402              Pseudo-level 4 enables production of an additional ISO 9660:1999
403              directory tree.
404
405       -disallow_dir_id_ext
406              Do  not  follow  a bad habit of mkisofs which allows dots in the
407              ISO names of directories.  On  the  other  hand,  some  bootable
408              GNU/Linux images depend on this bad habit.
409
410       -U
411              This  option  allows  ISO  file  names  without dot and up to 37
412              characters, ISO file paths longer than 255 characters,  and  all
413              ASCII  characters  in file names. Further it omits the semicolon
414              and the version numbers at the end of ISO names.
415              This all violates ISO 9660 specs.
416
417       -untranslated-filenames
418              Alias of -U.
419
420       -untranslated_name_len number
421              Allow ISO file names  up  to  the  given  number  of  characters
422              without  any character conversion. The maximum number is 96.  If
423              a file name has more characters, then image production will fail
424              deliberately.
425              This violates ISO 9660 specs.
426
427       -allow-lowercase
428              Allow lowercase character in ISO file names.
429              This violates ISO 9660 specs.
430
431       -relaxed-filenames
432              Allow  nearly  all  7-bit  characters  in  ISO  file names.  Not
433              allowed are 0x0 and  '/'.  If  not  option  -allow-lowercase  is
434              given, then lowercase letters get converted to uppercase.
435              This violates ISO 9660 specs.
436
437       -d
438              Do not add trailing dot to ISO file names without dot.
439              This violates ISO 9660 specs.
440
441       -omit-period
442              Alias of -d.
443
444       -l
445              Allow up to 31 characters in ISO file names.
446
447       -full-iso9660-filenames
448              Alias of -l.
449
450       -max-iso9660-filenames
451              Allow up to 37 characters in ISO file names.
452              This violates ISO 9660 specs.
453
454       -N
455              Omit  the  semicolon  and  the version numbers at the end of ISO
456              names.
457              This violates ISO 9660 specs.
458
459       -omit-version-number
460              Alias of -N.
461
462       Settings for standards extensions:
463
464       -R
465              With  mkisofs  this  option  enables  Rock   Ridge   extensions.
466              xorrisofs  produces  them by default. It is strongly discouraged
467              to disable them by option --norock.
468
469       -rock
470              Alias of -R.
471
472       -r
473              Enable Rock Ridge and set user and group id of all files in  the
474              ISO   image   to  0.   Grant  r-permissions  to  all.  Deny  all
475              w-permissions.  If any x-permission is set,  grant  x-permission
476              to all.  Remove s-bit and t-bit.
477              These  attribute  changes  stay  delayed until mkisofs emulation
478              ends. Within the same -as mkisofs emulation command they can  be
479              revoked  by  a  subsequent  option  --norock.  For compatibility
480              reasons, option -R does not revoke the changes ordered by -r.
481
482       -rational-rock
483              Alias of -r.
484
485       --norock
486              This option disables the production of Rock Ridge extensions for
487              the  ISO  9660  file  objects. The multi-session capabilities of
488              xorrisofs depend much on the naming fidelity of Rock  Ridge.  So
489              it  is strongly discouraged to disable it by this option, except
490              for the special use case to revoke the effect of -r by:
491               --norock -R
492
493       --set_all_file_dates timestring
494              Set mtime, atime, and ctime of all files and directories to  the
495              given time.
496              Valid  timestring  formats  are:  'Nov  8  14:51:13  CET  2007',
497              110814512007.13, 2007110814511300. See also --modification-date=
498              and man xorriso, Examples of input timestrings.
499              If the timestring is "set_to_mtime", then the atime and ctime of
500              each file and directory get set to  the  value  found  in  their
501              mtime.
502              These  actions  stay delayed until actual ISO production begins.
503              Up to then they can  be  revoked  by  --set_all_file_dates  with
504              empty timestring or timestring "default".
505              The  timestamps of the El Torito boot catalog file get refreshed
506              when  the  ISO  is  produced.  They   can   be   influenced   by
507              --modification-date=.
508
509       -file_name_limit number
510              Set  the  maximum permissible length for file names in the range
511              of 64 to 255.  Path components which are longer than  the  given
512              number   will  get  truncated  and  have  their  last  33  bytes
513              overwritten by a colon ':' and the hex representation of the MD5
514              of  the  first 4095 bytes of the whole oversized name. Potential
515              incomplete  UTF-8  characters  will  get  their  leading   bytes
516              replaced by '_'.
517              Linux  kernels  up  to at least 4.1 misrepresent names of length
518              254 and 255.  If you expect such names in  or  under  disk_paths
519              and plan to mount the ISO by such Linux kernels, consider to set
520              -file_name_limit 253.
521
522       -D     The standard ECMA-119 demands that no path in  the  image  shall
523              have more than 8 name components or 255 characters. Therefore it
524              would be necessary to move deeper directory trees  to  a  higher
525              directory.  Rock  Ridge  offers  an  opportunity  to  let  these
526              relocated directories appear at their  original  deep  position,
527              but  this feature might not be implemented properly by operating
528              systems which mount the image.
529              Option -D disables this  deep  directory  relocation,  and  thus
530              violates ISO 9660 specs.
531              xorrisofs  has  -D  set  by default. If given explicitly then it
532              overrides the options -rr_reloc_dir and -hide-rr-moved.
533
534       -disable-deep-relocation
535              Alias of -D.
536
537       -rr_reloc_dir name
538              Enable  the  relocation  of  deep  directories  and  thus  avoid
539              ECMA-119  file  paths  of  more  than  8  name components or 255
540              characters. Directories which lead to such file paths  will  get
541              moved  to  a  directory  in the root directory of the image. Its
542              name gets set by this option.  It is permissible to use the root
543              directory itself.
544              The  overall  directory  tree  will  appear originally deep when
545              interpreted as Rock Ridge tree. It will appear as re-arranged if
546              only ECMA-119 information is considered.
547              If  the given relocation target directory does not already exist
548              when image production begins,  then  it  will  get  created  and
549              marked  for  Rock  Ridge  as  relocation  artefact.  At least on
550              GNU/Linux it will not be displayed in mounted Rock Ridge images.
551              The name must not  contain  a  '/'  character  after  its  first
552              character and it must not be longer than 255 bytes.
553              This option has no effect if option -D is present.
554
555       -hide-rr-moved
556              Alias of -rr_reloc_dir "/.rr_moved"
557
558       --for_backup
559              Enable all options which improve backup fidelity:
560              --acl, --xattr-any, --md5, --hardlinks.
561              If   you  later  restore  a  backup  with  xattr  from  non-user
562              namespaces, then make sure that the target operating system  and
563              filesystem  know  what  these attributes mean. Possibly you will
564              need  administrator  privileges  to  record  or   restore   such
565              attributes.  At  recording  time,  xorriso  will try to tolerate
566              missing privileges and just record what is readable.
567              Option  -xattr  after  option  -for_backup   excludes   non-user
568              attributes from being recorded.
569
570       --acl
571              Enable  recording  and loading of ACLs from GNU/Linux or FreeBSD
572              (see man getfacl, man acl).  They will not  be  in  effect  with
573              mounted  ISO  images.  But  xorriso can restore them on the same
574              systems when extracting files from the ISO image.
575
576       --xattr
577              Enable recording and loading of GNU/Linux  or  FreeBSD  extended
578              attributes in user namespace (see man getfattr and man attr, man
579              getextattr and man 9 extattr, respectively).  They will  not  be
580              in  effect with mounted ISO images. But xorriso can restore them
581              on the same systems when extracting files from the ISO image.
582
583       --xattr-any
584              Enable recording and loading of GNU/Linux  or  FreeBSD  extended
585              attributes  in  all  namespaces.  This  might  need adminstrator
586              privileges, even if the owner of the disk file tries to read the
587              attributes.
588
589       --md5
590              Enable  recording of MD5 checksums for the overall ISO image and
591              for each single data file in the image. xorriso  can  check  the
592              content  of  an  ISO  image  with  these sums and raise alert on
593              mismatch.  See man xorriso, options  -check_media,  check_md5_r.
594              xorriso can print recorded MD5 checksums. E.g. by:
595               -find / -exec get_md5
596
597       --hardlinks
598              Enable  loading and recording of hardlink relations.  Search for
599              families of iso_rr files which stem from  the  same  disk  file,
600              have  identical content filtering and have identical properties.
601              The members of each family get the same inode number in the  ISO
602              image.
603              Whether these numbers are respected at mount time depends on the
604              operating system. xorriso  can  create  hardlink  families  when
605              extracting files from the ISO image.
606
607       --scdbackup_tag disk_path record_name
608              Append a scdbackup checksum record to the image. This works only
609              if the parameter next_writeable_address of option -C  is  0  and
610              --md5  is  enabled.   If  disk_path is not an empty string, then
611              append a scdbackup checksum record to  the  end  of  this  file.
612              record_name is a word that gets part of tag and record.
613              Program  scdbackup_verify will recognize and verify tag and file
614              record.
615              An empty record_name disables this feature.
616
617       -J
618              Enable the production of an  additional  Joliet  directory  tree
619              along with the ISO 9660 Rock Ridge tree.
620
621       -joliet
622              Alias of -J.
623
624       -joliet-long
625              Allow  103  characters in Joliet file names rather than 64 as is
626              prescribed by the specification. Allow Joliet paths longer  than
627              the prescribed limit of 240 characters.
628              Oversized  names  get  truncated. Without this option, oversized
629              paths get excluded from the Joliet tree.
630
631       -joliet-utf16
632              Encode Joliet file names in UTF-16BE  rather  than  UCS-2.   The
633              difference is with characters which are not present in UCS-2 and
634              get encoded in UTF-16 by 2 words of 16  bit  each.   Both  words
635              then stem from a reserved subset of UCS-2.
636
637       -hfsplus
638              Enable  the  production  of an additional HFS+ filesystem inside
639              the ISO 9660 image and mark it  by  Apple  Partition  Map  (APM)
640              entries in the System Area, the first 32 KiB of the image.
641              This  may  collide  with options like -G or -isohybrid-mbr which
642              submit user data for inclusion in the same address  range.   The
643              first  8  bytes  of  the  System Area get overwritten by { 0x45,
644              0x52, 0x08 0x00, 0xeb, 0x02, 0xff, 0xff } which can be  executed
645              as x86 machine code without negative effects.  So if an MBR gets
646              combined with this  feature,  then  its  first  8  bytes  should
647              contain no essential commands.
648              The  next blocks of 2 KiB in the System Area will be occupied by
649              APM entries.  The first one covers the part  of  the  ISO  image
650              before  the  HFS+  filesystem metadata. The second one marks the
651              range from HFS+ metadata to the end of  file  content  data.  If
652              more  ISO  image  data follow, then a third partition entry gets
653              produced. Other features of xorriso might  cause  the  need  for
654              more APM entries.
655              Be  aware  that  HFS+ is case-insensitive although it can record
656              file names with upper-case and  lower-case  letters.  Therefore,
657              file  names  from  the  iso_rr name tree may collide in the HFS+
658              name tree. In this case they get changed  by  adding  underscore
659              characters  and counting numbers. In case of very long names, it
660              might be necessary to map them to "MANGLED_...".
661
662       -hfsplus-serial-no
663              Set a string of 16 digits "0" to "9" and  letters  "a"  to  "f",
664              which  will  be used as unique serial number of an emerging HFS+
665              filesystem.
666
667       -hfsplus-block-size number
668              Set the allocation block size to be  used  when  producing  HFS+
669              filesystems.  Permissible  are 512, 2048, or 0.  The latter lets
670              the program decide.
671
672       -apm-block-size number
673              Set the block size to be used when describing partitions  by  an
674              Apple Partition Map. Permissible are 512, 2048, or 0. The latter
675              lets the program decide.
676              Note that size 512 is not compatible with production of GPT, and
677              that  size  2048  will  not  be mountable -t hfsplus at least by
678              older Linux kernels.
679
680       -hfsplus-file-creator-type creator type iso_rr_path
681              Set the HFS+ creator and  type  attributes  of  a  file  in  the
682              emerging image.  These are two codes of 4 characters each.
683
684       -hfs-bless-by blessing iso_rr_path
685              Issue a HFS+ blessing. They are roles which can be attributed to
686              up to four directories and a data file:
687              "ppc_bootdir",  "intel_bootfile",  "show_folder",  "os9_folder",
688              "osx_folder".
689              They may be abbreviated as "p", "i", "s", "9", and "x".
690              Each  such  role  can  be attributed to at most one file object.
691              "intel_bootfile" is the one that would apply to a data file. All
692              others  apply to directories.  No file object can bear more than
693              one blessing.
694
695       -hfs-bless disk_path
696              Issue HFS+ blessing "ppc_bootdir" to the directory  which  stems
697              from the directory disk_path in the local filesystem tree.
698              This  works  only  if there is at least one data file underneath
699              the directory.  disk_path can become  ambiguous  if  files  from
700              different  local  filesystem  sub-trees  are  put  into the same
701              sub-tree of the ISO image.  Consider to  use  -hfs-bless-by  "p"
702              for unambiguous addressing via iso_rr_path.
703
704       Settings for file hiding:
705
706       -hide disk_path_pattern
707              Make  files invisible in the directory tree of ISO 9660 and Rock
708              Ridge,  if  their  disk_path  matches  the  given  shell  parser
709              pattern.  The data content of such hidden files will be included
710              in the resulting image, even if they  do  not  show  up  in  any
711              directory.  But you will need own means to find nameless data in
712              the image.
713              This command does not apply to the boot catalog.
714
715       -hide-list disk_path
716              Perform -hide using each line out of file disk_path as  argument
717              disk_path_pattern.
718
719       -hide-joliet disk_path_pattern
720              Like  option  -hide  but making files invisible in the directory
721              tree of Joliet, if  their  disk_path  matches  the  given  shell
722              parser pattern.
723
724       -hide-joliet-list disk_path
725              Perform  -hide-joliet  using  each line out of file disk_path as
726              argument disk_path_pattern.
727
728       -hide-hfsplus disk_path_pattern
729              Like option -hide but making files invisible  in  the  directory
730              tree  of HFS+, if their disk_path matches the given shell parser
731              pattern.
732
733       -hide-hfsplus-list disk_path
734              Perform -hide-hfsplus using each line out of file  disk_path  as
735              argument disk_path_pattern.
736
737       ISO image ID strings:
738
739       The  following  strings  and  file  addresses get stored in the Primary
740       Volume Descriptor of the ISO9660 image. The file addresses are ISO 9660
741       paths.  These  files should have iso_rr_paths which consist only of the
742       characters [A-Z0-9_] and exactly one dot  which  separates  at  most  8
743       characters from at most 3 characters.
744
745       -V text
746              Set the Volume Id of the ISO image.  xorriso accepts any text up
747              to 32 characters, but according to rarely obeyed specs  stricter
748              rules apply:
749              Conformant   are   ASCII  characters  out  of  [A-Z0-9_].  Like:
750              "IMAGE_23"
751              Joliet allows 16 UCS-2 characters. Like: "Windows name"
752              Be aware that the volume id might get used automatically as name
753              of  the  mount  point when the medium is inserted into a playful
754              computer system.
755
756       -volid text
757              Alias of -V.
758
759       -volset text
760              Set the Volume Set Id of the ISO image.  Permissible are  up  to
761              128 characters.
762
763       -P text
764              Set  the  Publisher  Id  of the ISO image. This may identify the
765              person or organisation who specified  what  shall  be  recorded.
766              Permissible are up to 128 characters.
767
768       -publisher text
769              Alias of -P.
770
771       -A text
772              Set  the Application Id of the ISO image.  This may identify the
773              specification of how the data are recorded.  Permissible are  up
774              to 128 characters.
775              The  special text "@xorriso@" gets converted to the id string of
776              xorriso which is normally written as Preparer Id. It is a  wrong
777              tradition to write the program id as Application Id.
778
779       -appid text
780              Alias of -A.
781
782       -sysid text
783              Set the System Id of the ISO image. This may identify the system
784              which can recognize and act upon the content of the System  Area
785              in image blocks 0 to 15.  Permissible are up to 32 characters.
786
787       -p text
788              Set  the  Preparer  Id  of  the ISO image. This may identify the
789              person or other entity which controls  the  preparation  of  the
790              data  which shall be recorded. Normally this should be the id of
791              xorriso and not of the person or program which operates xorriso.
792              Please   avoid   to  change  it.   Permissible  are  up  to  128
793              characters.
794              The special text "@xorriso@" gets converted to the id string  of
795              xorriso which is default at program startup.
796
797       -preparer text
798              Alias of -p.
799
800       -abstract iso_path
801              Set  the  address  of  the  Abstract File of the ISO image. This
802              should be the ISO 9660  path  of  a  file  in  the  image  which
803              contains   an   abstract  statement  about  the  image  content.
804              Permissible are up to 37 characters.
805
806       -biblio iso_path
807              Set the address of the Biblio File of the ISO image. This should
808              be  the  ISO  9660  path  of  a file in the image which contains
809              bibliographic records.  Permissible are up to 37 characters.
810
811       -copyright iso_path
812              Set the address of the Copyright File of  the  ISO  image.  This
813              should  be  the  ISO  9660  path  of  a  file in the image which
814              contains a  copyright  statement.   Permissible  are  up  to  37
815              characters.
816
817       --modification-date=YYYYMMDDhhmmsscc
818              Set   a   timestring  that  overrides  ISO  image  creation  and
819              modification  timestamps  literally.   It  must  consist  of  16
820              decimal  digits  which  form YYYYMMDDhhmmsscc, with YYYY between
821              1970 and 2999. Time zone is GMT.  It is supposed to  match  this
822              GRUB line:
823               search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
824              E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
825              Among the influenced timestamps are: isohybrid MBR id, El Torito
826              boot catalog file, HFS+ superblock.
827
828       --application_use character|0xXY|disk_path
829              Specify the content of the Application Use field which can  take
830              at most 512 bytes.
831              If  the  parameter  of  this command is empty, then the field is
832              filled with 512 0-bytes. If it is a single  character,  then  it
833              gets  repeated  512 times.  If it begins by "0x" followed by two
834              hex digits [0-9a-fA-F], then the digits are read as  byte  value
835              which gets repeated 512 times.
836              Any  other  parameter  text  is used as disk_path to open a data
837              file and to read up to 512 bytes from it. If the file is smaller
838              than 512 bytes, then the remaining bytes in the field get set to
839              binary 0.
840
841       El Torito Bootable ISO images:
842
843       The precondition for a bootable ISO image is to have in the  ISO  image
844       the  files  of  a  boot  loader.  The  boot facilities of computers get
845       directed to such files, which usually  execute  further  program  files
846       from  the ISO image.  xorrisofs can produce several kinds of boot block
847       or boot record, which become part of the ISO image, and get interpreted
848       by the according boot facility.
849
850       An  El  Torito  boot record points the bootstrapping facility to a boot
851       catalog with one or more boot images, which are  binary  program  files
852       stored in the ISO image.  The content of the boot image files is not in
853       the scope of El Torito.
854       xorriso composes the boot catalog according to  the  boot  image  files
855       given  and  structured  by  options  -b,  -e,  -eltorito-alt-boot,  and
856       --efi-boot. Often it contains only one entry.
857       Normally the boot images are data files inside the ISO  filesystem.  By
858       special  path  "--interval:appended_partition_NNN:all::" it is possible
859       to refer to an appended partition. The number NNN gives  the  partition
860       number as used with the corresponding option -append_partition.  E.g.:
861         -append_partition 2 0xef /tmp/efi.img
862         -e --interval:appended_partition_2:all::
863       El  Torito  gets  interpreted by boot facilities PC-BIOS and EFI.  Most
864       bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB  boot  images
865       for PC-BIOS.
866       xorrisofs  supports  the  example options out of the ISOLINUX wiki, the
867       options used in GRUB script  grub-mkrescue,  and  the  example  in  the
868       FreeBSD AvgLiveCD wiki.
869
870       For  CD booting via boot facilities other than PC-BIOS and EFI, and for
871       booting from USB sticks or hard disks, see the next section  about  the
872       System Area.
873
874       -b iso_rr_path
875              Specify  the  boot  image  file  which shall be mentioned in the
876              current entry of the El Torito boot catalog. It will  be  marked
877              as suitable for PC-BIOS.
878              With  boot  images  from ISOLINUX and GRUB this option should be
879              accompanied by options -c , -no-emul-boot , -boot-load-size 4  ,
880              -boot-info-table.
881
882       -eltorito-boot iso_rr_path
883              Alias of -b.
884
885       -eltorito-alt-boot
886              Finalize  the  current  El Torito boot catalog entry and begin a
887              new one.  A boot image file and all its necessary options  shall
888              be  specified  before option -eltorito-alt-boot.  All further El
889              Torito boot options apply to the new catalog  entry.  Up  to  32
890              catalog entries are possible.
891
892       -e iso_rr_path
893              Specify  the  boot  image  file  which shall be mentioned in the
894              current entry of the El Torito boot catalog. It will  be  marked
895              as suitable for EFI.
896              Option  -e  should  be  followed  by option -no-emul-boot and no
897              other El Torito options before an eventual -eltorito-alt-boot.
898
899       --efi-boot iso_rr_path
900              Perform   -eltorito-alt-boot,   option   -e   with   the   given
901              iso_rr_path,  -no-emul-boot,  and again -eltorito-alt-boot. This
902              gesture is used  for  achieving  EFI-bootability  of  the  GRUB2
903              rescue CD.
904
905       -eltorito-platform "x86"|"PPC"|"Mac"|"efi"|0xnn|nnn
906              Set   the   Platform  Id  number  for  the  next  option  -b  or
907              -eltorito-boot.  The number may be chosen by a platform name  or
908              by  a number between 0 and 255 (0x00 and 0xFF). "x86" = 0 is for
909              PC-BIOS, "PPC" = 1 for some PowerPC systems, "Mac" = 2 for  some
910              MacIntosh  systems,  "efi" = 0xEF for EFI on modern PCs with x86
911              compatible CPUs or others.
912              If  the  new  platform  id  differs  from  the   previous   one,
913              -eltorito-alt-boot gets performed.
914
915       -boot-load-size number|"full"
916              Set the number of 512-byte blocks to be loaded at boot time from
917              the boot image in the current catalog entry.
918              Non-emulating BIOS bootimages usually need a  load  size  of  4.
919              Nevertheless  the  default setting of mkisofs is to use the full
920              size of the boot image rounded up to a multiple  of  4  512-byte
921              blocks.  This  default  may  be  explicitly enforced by the word
922              "full" instead of a number.
923              EFI boot images usually get set the number of blocks occupied by
924              the boot image file.
925              El Torito cannot represent load sizes higher than 65535.
926
927       -hard-disk-boot
928              Mark  the  boot  image  in the current catalog entry as emulated
929              hard disk.  (Not suitable for any known boot loader.)
930
931       -no-emul-boot
932              Mark the  boot  image  in  the  current  catalog  entry  as  not
933              emulating  floppy  or  hard  disk.  (This is to be used with all
934              known boot loaders.)
935              If neither -hard-disk-boot nor -no-emul-boot is given, then  the
936              boot  image will be marked as emulating a floppy.  (Not suitable
937              for any known boot loader.)
938
939       -eltorito-id text|56_hexdigits
940              Define the ID string of the boot catalog section where the  boot
941              image  will  be  listed.  If the value consists of 56 characters
942              [0-9A-Fa-f] then it is converted into 28 bytes, else  the  first
943              28  characters become the ID string.  The ID string of the first
944              boot image becomes the overall catalog ID.  It is limited to  24
945              characters. Other id_strings become section IDs.
946
947       -eltorito-selcrit hexdigits
948              Define the Selection Criteria of the boot image.  Up to 20 bytes
949              get read  from  the  given  characters  [0-9A-Fa-f].   They  get
950              attributed to the boot image entry in the catalog.
951
952       -boot-info-table
953              Overwrite  bytes  8  to  63  in  the  current  boot  image.  The
954              information will be supplied by xorriso in the course  of  image
955              production:  Block  address  of  the  Primary Volume Descriptor,
956              block address of the boot image file, size  of  the  boot  image
957              file.
958
959       --grub2-boot-info
960              Overwrite  bytes  2548  to 2555 in the current boot image by the
961              address of that boot image.  The address is written  as  64  bit
962              little-endian  number.  It  is the 2KB block address of the boot
963              image content, multiplied by 4, and then incremented by 5.
964
965       -c iso_rr_path
966              Set the address of the El Torito boot catalog  file  within  the
967              image.   This  file  address  is not significant for the booting
968              PC-BIOS or EFI, but it may later be read by  other  programs  in
969              order to learn about the available boot images.
970
971       -eltorito-catalog iso_rr_path
972              Alias of -c.
973
974       --boot-catalog-hide
975              Prevent the El Torito boot catalog from appearing as file in the
976              directory trees of the image.
977
978       System Area, MBR, GPT, APM, other boot blocks:
979
980       The first 16 blocks of an  ISO  image  are  the  System  Area.   It  is
981       reserved  for  system  dependent  boot  software.  This may be the boot
982       facilities and partition tables of various hardware architectures.
983       A MBR (Master Boot Record) contains boot code and  a  partition  table.
984       It  is read by PC-BIOS when booting from USB stick or hard disk, and by
985       PowerPC CHRP or PReP when booting.  An MBR  partition  with  type  0xee
986       indicates the presence of GPT.
987       A GPT (GUID Partition Table) marks partitions in a more modern way.  It
988       is read by EFI when booting from USB stick or hard  disk,  and  may  be
989       used for finding and mounting a HFS+ partition inside the ISO image.
990       An  APM  (Apple Partition Map) marks the HFS+ partition.  It is read by
991       Macs for booting and for mounting.
992       MBR, GPT and APM are combinable. APM occupies the first 8 bytes of  MBR
993       boot code. All three do not hamper El Torito booting from CDROM.
994       xorrisofs supports further boot facilities: MIPS Big Endian (SGI), MIPS
995       Little Endian (DEC), SUN SPARC, HP-PA, DEC Alpha.  Those  are  mutually
996       not combinable and also not combinable with MBR, GPT, or APM.
997
998       Several  of  the  following options expect disk paths as input but also
999       accept description strings for the libisofs interval reader,  which  is
1000       able  to cut out data from disk files or -indev and to zeroize parts of
1001       the   content:   -G,   -generic-boot,   --embedded-boot,   --grub2-mbr,
1002       -isohybrid-mbr,   -efi-boot-part,   -prep-boot-part,  -B,  -sparc-boot,
1003       -append_partition.
1004       The description string consists of the following components,  separated
1005       by colon ':'
1006         "--interval:"Flags":"Interval":"Zeroizers":"Source
1007       The  component  "--interval"  states that this is not a plain disk path
1008       but rather a interval reader description string.
1009       The component Flags modifies the further interpretation:
1010       "local_fs" demands to read from a file depicted by the path in Source.
1011       "imported_iso" demands to read from the  -indev.  This  works  only  if
1012       -outdev is not the same as -indev. The Source component is ignored.
1013       "appended_partition_NNN"  with  a  decimal  number  NNN  works only for
1014       options which announce El Torito boot image paths: -b, -e,  --efi-boot.
1015       The  number  gives  the partition number as used with the corresponding
1016       option -append_partition.
1017       The component Interval consists of two byte address  numbers  separated
1018       by a "-" character. E.g. "0-429" means to read bytes 0 to 429.
1019       The  component  Zeroizers  consists  of  zero  or  more comma separated
1020       strings.  They define which part of the  read  data  to  zeroize.  Byte
1021       number  0  means  the  byte read from the Interval start address.  Each
1022       string may be one of:
1023       "zero_mbrpt" demands to zeroize the MBR partition table  if  bytes  510
1024       and 511 bear the MBR signature 0x55 0xaa.
1025       "zero_gpt"  demands  to check for a GPT header in bytes 512 to 1023, to
1026       zeroize it and its partition table blocks.
1027       "zero_apm" demands to check for an APM  block  0  and  to  zeroize  its
1028       partition table blocks.
1029       Start_byte"-"End_byte  demands  to  zeroize the read-in bytes beginning
1030       with number Start_byte and ending after End_byte.
1031       The component Source is the file path with flag "local_fs", and ignored
1032       with flag "imported_iso".
1033       Byte  numbers  may  be  scaled by a suffix out of {k,m,g,t,s,d} meaning
1034       multiplication by {1024, 1024k, 1024m,  1024g,  2048,  512}.  A  scaled
1035       value end number depicts the last byte of the scaled range.
1036       E.g. "0d-0d" is "0-511".
1037       Examples:
1038         "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso"
1039         "imported_iso:45056d-47103d::"
1040
1041       -G disk_path
1042              Copy  at  most  32768 bytes from the given disk file to the very
1043              start of the ISO image.
1044              Other than a El Torito boot image, the file disk_path needs  not
1045              to be added to the ISO image. It will not show up as file in the
1046              directory trees.
1047              In multi-session situations, the special disk_path "."  prevents
1048              reading  of  a disk file but nevertheless causes the adjustments
1049              in the existing MBR, which were ordered by other options.
1050
1051       -generic-boot disk_path
1052              Alias of -G.
1053
1054       --embedded-boot disk_path
1055              Alias of -G.
1056
1057       --grub2-mbr disk_path
1058              Install disk_path in the System Area  and  treat  it  as  modern
1059              GRUB2 MBR.  The content start address of the first boot image is
1060              converted to a count of 512 byte blocks, and an offset of  4  is
1061              added.   The result is written as 64 bit little-endian number to
1062              byte address 0x1b0.
1063
1064       -isohybrid-mbr disk_path
1065              Install disk_path as ISOLINUX isohybrid MBR which makes the boot
1066              image given by option -b bootable from USB sticks and hard disks
1067              via PC-BIOS.  This preparation  is  normally  done  by  ISOLINUX
1068              program isohybrid on the already produced ISO image.
1069              The  disk  path  should  lead  to  one  of  the  Syslinux  files
1070              isohdp[fp]x*.bin .  The MBR gets patched according to  isohybrid
1071              needs. The first partition describes the range of the ISO image.
1072              Its start is at block 0 by default, but may be set  to  64  disk
1073              blocks by option -partition_offset 16.
1074              For the meaning of special disk_path "." see option -G.
1075
1076       -isohybrid-gpt-basdat
1077              Mark the current El Torito boot image (see options -b and -e) in
1078              GPT as partition of  type  Basic  Data.  This  works  only  with
1079              -isohybrid-mbr  and  has  the  same impact on the system area as
1080              -efi-boot-part. It cannot be  combined  with  -efi-boot-part  or
1081              -hfsplus.
1082              The  first  three  boot images which are marked by GPT will also
1083              show up as partition entries of  type  0xef  in  MBR.   The  MBR
1084              partition  for  PC-BIOS  gets type 0x00 rather than 0x17 in this
1085              case.  Often the further MBR entries are the ones which actually
1086              get used by EFI.
1087
1088       -isohybrid-gpt-hfsplus
1089              Mark the current El Torito boot image (see options -b and -e) in
1090              GPT as partition of type HFS+.  Impact and restrictions are like
1091              with -isohybrid-gpt-basdat.
1092
1093       -isohybrid-apm-hfsplus
1094              Mark the current El Torito boot image (see options -b and -e) in
1095              Apple Partition Map as partition of type HFS+. This  works  only
1096              with  -isohybrid-mbr and has a similar impact on the system area
1097              as -hfsplus.  It  cannot  be  combined  with  -efi-boot-part  or
1098              -hfsplus.
1099              The ISOLINUX isohybrid MBR file must begin by a known pattern of
1100              32 bytes of x86 machine code which essentially does nothing.  It
1101              will get overwritten by 32 bytes of APM header mock-up.
1102
1103       -part_like_isohybrid
1104              Control  whether  -isohybrid-gpt-basdat, -isohybrid-gpt-hfsplus,
1105              and -isohybrid-apm-hfsplus apply even if not  -isohybrid-mbr  is
1106              present.   No  MBR  partition  of type 0xee emerges, even if GPT
1107              gets produced.  Gaps between GPT and APM partitions will not  be
1108              filled by more partitions.  Appended partitions get mentioned in
1109              APM if other APM partitions emerge.
1110
1111       -iso_mbr_part_type "default"|number
1112              Set the partition type of the MBR partition which represents the
1113              ISO  or  at  least protects it.  Number may be 0x00 to 0xff. The
1114              text "default" re-enables  the  default  types  of  the  various
1115              occasions to create an ISO MBR partition.
1116              This  is  without  effect  if no such partition emerges by other
1117              settings or if the partition type is prescribed mandatorily like
1118              0xee for GPT protective MBR or 0x96 for CHRP.
1119
1120       --protective-msdos-label
1121              Patch  the  System Area by a simple PC-DOS partition table where
1122              partition 1 claims the range of the ISO  image  but  leaves  the
1123              first block unclaimed.
1124
1125       --mbr-force-bootable
1126              Enforce  an MBR partition with "bootable/active" flag if options
1127              like --protective-msdos-label or --grub2-mbr are  given.   These
1128              options  normally  cause  the  flag to be set if there is an MBR
1129              partition of type other than 0xee or 0xef.  If no such partition
1130              exists,  then  no  bootflag  is set, unless --mbr-force-bootable
1131              forces creation of a dummy partition of type 0x00  which  covers
1132              only the first block of the ISO image.
1133              If no bootable MBR is indicated by other options and a partition
1134              gets created  by  -append_partition,  then  --mbr-force-bootable
1135              causes    a    bootflag    like    it   would   do   with   e.g.
1136              --protective-msdos-label.
1137
1138       -partition_offset 2kb_block_adr
1139              Cause a partition table with a single partition that  begins  at
1140              the  given  block  address. This is counted in 2048 byte blocks,
1141              not in 512 byte blocks. If the block address is non-zero then it
1142              must be at least 16. Values larger than 16 are hardly of use.  A
1143              non-zero partition offset causes two superblocks to be generated
1144              and  two  sets  of  directory trees. The image is then mountable
1145              from its absolute start as well as from the partition start.
1146              The offset value of an ISO  image  gets  preserved  when  a  new
1147              session  is  added to a loaded image.  So the value defined here
1148              is only in effect if a new ISO image gets written.
1149
1150       -partition_hd_cyl number
1151              Set the number of heads  per  cylinder  for  the  MBR  partition
1152              table.  0 chooses a default value. Maximum is 255.
1153
1154       -partition_sec_hd number
1155              Set  the number of sectors per head for the MBR partition table.
1156              0 chooses a default value. Maximum is 63.
1157              The product partition_sec_hd * partition_hd_cyl  *  512  is  the
1158              cylinder  size.  It should be divisible by 2048 in order to make
1159              exact  alignment  possible.   With   appended   partitions   and
1160              -appended_part_as_gpt  there  is  no  limit  for  the  number of
1161              cylinders. Else there may be at  most  1024  of  them.   If  the
1162              cylinder  size  is  too  small  to  stay  below  the limit, then
1163              appropriate  values  of   partition_hd_cyl   are   chosen   with
1164              partition_sec_hd   32  or  63.  If  the  image  is  larger  than
1165              8,422,686,720 bytes, then the cylinder size  constraints  cannot
1166              be  fulfilled  for  MBR.  They seem not overly important anyway.
1167              Flat block addresses in partition tables are good for 1 TiB.
1168
1169       -partition_cyl_align mode
1170              Control image size alignment to an integer number of  cylinders.
1171              It  is  prescribed  by  isohybrid  specs  and it seems to please
1172              program fdisk.  Cylinder size must be divisible by 2048.  Images
1173              larger  than  8,323,596,288  bytes  cannot  be  aligned  in  MBR
1174              partition table.
1175              Mode "auto" is default. Alignment by  padding  happens  only  if
1176              option -isohybrid-mbr is given.
1177              Mode    "on"   causes   alignment   by   padding   with   option
1178              --protective-msdos-label too.  Mode "all" is like "on" but  also
1179              pads up partitions from -append_partition to an aligned size.
1180              Mode "off" disables alignment unconditionally.
1181
1182       -append_partition partition_number type_code disk_path
1183              Cause  a  prepared  filesystem  image  to be appended to the ISO
1184              image and to be described by a partition table entry in  a  boot
1185              block  at  the  start  of  the emerging ISO image. The partition
1186              entry will bear the size of the submitted file rounded up to the
1187              next  multiple  of  2048  bytes  or  to the next multiple of the
1188              cylinder size.
1189              Beware of subsequent multi-session runs. The appended  partition
1190              will get overwritten.
1191              partition_number  may be 1 to 4. Number 1 will put the whole ISO
1192              image into the unclaimed space before partition 1.  So  together
1193              with  most  xorriso  MBR  or GPT features, number 2 would be the
1194              most natural choice.
1195              The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal
1196              number  between  0x00 and 0xff. Not all those numbers will yield
1197              usable results. For a list of  codes  search  the  Internet  for
1198              "Partition  Types"  or run fdisk command "L".  This code matters
1199              only with MBR, not with GPT.
1200              If some other command causes the production  of  GPT,  then  the
1201              appended  partitions  will  be  mentioned there too, even if not
1202              -appended_part_as_gpt is given.
1203
1204       -appended_part_as_gpt
1205              Marks partitions from -append_partition in GPT  rather  than  in
1206              MBR.  In this case the MBR shows a single partition of type 0xee
1207              which covers the whole output data.
1208              By default, appended partitions get marked in GPT only if GPT is
1209              produced because of other options.
1210
1211       -appended_part_as_apm
1212              Marks  partitions from -append_partition in Apple Partition Map,
1213              too.
1214              By default, appended partitions get marked in APM only if APM is
1215              produced  because  of  other options and -part_like_isohybrid is
1216              enabled.
1217
1218       -efi-boot-part disk_path
1219              Copy a file from disk into the emerging ISO image and mark it by
1220              a  GPT  entry  as  EFI  System  Partition.  EFI boot firmware is
1221              supposed to use a FAT filesystem image in such a  partition  for
1222              booting from USB stick or hard disk.
1223              Instead  of a disk_path, the word --efi-boot-image may be given.
1224              It exposes in GPT the content of the first El  Torito  EFI  boot
1225              image as EFI system partition. EFI boot images are introduced by
1226              options -e or --efi-boot.  The affected EFI  boot  image  cannot
1227              show up in HFS+ because it is stored outside the HFS+ partition.
1228
1229       --gpt_disk_guid value
1230              Control  whether  an emerging GPT shall get a randomly generated
1231              disk GUID or whether the GUID is supplied by  the  user.   Value
1232              "random"  is  default.  Value "modification-date" produces a low
1233              quality GUID from the value set by option --modification-date=.
1234              A string of 32 hex digits, or a RFC 4122 compliant  GUID  string
1235              may  be  used to set the disk GUID directly. UEFI prescribes the
1236              first  three  components  of  a  RFC  4122  GUID  string  to  be
1237              byte-swapped in the binary representation:
1238              E.g. --gpt_disk_guid 2303cd2a-73c7-424a-a298-25632da7f446 equals
1239              --gpt_disk_guid 2acd0323c7734a42a29825632da7f446
1240              The partition GUIDs get generated by minimally varying the  disk
1241              GUID.
1242
1243       -chrp-boot-part
1244              Mark  the  block  range  of  the whole emerging ISO image as MBR
1245              partition of type 0x96. This is not compatible  with  any  other
1246              feature  that  produces  MBR  partition  entries.  It  makes GPT
1247              unrecognizable.
1248              CHRP is often used in conjunction with HFS. It is not yet tested
1249              whether  HFS+  filesystems  produced  with option -hfsplus would
1250              boot on any CHRP capable machine which does not  boot  pure  ISO
1251              9660 as well.
1252
1253       -chrp-boot
1254              Alias of -chrp-boot-part.
1255
1256       -prep-boot-part disk_path
1257              Copy a file from disk into the emerging ISO image and mark it by
1258              a MBR partition entry  of  type  0x41.  PReP  boot  firmware  is
1259              supposed  to  read  the  content  of the partition as single ELF
1260              executable file.  This  option  is  compatible  with  other  MBR
1261              partitions and with GPT.
1262
1263       -mips-boot iso_rr_path
1264              Declare  a  data  file in the image to be a MIPS Big Endian boot
1265              file and cause production of a MIPS Big  Endian  Volume  Header.
1266              This  is mutually exclusive with production of other boot blocks
1267              like MBR.  It will overwrite the first 512  bytes  of  any  data
1268              provided by -G.  Up to 15 boot files can be declared by multiple
1269              -mips-boot options.
1270
1271       -mipsel-boot iso_rr_path
1272              Declare a data file in the image to be the  MIPS  Little  Endian
1273              boot  file.  This  is mutually exclusive with other boot blocks.
1274              It will overwrite the first 512 bytes of any  data  provided  by
1275              -G.  Only a single boot file can be declared by -mipsel-boot.
1276
1277       -B disk_path[,disk_path ...]
1278              Cause one or more data files on disk to be written after the end
1279              of the ISO image. A SUN Disk Label  will  be  written  into  the
1280              first  512  bytes  of  the  ISO  image which lists this image as
1281              partition 1 and the given disk_paths as partition 2 up to 8.
1282              The disk files should contain suitable boot images for SUN SPARC
1283              systems.
1284              The  pseudo  disk_path  "..."  causes  that  all empty partition
1285              entries become copies of the last non-empty entry. If  no  other
1286              disk_path is given before "..." then all partitions describe the
1287              ISO image. In this case, the boot loader code has to be imported
1288              by option -G.
1289
1290       -sparc-boot disk_path[,disk_path ...]
1291              Alias of -B.
1292
1293       -sparc-label text
1294              Set the ASCII label text of a SUN Disk Label.
1295
1296       --grub2-sparc-core iso_rr_path
1297              Cause the content address and size of the given data file in the
1298              image to be written after the SUN Disk Label. Both  numbers  are
1299              counted  in  bytes.  The address is written as 64 bit big-endian
1300              number to byte 0x228.  The size is written as 32 bit  big-endian
1301              number to byte 0x230.
1302
1303       -hppa-cmdline text
1304              Set  the  PALO command line for HP-PA. Up to 1023 characters are
1305              permitted by default. With -hppa-hdrversion 4 the limit is 127.
1306              Note that the first five -hppa options are mandatory, if any  of
1307              the  -hppa  options  is  given.  Only option -hppa-hdrversion is
1308              allowed to be missing.
1309
1310       -hppa-bootloader iso_rr_path
1311              Designate the given path as HP-PA bootloader file.
1312
1313       -hppa-kernel-32 iso_rr_path
1314              Designate the given path as HP-PA 32 bit kernel file.
1315
1316       -hppa-kernel-64 iso_rr_path
1317              Designate the given path as HP-PA 64 bit kernel file.
1318
1319       -hppa-ramdisk iso_rr_path
1320              Designate the given path as HP-PA RAM disk file.
1321
1322       -hppa-hdrversion number
1323              Choose between PALO header version 5 (default)  and  version  4.
1324              For   the   appropriate   value   see   in   PALO  source  code:
1325              PALOHDRVERSION.
1326
1327       -alpha-boot iso_rr_path
1328              Declare a data file in  the  image  to  be  the  DEC  Alpha  SRM
1329              Secondary Bootstrap Loader and cause production of a boot sector
1330              which points to it.  This is mutually exclusive with  production
1331              of other boot blocks like MBR.
1332
1333       Character sets:
1334
1335       Character  sets  should not matter as long as only english alphanumeric
1336       characters are used for file names  or  as  long  as  all  writers  and
1337       readers  of  the  medium  use  the  same  character set.  Outside these
1338       constraints it may be necessary to let xorriso convert byte codes.
1339       A conversion from input character set to the output  character  set  is
1340       performed  when  an  ISO  image  gets  written.   Vice versa there is a
1341       conversion from output character set to the input character set when an
1342       ISO   image   gets   loaded.   The  sets  can  be  defined  by  options
1343       -input-charset and -output-charset, if needed.
1344
1345       -input-charset character_set_name
1346              Set the character set from which to convert disk file names when
1347              inserting them into the ISO image.
1348
1349       -output-charset character_set_name
1350              Set the character set from which to convert  names of loaded ISO
1351              images and to which to convert names when writing ISO images.
1352
1353       Jigdo Template Extraction:
1354
1355       From man genisoimage: "Jigdo is a tool to help in the  distribution  of
1356       large  files  like CD and DVD images; see http://atterer.net/jigdo/ for
1357       more details. Debian CDs and DVD ISO images are published on the web in
1358       jigdo format to allow end users to download them more efficiently."
1359       If  the  use  of  libjte  was  enabled at compile time of xorriso, then
1360       xorrisofs can produce a .jigdo and a .template  file  together  with  a
1361       single-session  ISO  image.  If  not,  then  Jigdo options will cause a
1362       FAILURE event, which normally leads to program abort.
1363       One may determine the ability for Jigdo by:
1364         $ xorrisofs -version 2>&1 | grep '^libjte' && echo YES
1365
1366       The .jigdo file contains checksums and symbolic  file  addresses.   The
1367       .template  file  contains  the compressed ISO image with reference tags
1368       instead of the content bytes of the listed files.
1369       Input for this process are the normal arguments for a xorrisofs session
1370       with  no  image  loaded,  and  a .md5 file which lists those data files
1371       which may be listed in the .jigdo file and externally referenced in the
1372       .template  file.   Each designated file is represented in the .md5 file
1373       by a single text line:
1374       MD5 as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks,  2
1375       blanks, symbolic file address
1376       The  file  address in an .md5 line has to bear the same basename as the
1377       disk_path of the file which it shall match. The directory path  of  the
1378       file address is decisive for To=From mapping, not for file recognition.
1379       After To=From mapping, the file address gets written  into  the  .jigdo
1380       file.  Jigdo  restore  tools  will  convert these addresses into really
1381       reachable data source addresses from which they can read.
1382       If the list of jigdo parameters is not  empty,  then  padding  will  be
1383       counted as part of the ISO image.
1384
1385       -jigdo-jigdo disk_path
1386              Set  the  disk_path  for  the .jigdo file with the checksums and
1387              download addresses for filling the holes in .template.
1388
1389       -jigdo-template disk_path
1390              Set the disk_path for the .template  file  with  the  holed  and
1391              compressed ISO image copy.
1392
1393       -jigdo-min-file-size size
1394              Set  the minimum size for a data file to be listed in the .jigdo
1395              file and being a hole in the .template  file.   size  may  be  a
1396              plain  number  counting  bytes, or a number with appended letter
1397              "k", "m", "g" to count KiB (1024 bytes), MiB (1024 KiB), or  GiB
1398              (1024 MiB).
1399
1400       -jigdo-force-md5 disk_path_pattern
1401              adds  a  regular expression pattern which will get compared with
1402              the absolute disk_path of any data file that was  not  found  in
1403              the  .md5  list.  A  match causes a MISHAP event, which normally
1404              does not abort the program run but  finally  causes  a  non-zero
1405              exit value of the program.
1406
1407       -jigdo-exclude disk_path_pattern
1408              Add  a  regular  expression pattern which will get compared with
1409              the absolute disk_path of any data file. A match causes the file
1410              to stay in .template in any case.
1411
1412       -jigdo-map To=From
1413              Add a string pair of the form To=From to the parameter list.  If
1414              a data file gets listed in the .jigdo file, then it is  referred
1415              by  the  file  address from its line in the .md5 file. This file
1416              address gets checked whether it begins with the From string.  If
1417              so, then this string will be replaced by the To string and a ':'
1418              character, before it goes into the .jigdo file. The From  string
1419              should end by a '/' character.
1420
1421       -md5-list disk_path
1422              Set the disk_path where to find the .md5 input file.
1423
1424       -jigdo-template-compress "gzip"|"bzip2"
1425              Choose  one  of  "bzip2"  or  "gzip"  for the compression of the
1426              template file. The jigdo file is put out uncompressed.
1427
1428       -checksum_algorithm_iso list_of_names
1429              Choose one or more of "md5", "sha1", "sha256", "sha512" for  the
1430              auxiliary  "#  Image  Hex"  checksums  in  the  .jigdo file. The
1431              list_of_names may e.g. look like "md5,sha1,sha512". Value  "all"
1432              chooses  all  available  algorithms.  Note that MD5 stays always
1433              enabled.
1434
1435       -checksum_algorithm_template list_of_names
1436              Choose the algorithms for the "# Template Hex" checksums in  the
1437              .jigdo  file.   The rules for list_of_names are the same as with
1438              -checksum_algorithm_iso.
1439
1440       Miscellaneous options:
1441
1442       -print-size
1443              Print to stdandard output the foreseeable number  of  2048  byte
1444              blocks in the emerging ISO image. Do not produce this image.
1445              The result depends on several settings.
1446              If  option  --emul-toc  is given, then padding (see -pad) is not
1447              counted as part of the image  size.  In  this  case  either  use
1448              -no-pad or add 150 (= 300 KiB) to the resulting number.
1449              If  mkisofs  emulation  ends  after option -print-size, then the
1450              properties of the most recently specified boot image file cannot
1451              be edited by subsequent xorriso commands.
1452
1453       --no_rc
1454              Only  if used as first argument this option prevents reading and
1455              interpretation of startup files. See section FILES below.
1456
1457       -help
1458              List supported options to stderr. Original mkisofs options  bear
1459              their original mkisofs description texts.
1460
1461       -quiet
1462              Suppress  most  messages  of the program run, except those which
1463              indicate problems or errors.
1464
1465       -gui
1466              Increase the frequency of pacifier messages while writing an ISO
1467              image.
1468
1469       -log-file disk_path
1470              Truncate  file  disk_path  to  0  size  and  redirect  to it all
1471              messages which would normally appear on stderr.  -log-file  with
1472              empty text as disk_path re-enables output to stderr.
1473
1474       -v
1475              Enable the output of informational program messages.
1476
1477       -verbose
1478              Alias of -v.
1479
1480       -version
1481              Print to standard output a text that begins with
1482               "mkisofs 2.01-Emulation Copyright (C)"
1483              and to standard error the version information of xorriso.
1484

EXAMPLES

1486   Overview of examples:
1487       A simple image production run
1488       Set ISO image paths by -graft-points
1489       Perform multi-session runs
1490       Let xorrisofs work underneath growisofs
1491       Incremental backup of a few directory trees
1492       Incremental backup with accumulated trees
1493       Create bootable images for PC-BIOS and EFI
1494
1495   A simple image production run
1496       A  prepared  file tree in directory ./for_iso gets copied into the root
1497       directory of the ISO image. File permissions get set to  read-only  for
1498       everybody.   Joliet  attributes  for  Microsoft systems get added.  The
1499       resulting image gets written as data file ./image.iso on disk.
1500         $ xorrisofs -r -J -o ./image.iso ./for_iso
1501
1502   Set ISO image paths by -graft-points
1503       Without option -graft-points each given disk file is  copied  into  the
1504       root  directory  of the ISO image, maintaining its name. If a directory
1505       is given, then its files and sub-directories are copied into  the  root
1506       directory, maintaining their names.
1507         $ xorrisofs ... /home/me/datafile /tmp/directory
1508       yields in the ISO image root directory:
1509         /datafile
1510         /file_1_from_directory
1511         ...
1512         /file_N_from_directory
1513
1514       With  option  -graft-points it is possible to put files and directories
1515       to arbitrary paths in the ISO image.
1516         $ xorrisofs ... -graft-points /home/me/datafile /dir=/tmp/directory
1517       yields in the ISO image root directory:
1518         /datafile
1519         /dir
1520       Eventually needed parent directories  in  the  image  will  be  created
1521       automatically:
1522         /datafiles/file1=/home/me/datafile
1523       yields in the ISO image:
1524         /datafiles/file1
1525       The  attributes  of  directory  /datafiles  get copied from /home/me on
1526       disk.
1527
1528       Normally one should avoid = and \ characters  in  the  ISO  part  of  a
1529       pathspec.  But if it must be, one may escape them:
1530         /with_\=_and_\\/file=/tmp/directory/file
1531       yields in the ISO image:
1532         /with_=_and_\/file
1533
1534   Perform multi-session runs
1535       This  example  works  for  multi-session media only: CD-R[W], DVD-R[W],
1536       DVD+R, BD-R.  Add cdrskin option --grow_overwriteable_iso  to  all  -as
1537       cdrecord   runs   in   order   to  enable  multi-session  emulation  on
1538       overwriteable media.
1539       The first session is written like this:
1540         $ xorrisofs -graft-points \
1541                     /tree1=prepared_for_iso/tree1 \
1542           | xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
1543       Follow-up sessions are written like this:
1544         $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1545         $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1546         $ xorrisofs -M /dev/sr0 -C $m -graft-points \
1547                     /tree2=prepared_for_iso/tree2 \
1548           | xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
1549       Always eject the drive tray between sessions. The old sessions get read
1550       via  /dev/sr0.  Its  device  driver  might  not be aware of the changed
1551       content before it loads the medium again.  In this  case  the  previous
1552       session  would not be loaded and the new session would contain only the
1553       newly added files.
1554       For the same reason do not let xorriso -as cdrecord  load  the  medium,
1555       but rather do this manually or by a program that reads from /dev/sr0.
1556
1557   Let xorrisofs work underneath growisofs
1558       growisofs expects an ISO formatter program which understands options -C
1559       and -M. A variable is defined to override the hardcoded default name.
1560         $ export MKISOFS="xorrisofs"
1561         $ growisofs -Z /dev/dvd /some/files
1562         $ growisofs -M /dev/dvd /more/files
1563       If no "xorrisofs" is available on your system, then you  will  have  to
1564       create  a link pointing to the xorriso binary and tell growisofs to use
1565       it. E.g. by:
1566         $ ln -s $(which xorriso) "$HOME/xorrisofs"
1567         $ export MKISOFS="$HOME/xorrisofs"
1568       One may quit mkisofs emulation by argument "--" and  make  use  of  all
1569       xorriso  commands. growisofs dislikes options which start with "-o" but
1570       -outdev must be set to "-".  So use "outdev" instead:
1571         $ growisofs -Z /dev/dvd --for_backup -- \
1572                     outdev - -update_r /my/files /files
1573         $ growisofs -M /dev/dvd --for_backup -- \
1574                     outdev - -update_r /my/files /files
1575       Note that --for_backup is given in the mkisofs emulation.  To  preserve
1576       the  recorded  extra  data  it  must  already  be  in  effect, when the
1577       emulation loads the image.
1578
1579   Incremental backup of a few directory trees
1580       This   changes   the   directory   trees    /open_source_project    and
1581       /personal_mail  in  the  ISO  image so that they become exact copies of
1582       their disk counterparts.  ISO file objects get created, deleted or  get
1583       their attributes adjusted accordingly.
1584       ACL,  xattr,  hard  links  and  MD5  checksums will be recorded.  It is
1585       expected that inode numbers in the disk filesystem are persistent  over
1586       cycles of mounting and booting.  Files with names matching *.o or *.swp
1587       get excluded explicitly.
1588
1589       To be used several times on the same medium, whenever an update of  the
1590       two  disk trees to the medium is desired. Begin with a blank medium and
1591       update it until he run fails gracefully due to lack of remaining  space
1592       on the old one.
1593       Do  not  let  xorriso  -as cdrecord load the medium, but rather do this
1594       manually or by a program that reads from /dev/sr0.
1595         $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1596         $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1597         $ load_opts=
1598         $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo"
1599         $ xorrisofs $load_opts -o - --for_backup -m '*.o' -m '*.swp' \
1600           -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1601           -old-root / \
1602           /projects=/home/thomas/projects \
1603           /personal_mail=/home/thomas/personal_mail \
1604           | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject -
1605
1606       This makes sense  if  the  full  backup  leaves  substantial  remaining
1607       capacity on media and if the expected changes are much smaller than the
1608       full backup.
1609
1610       Better do not use your youngest backup for -old-root.   Have  at  least
1611       two  media  which  you  use  alternatingly.  So  only older backups get
1612       endangered by the new write  operation,  while  the  newest  backup  is
1613       stored safely on a different medium.
1614       Always  have  a blank medium ready to perform a full backup in case the
1615       update attempt fails  due  to  insufficient  remaining  capacity.  This
1616       failure will not spoil the old medium, of course.
1617
1618       If   inode  numbers  on  disk  are  not  persistent,  then  use  option
1619       --old-root-no-ino .  In this case an update run will  compare  recorded
1620       MD5 sums against the current file content on hard disk.
1621
1622       With  mount  option  -o  "sbsector="  on  GNU/Linux or -s on FreeBSD or
1623       NetBSD it is possible to access the session trees which  represent  the
1624       older  backup  versions. With CD media, GNU/Linux mount accepts session
1625       numbers directly by its option "session=".
1626       Multi-session media and most overwriteable media written by xorriso can
1627       tell the sbsectors of their sessions by xorriso option -toc:
1628         $ xorriso -dev /dev/sr0 -toc
1629       xorriso can print the matching mount command for a session number:
1630         $ xorriso -mount_cmd /dev/sr0 session 12 /mnt
1631       or for a volume id that matches a search expression:
1632         $ xorriso -mount_cmd /dev/sr0 volid '*2008_12_05*' /mnt
1633       Both yield on standard output something like:
1634         mount    -t    iso9660   -o   nodev,noexec,nosuid,ro,sbsector=1460256
1635       '/dev/sr0' '/mnt'
1636       The superuser may let xorriso execute the mount command directly:
1637         # osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
1638
1639   Incremental backup with accumulated trees
1640       Solaris does not offer the option to mount older sessions.  In order to
1641       keep  them  accessible,  one  may  map all files to a file tree under a
1642       session directory and accumulate  those  directories  from  session  to
1643       session.   The  -root  tree is cloned from the -old-root tree before it
1644       gets compared with the appropriate trees on disk.
1645       This demands to know the previously used session directory name.
1646       With the first session:
1647         $ xorrisofs -root /session1 \
1648           -o - --for_backup -m '*.o' -m '*.swp' \
1649           -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1650           /projects=/home/thomas/projects \
1651           /personal_mail=/home/thomas/personal_mail \
1652           | xorriso -as cdrecord dev=/dev/sr0 -v blank=as_needed \
1653                     -multi -waiti -eject -
1654
1655       With the second session, option -old-root refers to /session1  and  the
1656       new -root is /session2.
1657       Do  not  let  xorriso  -as cdrecord load the medium, but rather do this
1658       manually or by a program that reads from /dev/sr0.
1659         $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
1660         $ msinfo=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
1661         $ load_opts=
1662         $ test -n "$msinfo" && load_opts="-M /dev/sr0 -C $msinfo"
1663         $ xorrisofs $load_opts -root /session2 -old-root /session1 \
1664           -o - --for_backup -m '*.o' -m '*.swp' \
1665           -V PROJ_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" -graft-points \
1666           /projects=/home/thomas/projects \
1667           /personal_mail=/home/thomas/personal_mail \
1668           | xorriso -as cdrecord dev=/dev/sr0 -v -multi -waiti -eject -
1669       With the third session, option -old-root refers to /session2.  The  new
1670       -root is /session3. And so on.
1671
1672   Create bootable images for PC-BIOS and EFI
1673       The SYSLINUX/ISOLINUX boot loader suite is popular for booting PC-BIOS.
1674       The ISOLINUX wiki prescribes to create on disk  a  directory  ./CD_root
1675       and  to  copy  all  desired files underneath that directory. Especially
1676       file isolinux.bin shall be copied to ./CD_root/isolinux/isolinux.bin  .
1677       This is the boot image file.
1678       The prescribed mkisofs options can be used unchanged with xorrisofs:
1679         $ xorrisofs -o output.iso \
1680             -b isolinux/isolinux.bin -c isolinux/boot.cat \
1681             -no-emul-boot -boot-load-size 4 -boot-info-table \
1682             ./CD_root
1683       Put it on CD by a burn program. E.g.:
1684         $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed output.iso
1685
1686       The image from above example will boot from CD, DVD or BD, but not from
1687       USB stick or other hard-disk-like devices. This can be done by help  of
1688       an   isohybrid  MBR.  Syslinux  provides  matching  template  files  as
1689       isohdp[fp]x*.bin . E.g. /usr/lib/syslinux/isohdpfx.bin .
1690       If  a  few  hundred  KB  of   size   do   not   matter,   then   option
1691       -partition_offset  can  be  used  to  create  a  partition  table where
1692       partition 1 starts not at block 0. This facilitates later manipulations
1693       of the USB stick by tools for partitioning and formatting.
1694       The  image  from the following example will be prepared for booting via
1695       MBR and its first partition will start at hard disk block 64.
1696       It will also boot from optical media.
1697         $ xorrisofs -o output.iso \
1698             -b isolinux/isolinux.bin -c isolinux/boot.cat \
1699             -no-emul-boot -boot-load-size 4 -boot-info-table \
1700             -isohybrid-mbr /usr/lib/syslinux/isohdpfx.bin \
1701             -partition_offset 16 \
1702             ./CD_root
1703       Become superuser and copy the image to the  unpartitioned  base  device
1704       file  of  the  USB  stick.  On  GNU/Linux  this  is  e.g. /dev/sdb, not
1705       /dev/sdb1.
1706       CAUTION: This will overwrite any partitioning on the USB stick and make
1707       remaining data unaccessible.
1708       So  first make sure you got the correct address of the intended device.
1709       E.g. by reading 100 MiB data from it and watching it blinking:
1710         # dd bs=2K if=/dev/sdb count=50K >/dev/null
1711       Now copy the image onto it
1712         # dd bs=2K if=output.iso of=/dev/sdb
1713
1714       Now for EFI:
1715       The boot image file has to be the image of  an  EFI  System  Partition,
1716       i.e.  a FAT filesystem with directory /EFI/BOOT and boot files with EFI
1717       prescribed names: BOOTIA32.EFI for 32 bit x86, BOOTx64.EFI for  64  bit
1718       AMD/x86  (in  UEFI-2.4  there is indeed a lower case "x"), BOOTAA64.EFI
1719       for 64 bit ARM. The software in the FAT filesystem should  be  able  to
1720       find  and  inspect the ISO filesystem for boot loader configuration and
1721       start of operating system. GRUB2 program grub-mkimage can produce  such
1722       a  FAT  filesystem with suitable content, which then uses further GRUB2
1723       software from the ISO filesystem.
1724       EFI boot equipment may be combined with above  ISOLINUX  isohybrid  for
1725       PC-BIOS  in  a not really UEFI-2.4 compliant way, which obviously works
1726       well. It  yields  MBR  and  GPT  partition  tables,  both  with  nested
1727       partitions.   Assumed  the  EFI  System  Partition  image  is  ready as
1728       ./CD_root/boot/grub/efi.img,  add  the  following  options  before  the
1729       directory address ./CD_root:
1730             -eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \
1731             -isohybrid-gpt-basdat \
1732       More  compliant with UEFI-2.4 is to decide for either MBR or GPT and to
1733       append a copy of the EFI System Partition in order to avoid overlap  of
1734       ISO partition and EFI partition. Here for MBR:
1735             -eltorito-alt-boot -e 'boot/grub/efi.img' -no-emul-boot \
1736             -append_partition 2 0xef ./CD_root/boot/grub/efi.img \
1737       The  resulting  ISOs  are  supposed  to boot from optical media and USB
1738       stick.  One may omit option -eltorito-alt-boot if no option -b is  used
1739       to make the ISO bootable via PC-BIOS.
1740
1741       For  ISOs  with  pure  GRUB2  boot equipment consider to use GRUB2 tool
1742       grub-mkrescue as frontend to xorrisofs.
1743
1744       If you have a bootable ISO filesystem and want to  know  its  equipment
1745       plus a proposal how to reproduce it, try:
1746         $ xorriso -hfsplus on -indev IMAGE.iso \
1747             -report_el_torito plain -report_system_area plain \
1748             -print "" -print "======= Proposal for xorrisofs options:" \
1749             -report_el_torito as_mkisofs
1750

FILES

1752   Startup files:
1753       If  not  --no_rc is given as the first argument then xorrisofs attempts
1754       on startup to read and execute lines from the following files:
1755          /etc/default/xorriso
1756          /etc/opt/xorriso/rc
1757          /etc/xorriso/xorriso.conf
1758          $HOME/.xorrisorc
1759       The files are read in the sequence given here,  but  none  of  them  is
1760       required  to  exist. The lines are not interpreted as xorrisofs options
1761       but as generic xorriso commands. See man xorriso.
1762
1763       After the xorriso startup files, the program tries one by one  to  open
1764       for reading:
1765          ./.mkisofsrc
1766          $MKISOFSRC
1767          $HOME/.mkisofsrc
1768          $(dirname $0)/.mkisofsrc
1769       On  success  it  interprets  the  file content and does not try further
1770       files.  The last address is  used  only  if  start  argument  0  has  a
1771       non-trivial dirname.
1772       The reader currently interprets the following NAME=VALUE pairs:
1773        APPI default for -A
1774        PUBL default for -publisher
1775        SYSI default for -sysid
1776        VOLI default for -V
1777        VOLS default for -volset
1778       Any other lines will be silently ignored.
1779

ENVIRONMENT

1781       The following environment variables influence the program behavior:
1782       HOME is used to find xorriso and mkisofs startup files.
1783       MKISOFSRC may be used to point the program to a mkisofs startup file.
1784       SOURCE_DATE_EPOCH  belongs to the specs of reproducible-builds.org.  It
1785       is supposed to be either undefined or to contain a decimal number which
1786       tells the seconds since january 1st 1970. If it contains a number, then
1787       it is used as time value to set the  default  of  --modification-date=.
1788       --gpt_disk_guid   defaults  to  "modification-date".   The  default  of
1789       --set_all_file_dates is then "set_to_mtime".
1790       Startup  files  and  program  options  can  override  the   effect   of
1791       SOURCE_DATE_EPOCH.
1792
1793

SEE ALSO

1795       For generic xorriso command mode
1796              xorriso(1)
1797
1798       For the cdrecord emulation of xorriso
1799              xorrecord(1)
1800
1801       For mounting xorriso generated ISO 9660 images (-t iso9660)
1802              mount(8)
1803
1804       Other programs which produce ISO 9660 images
1805              mkisofs(8), genisoimage(8)
1806
1807       Programs which burn sessions to optical media
1808              growisofs(1), cdrecord(1), wodim(1), cdrskin(1), xorriso(1)
1809
1810       ACL and xattr
1811              getfacl(1), setfacl(1), getfattr(1), setfattr(1)
1812
1813       MD5 checksums
1814              md5sum(1)
1815
1816       On FreeBSD the commands for xattr and MD5 differ
1817              getextattr(8), setextattr(8), md5(1)
1818

BUGS

1820       To  report  bugs,  request  help,  or suggest enhancements for xorriso,
1821       please send electronic mail to the public  list  <bug-xorriso@gnu.org>.
1822       If more privacy is desired, mail to <scdbackup@gmx.net>.
1823       Please describe what you expect xorriso to do, the program arguments or
1824       dialog commands by which you tried  to  achieve  it,  the  messages  of
1825       xorriso, and the undesirable outcome of your program run.
1826       Expect to get asked more questions before solutions can be proposed.
1827

AUTHOR

1829       Thomas Schmitt <scdbackup@gmx.net>
1830       for libburnia-project.org
1831
1833       Copyright (c) 2011 - 2018 Thomas Schmitt
1834       Permission  is granted to distribute this text freely. It shall only be
1835       modified in sync with the technical properties of xorriso. If you  make
1836       use  of the license to derive modified versions of xorriso then you are
1837       entitled to modify this text under that same license.
1838

CREDITS

1840       xorrisofs is in part based on  work  by  Vreixo  Formoso  who  provides
1841       libisofs  together  with Mario Danic who also leads the libburnia team.
1842       Vladimir Serbinenko contributed the HFS+ filesystem  code  and  related
1843       knowledge.
1844       Compliments  towards  Joerg  Schilling whose cdrtools served me for ten
1845       years.
1846
1847
1848
1849                          Version 1.5.0, Sep 15, 2018             XORRISOFS(1)
Impressum