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

EXAMPLES

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

FILES

1772   Startup files:
1773       If  not  --no_rc is given as the first argument then xorrisofs attempts
1774       on startup to read and execute lines from the following files:
1775          /etc/default/xorriso
1776          /etc/opt/xorriso/rc
1777          /etc/xorriso/xorriso.conf
1778          $HOME/.xorrisorc
1779       The files are read in the sequence given here,  but  none  of  them  is
1780       required  to  exist. The lines are not interpreted as xorrisofs options
1781       but as generic xorriso commands. See man xorriso.
1782
1783       After the xorriso startup files, the program tries one by one  to  open
1784       for reading:
1785          ./.mkisofsrc
1786          $MKISOFSRC
1787          $HOME/.mkisofsrc
1788          $(dirname $0)/.mkisofsrc
1789       On  success  it  interprets  the  file content and does not try further
1790       files.  The last address is  used  only  if  start  argument  0  has  a
1791       non-trivial dirname.
1792       The reader currently interprets the following NAME=VALUE pairs:
1793        APPI default for -A
1794        PUBL default for -publisher
1795        SYSI default for -sysid
1796        VOLI default for -V
1797        VOLS default for -volset
1798       Any other lines will be silently ignored.
1799

ENVIRONMENT

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

SEE ALSO

1817       For generic xorriso command mode
1818              xorriso(1)
1819
1820       For the cdrecord emulation of xorriso
1821              xorrecord(1)
1822
1823       For mounting xorriso generated ISO 9660 images (-t iso9660)
1824              mount(8)
1825
1826       Other programs which produce ISO 9660 images
1827              mkisofs(8), genisoimage(8)
1828
1829       Programs which burn sessions to optical media
1830              growisofs(1), cdrecord(1), wodim(1), cdrskin(1), xorriso(1)
1831
1832       ACL and xattr
1833              getfacl(1), setfacl(1), getfattr(1), setfattr(1)
1834
1835       MD5 checksums
1836              md5sum(1)
1837
1838       On FreeBSD the commands for xattr and MD5 differ
1839              getextattr(8), setextattr(8), md5(1)
1840

BUGS

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

AUTHOR

1851       Thomas Schmitt <scdbackup@gmx.net>
1852       for libburnia-project.org
1853
1855       Copyright (c) 2011 - 2019 Thomas Schmitt
1856       Permission  is granted to distribute this text freely. It shall only be
1857       modified in sync with the technical properties of xorriso. If you  make
1858       use  of the license to derive modified versions of xorriso then you are
1859       entitled to modify this text under that same license.
1860

CREDITS

1862       xorrisofs is in part based on  work  by  Vreixo  Formoso  who  provides
1863       libisofs  together  with Mario Danic who also leads the libburnia team.
1864       Vladimir Serbinenko contributed the HFS+ filesystem  code  and  related
1865       knowledge.
1866       Compliments  towards  Joerg  Schilling whose cdrtools served me for ten
1867       years.
1868
1869
1870
1871                          Version 1.5.2, Oct 26, 2019             XORRISOFS(1)
Impressum