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

EXAMPLES

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

FILES

1833   Startup files:
1834       If not --no_rc is given as the first argument then  xorrisofs  attempts
1835       on startup to read and execute lines from the following files:
1836          /etc/default/xorriso
1837          /etc/opt/xorriso/rc
1838          /etc/xorriso/xorriso.conf
1839          $HOME/.xorrisorc
1840       The  files  are  read  in  the sequence given here, but none of them is
1841       required to exist. The lines are not interpreted as  xorrisofs  options
1842       but as generic xorriso commands. See man xorriso.
1843
1844       After  the  xorriso startup files, the program tries one by one to open
1845       for reading:
1846          ./.mkisofsrc
1847          $MKISOFSRC
1848          $HOME/.mkisofsrc
1849          $(dirname $0)/.mkisofsrc
1850       On success it interprets the file content  and  does  not  try  further
1851       files.   The  last  address  is  used  only  if  start argument 0 has a
1852       non-trivial dirname.
1853       The reader currently interprets the following NAME=VALUE pairs:
1854        APPI default for -A
1855        PUBL default for -publisher
1856        SYSI default for -sysid
1857        VOLI default for -V
1858        VOLS default for -volset
1859       Any other lines will be silently ignored.
1860

ENVIRONMENT

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

SEE ALSO

1878       For generic xorriso command mode
1879              xorriso(1)
1880
1881       For the cdrecord emulation of xorriso
1882              xorrecord(1)
1883
1884       For mounting xorriso generated ISO 9660 images (-t iso9660)
1885              mount(8)
1886
1887       Other programs which produce ISO 9660 images
1888              mkisofs(8), genisoimage(8)
1889
1890       Programs which burn sessions to optical media
1891              growisofs(1), cdrecord(1), wodim(1), cdrskin(1), xorriso(1)
1892
1893       ACL and xattr
1894              getfacl(1), setfacl(1), getfattr(1), setfattr(1)
1895
1896       MD5 checksums
1897              md5sum(1)
1898
1899       On FreeBSD the commands for xattr and MD5 differ
1900              getextattr(8), setextattr(8), md5(1)
1901

BUGS

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

AUTHOR

1912       Thomas Schmitt <scdbackup@gmx.net>
1913       for libburnia-project.org
1914
1916       Copyright (c) 2011 - 2023 Thomas Schmitt
1917       Permission is granted to distribute this text freely. It shall only  be
1918       modified  in sync with the technical properties of xorriso. If you make
1919       use of the license to derive modified versions of xorriso then you  are
1920       entitled to modify this text under that same license.
1921

CREDITS

1923       xorrisofs  is  in  part  based  on  work by Vreixo Formoso who provides
1924       libisofs together with Mario Danic who also leads the  libburnia  team.
1925       Vladimir  Serbinenko  contributed  the HFS+ filesystem code and related
1926       knowledge.
1927       Compliments towards Joerg Schilling whose cdrtools served  me  for  ten
1928       years.
1929
1930
1931
1932                          Version 1.5.6, Jun 07, 2023             XORRISOFS(1)
Impressum