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

NAME

6       xorriso  -  creates,  loads, manipulates and writes ISO 9660 filesystem
7       images with Rock Ridge extensions.
8

SYNOPSIS

10       xorriso [settings|actions]
11

DESCRIPTION

13       xorriso is a program which copies file  objects  from  POSIX  compliant
14       filesystems  into Rock Ridge enhanced ISO 9660 filesystems and performs
15       session-wise  manipulation  of  such  filesystems.  It  can  load   the
16       management information of existing ISO images and it writes the session
17       results to optical media or to filesystem objects.
18       Vice versa xorriso is able  to  copy  file  objects  out  of  ISO  9660
19       filesystems.
20
21       A  special property of xorriso is that it needs neither an external ISO
22       9660 formatter program nor an external burn program for CD, DVD  or  BD
23       but rather incorporates the libraries of libburnia-project.org .
24
25   Overview of features:
26       Operates on an existing ISO image or creates a new one.
27       Copies files from disk filesystem into the ISO image.
28       Copies files from ISO image to disk filesystem (see osirrox).
29       Renames or deletes file objects in the ISO image.
30       Changes file properties in the ISO image.
31       Updates ISO subtrees incrementally to match given disk subtrees.
32       Writes  result  either  as completely new image or as add-on session to
33       optical media or filesystem objects.
34       Can activate ISOLINUX and GRUB boot images via El Torito and MBR.
35       Can perform multi-session tasks as emulation of mkisofs and cdrecord.
36       Can record and restore hard links and ACL.
37       Content may get zisofs compressed or filtered by external processes.
38       Can issue commands to mount older sessions on GNU/Linux or FreeBSD.
39       Can check media for damages and copy readable blocks to disk.
40       Can attach MD5 checksums to each data file and the whole session.
41       Scans for optical drives, blanks re-useable optical media.
42       Reads its instructions from command line arguments, dialog, and files.
43       Provides navigation commands for interactive ISO image manipulation.
44       Adjustable thresholds for abort, exit value, and problem reporting.
45
46       Note that xorriso does not write audio CDs and that it does not produce
47       UDF filesystems which are specified for official video DVD or BD.
48
49   General information paragraphs:
50       Session model
51       Media types and states
52       Creating, Growing, Modifying, Blind Growing
53       Libburn drives
54       Rock Ridge, POSIX, X/Open, El Torito, ACL, xattr
55       Command processing
56       Dialog, Readline, Result pager
57
58       Maybe you first want to have a look at section EXAMPLES near the end of
59       this text before reading the  next  few  hundred  lines  of  background
60       information.
61
62   Session model:
63       Unlike  other  filesystems, ISO 9660 (aka ECMA-119) is not intended for
64       read-write operation but rather for being generated in a  single  sweep
65       and being written to media as a session.
66       The data content of the session is called filesystem image.
67
68       The  written  image in its session can then be mounted by the operating
69       system for being used read-only. GNU/Linux is able to mount ISO  images
70       from  block  devices, which may represent optical media, other media or
71       via a loop device even from regular  disk  files.  FreeBSD  mounts  ISO
72       images from devices that represent arbitrary media or from regular disk
73       files.
74
75       This session usage model has been extended on CD media by  the  concept
76       of multi-session , which adds information to the CD and gives the mount
77       programs of the operating systems the addresses of the entry points  of
78       each   session.  The  mount  programs  recognize  block  devices  which
79       represent CD media and will by default mount  the  image  in  the  last
80       session.
81       This  session  usually contains an updated directory tree for the whole
82       medium which governs the data contents in all recorded sessions.  So in
83       the  view  of  the  mount  program  all sessions of a particular medium
84       together form a single filesystem image.
85       Adding a session to an existing ISO image is in this text  referred  as
86       growing.
87       The multi-session model of the MMC standard does not apply to all media
88       types. But program growisofs by Andy Polyakov showed how to extend this
89       functionality  to  overwriteable  media or disk files which carry valid
90       ISO 9660 filesystems.
91
92       xorriso provides growing as well as an own method named modifying which
93       produces  a  completely  new  ISO  image  from  the  old  one  and  the
94       modifications.   See  paragraph  Creating,  Growing,  Modifying,  Blind
95       Growing below.
96
97       xorriso  adopts  the  concept  of  multi-session  by  loading  an image
98       directory tree if present, by offering  to  manipulate  it  by  several
99       actions, and by writing the new image to the target medium.
100       The  first  session  of  a  xorriso run begins by the definition of the
101       input drive with the ISO image or by the definition of an output drive.
102       The  session  ends by command -commit which triggers writing. A -commit
103       is done automatically when the program ends regularly.
104
105       After -commit a new session begins with  the  freshly  written  one  as
106       input.   A new input drive can only be chosen as long as the loaded ISO
107       image was not altered. Pending alteration can  be  revoked  by  command
108       -rollback.
109
110       Writing  a  session  to  the target is supposed to be very expensive in
111       terms of time and of consumed space on appendable or write-once  media.
112       Therefore  all  intended manipulations of a particular ISO image should
113       be done in a single session. But in principle it is possible  to  store
114       intermediate states and to continue with image manipulations.
115
116   Media types and states:
117       There are two families of media in the MMC standard:
118       Multi-session  media are CD-R, CD-RW, DVD-R, DVD+R, DVD+R/DL, BD-R, and
119       unformatted DVD-RW. These  media  provide  a  table  of  content  which
120       describes their existing sessions. See command -toc.
121       Similar  to  multi-session  media  are  DVD-R  DL and minimally blanked
122       DVD-RW.  They record only a single session of which the  size  must  be
123       known  in advance.  xorriso will write onto them only if command -close
124       is set to "on".
125       Overwriteable media are DVD-RAM, DVD+RW, BD-RE, and  formatted  DVD-RW.
126       They  offer  random  write  access but do not provide information about
127       their session history. If they contain one or more  ISO  9660  sessions
128       and  if  the  first  session  was  written  by xorriso, then a table of
129       content can be emulated. Else only a single  overall  session  will  be
130       visible.
131       DVD-RW  media  can  be  formatted  by -format "full".  They can be made
132       unformatted by -blank "deformat".
133       Regular files and block devices are  handled  as  overwriteable  media.
134       Pipes and other writeable file types are handled as blank multi-session
135       media.
136
137       These media can assume several states in  which  they  offer  different
138       capabilities.
139       Blank  media  can  be  written  from scratch. They contain no ISO image
140       suitable for xorriso.
141       Blank is the state of newly purchased optical media.  With  used  CD-RW
142       and   DVD-RW   it   can  be  achieved  by  action  -blank  "as_needed".
143       Overwriteable media are considered blank if they are  new  or  if  they
144       have been marked as blank by xorriso.  Action -blank "as_needed" can be
145       used to do this marking on overwriteable media, or to  apply  mandatory
146       formatting to new media if necessary.
147       Appendable   media   accept  further  sessions.  Either  they  are  MMC
148       multi-session media in appendable  state,  or  they  are  overwriteable
149       media which contain an ISO image suitable for xorriso.
150       Appendable  is  the  state  after writing a session with command -close
151       off.
152       Closed media cannot be written. They may contain an ISO image  suitable
153       for xorriso.
154       Closed  is  the state of DVD-ROM media and of multi-session media which
155       were written with command -close on. If the drive is read-only hardware
156       then it will probably show any media as closed CD-ROM or DVD-ROM.
157       Overwriteable  media  assume  this state in such read-only drives or if
158       they contain unrecognizable data in the first 32 data blocks.
159       Read-only drives may or may not show session histories of multi-session
160       media. Often only the first and the last session are visible. Sometimes
161       not even that. Command -rom_toc_scan might or might not  help  in  such
162       cases.
163
164   Creating, Growing, Modifying, Blind Growing:
165       A  new  empty  ISO image gets created if there is no input drive with a
166       valid ISO 9660 image when the first time an output  drive  is  defined.
167       This  is  achieved by command -dev on blank media or by command -outdev
168       on media in any state.
169       The new empty image  can  be  populated  with  directories  and  files.
170       Before  it can be written, the medium in the output drive must get into
171       blank state if it was not blank already.
172
173       If there is a input drive with a valid ISO image, then this image  gets
174       loaded as foundation for manipulations and extension. The constellation
175       of input and output drive determines which write method will  be  used.
176       They have quite different capabilities and constraints.
177
178       The method of growing adds new data to the existing data on the medium.
179       These data comprise of new file content and they override the  existing
180       ISO 9660 + Rock Ridge directory tree. It is possible to hide files from
181       previous sessions but they still exist on  the  medium  and  with  many
182       types  of  optical  media  it is quite easy to recover them by mounting
183       older sessions.
184       Growing is achieved by command -dev.
185
186       The write method of modifying produces compact filesystem  images  with
187       no outdated files or directory trees. Modifying can write its images to
188       target  media  which  are  completely  unsuitable   for   multi-session
189       operations.    E.g.    DVD-RW    which   were   treated   with   -blank
190       deformat_quickest, DVD-R DL, named pipes, character  devices,  sockets.
191       On  the  other  hand  modified sessions cannot be written to appendable
192       media but to blank media only.
193       So for this method one needs either two optical drives or has  to  work
194       with filesystem objects as source and/or target medium.
195       Modifying  takes place if input drive and output drive are not the same
196       and if command -grow_blindly is set to  its  default  "off".   This  is
197       achieved by commands -indev and -outdev.
198
199       If  command -grow_blindly is set to a non-negative number and if -indev
200       and -outdev are both set to different drives,  then  blind  growing  is
201       performed.  It  produces  an  add-on  session  which is ready for being
202       written to the given block address. This is the usage model of
203        mkisofs -M $indev -C $msc1,$msc2 -o $outdev
204       which gives much room for wrong parameter combinations and should  thus
205       only  be employed if a strict distinction between ISO formatter xorriso
206       and the burn program is desired. -C $msc1,$msc2 is equivalent to:
207        -load sbsector $msc1 -grow_blindly $msc2
208
209   Libburn drives:
210       Input drive, i.e. source of an existing or empty ISO image, can be  any
211       random access readable libburn drive: optical media with readable data,
212       blank optical media, regular files, block devices.
213       Output drive, i.e. target for writing, can be any libburn drive.   Some
214       drive  types  do not support the method of growing but only the methods
215       of modifying and blind growing. They all are suitable for newly created
216       images.
217
218       All  drive  file  objects  have  to  offer rw-permission to the user of
219       xorriso.  Even those which will not  be  useable  for  reading  an  ISO
220       image.
221       With  any type of drive object, the data are considered to be organized
222       in blocks of 2 KiB. Access happens in terms of  Logical  Block  Address
223       (LBA) which gives the number of a particular data block.
224
225       MMC  compliant (i.e. optical) drives on GNU/Linux usually get addressed
226       by the path of their block device or of their generic character device.
227       E.g.
228         -dev /dev/sr0
229         -dev /dev/hdc
230         -dev /dev/sg2
231       By  default  xorriso  will try to map the given address to /dev/hd* and
232       /dev/sr*.  The command -scsi_dev_family can redirect the  mapping  from
233       sr  to  scd  or  sg.   The  latter does not suffer from the concurrency
234       problems which plague /dev/sr of Linux kernels since version 3. But  it
235       does  not  yield  the  same  addresses which are used by mount(8) or by
236       open(2) for read(2).
237       On FreeBSD the device files have names like
238         -dev /dev/cd0
239       On NetBSD:
240         -dev /dev/rcd0d
241       On OpenSolaris:
242         -dev /dev/rdsk/c4t0d0s2
243       Get a list of accessible drives by command
244         -device_links
245       It might be necessary to do this as  superuser  in  order  to  see  all
246       drives and to then allow rw-access for the intended users.  Consider to
247       bundle the authorized users in a group like old "floppy".
248
249       Filesystem objects of nearly  any  type  can  be  addressed  by  prefix
250       "stdio:" and their path in the filesystem. E.g.:
251         -dev stdio:/dev/sdc
252       The  default  setting  of -drive_class allows the user to address files
253       outside the /dev tree without that prefix. E.g.:
254         -dev /tmp/pseudo_drive
255       If path leads to a regular file or to a block device then the  emulated
256       drive  is  random  access  readable  and  can be used for the method of
257       growing if it already contains a valid ISO 9660 image. Any  other  file
258       type  is  not  readable via "stdio:" and can only be used as target for
259       the method of  modifying  or  blind  growing.   Non-existing  paths  in
260       existing directories are handled as empty regular files.
261
262       A very special kind of pseudo drive are open file descriptors. They are
263       depicted by "stdio:/dev/fd/" and descriptor number (see man 2 open).
264       Addresses  "-"  or  "stdio:/dev/fd/1"  depict  standard  output,  which
265       normally  is  the  output channel for result texts.  To prevent a fatal
266       intermingling of ISO image and text  messages,  all  result  texts  get
267       redirected  to  stderr  if  -*dev "-" or "stdio:/dev/fd/1" is among the
268       start arguments of the program.
269       Standard output is currently suitable  for  creating  one  session  per
270       program  run without dialog. Use in other situations is discouraged and
271       several restrictions apply:
272       It is not allowed to use standard output as pseudo drive if it was  not
273       among  the  start  arguments.  Do not try to fool this ban via backdoor
274       addresses to stdout.
275       If stdout is used as drive, then -use_readline is permanently disabled.
276       Use of backdoors can cause severe memory and/or tty corruption.
277
278       Be  aware  that  especially the superuser can write into any accessible
279       file or device by using its path with the "stdio:" prefix.  By  default
280       any  address in the /dev tree without prefix "stdio:" will work only if
281       it leads to a MMC drive.
282       One may use command -ban_stdio_write to surely prevent this risk and to
283       restrict drive usage to MMC drives.
284       One  may  prepend  "mmc:"  to  a  path to surely disallow any automatic
285       "stdio:".
286       By command -drive_class one may  ban  certain  paths  or  allow  access
287       without prefix "stdio:" to other paths.
288
289   Rock Ridge, POSIX, X/Open, El Torito, ACL, xattr:
290       Rock Ridge is the name of a set of additional information which enhance
291       an ISO 9660 filesystem so that  it  can  represent  a  POSIX  compliant
292       filesystem  with  ownership,  access  permissions,  symbolic links, and
293       other attributes.
294       This is what xorriso uses for a decent representation of the disk files
295       within  the  ISO  image.  xorriso  produces  Rock  Ridge information by
296       default. It is strongly discouraged to disable this feature.
297
298       xorriso is  not  named  "porriso"  because  POSIX  only  guarantees  14
299       characters  of  filename  length.  It  is  the  X/Open System Interface
300       standard XSI which demands a file name length of up to  255  characters
301       and paths of up to 1024 characters. Rock Ridge fulfills this demand.
302
303       An  El Torito boot record points the BIOS bootstrapping facility to one
304       or more boot images, which are binary program files stored in  the  ISO
305       image.   The  content of the boot image files is not in the scope of El
306       Torito.
307       Most bootable GNU/Linux CDs are equipped with  ISOLINUX  or  GRUB  boot
308       images.   xorriso  is  able  to  create or maintain an El Torito object
309       which  makes  such  an  image  bootable.  For   details   see   command
310       -boot_image.
311       It  is  possible  to  make  ISO images bootable from USB stick or other
312       hard-disk-like media.  Several  options  install  a  MBR  (Master  Boot
313       Record),  It  may  get  adjusted according to the needs of the intended
314       boot firmware and the involved boot loaders, e.g. GRUB2 or ISOLINUX.  A
315       MBR  contains  boot  code  and  a  partition  table.   The new MBR of a
316       follow-up session can get in effect only on overwriteable media.
317       MBR is read by PC-BIOS when booting from USB stick or hard disk, and by
318       PowerPC  CHRP  or  PReP  when  booting.  An MBR partiton with type 0xee
319       indicates the presence of GPT.
320       Emulation -as mkisofs supports the example options out of the  ISOLINUX
321       wiki, the options used in GRUB script grub-mkrescue, and the example in
322       the FreeBSD AvgLiveCD wiki.
323       A GPT (GUID Partition Table) marks partitions in a more modern way.  It
324       is  read  by  EFI  when booting from USB stick or hard disk, and may be
325       used for finding and mounting a HFS+ partition inside the ISO image.
326       An APM (Apple Partition Map) marks the HFS+ partition.  It is  read  by
327       Macs for booting and for mounting.
328       MBR,  GPT and APM are combinable. APM occupies the first 8 bytes of MBR
329       boot code. All three do not hamper El Torito booting from CDROM.
330       There is support for further facilities: MIPS Big  Endian  (SGI),  MIPS
331       Little  Endian  (DEC),  SUN  SPARC,  HP-PA.   Those  are  mutually  not
332       combinable and also not combinable with MBR, GPT, or APM.
333
334       ACL are an advanced way  of  controlling  access  permissions  to  file
335       objects.  Neither ISO 9660 nor Rock Ridge specify a way to record ACLs.
336       So libisofs has introduced a standard conformant extension  named  AAIP
337       for that purpose.  It uses this extension if enabled by command -acl.
338       AAIP  enhanced  images  are  supposed to be mountable normally, but one
339       cannot expect that the mounted filesystem will  show  and  respect  the
340       ACLs.   For  now,  only xorriso is able to retrieve those ACLs.  It can
341       bring them into effect when files get restored to an ACL  enabled  file
342       system or it can print them in a format suitable for tool setfacl.
343       Files  with ACL show as group permissions the setting of entry "mask::"
344       if that entry exists. Nevertheless the  non-listed  group  members  get
345       handled  according  to  entry "group::". When removing ACL from a file,
346       xorriso brings "group::" into effect.
347       Recording and restoring of ACLs from and to local files works currently
348       only on GNU/Linux and FreeBSD.
349
350       xattr  (aka  EA,  or  extattr) are pairs of name and value which can be
351       attached to file objects. AAIP is able to represent  them  and  xorriso
352       can  record  and  restore  pairs  which  have  names  out  of  the user
353       namespace. I.e. those  which  begin  with  "user.",  like  "user.x"  or
354       "user.whatever".  Name  has  to be a 0 terminated string.  Value may be
355       any array of bytes which does not exceed the size of 4095 bytes.  xattr
356       processing happens only if it is enabled by command -xattr.
357       As with ACL, currently only xorriso is able to retrieve xattr from AAIP
358       enhanced images, to restore them to xattr capable file systems,  or  to
359       print them.
360       Recording  and  restoring  of  xattr  from  and  to  local  files works
361       currently only on GNU/Linux  and  FreeBSD,  where  they  are  known  as
362       extattr.
363
364   Command processing:
365       Commands  are either actions which happen immediately or settings which
366       influence following actions. So their sequence does matter, unless they
367       are given as program arguments and command -x is among them.
368       Commands  consist of a command word, followed by zero or more parameter
369       words. If the list of parameter words is of variable length  (indicated
370       by  "[...]"  or  "[***]") then it must be terminated by either the list
371       delimiter, occur at the end of the argument list, or occur at  the  end
372       of an input line.
373
374       At  program  start  the list delimiter is the string "--".  This may be
375       changed with the -list_delimiter command in  order  to  allow  "--"  as
376       parameter  in  a variable length list.  However, it is advised to reset
377       the delimiter to "--" immediately afterwards.
378       For brevity the list delimiter is  referred  as  "--"  throughout  this
379       text.
380       The  list  delimiter  is  silently  ignored  if  it  appears  after the
381       parameters of a command with a fixed list  length.  It  is  handled  as
382       normal text if it appears among the parameters of such a command.
383
384       Pattern  expansion  converts  a  list  of  pattern words into a list of
385       existing file addresses.  Unmatched pattern words will appear unaltered
386       in that result list.
387       Pattern  matching  supports  the  usual  shell parser wildcards '*' '?'
388       '[xyz]' and respects '/' as the  path  separator,  which  may  only  be
389       matched literally.
390       Pattern  expansion  is a property of some particular commands and not a
391       general feature. It  is  controlled  by  commands  -iso_rr_pattern  and
392       -disk_pattern.   Commands which use pattern expansion all have variable
393       parameter lists which are specified in this text by "[***]" rather than
394       "[...]".
395       Some other commands perform pattern matching unconditionally.
396
397       Command and parameter words are either read from the program arguments,
398       where one argument is one word, or from quoted input lines where  words
399       are recognized similar to the quotation rules of a shell parser.
400       xorriso  is  not a shell, although it might appear so at first glimpse.
401       Be aware that the interaction of quotation marks  and  pattern  symbols
402       like  "*" differs from the usual shell parsers. In xorriso, a quotation
403       mark does not make a pattern symbol literal.
404
405       Quoted input converts whitespace-separated text into words.  The double
406       quotation mark " and the single quotation mark ' can be used to enclose
407       whitespace and make it part of words (e.g. of file  names).  Each  mark
408       type  can  enclose  the marks of the other type. A trailing backslash \
409       outside quotations or an open quotation cause the next input line to be
410       appended.
411       Quoted  input accepts any 8-bit character except NUL (0) as the content
412       of the quotes.  Nevertheless it can  be  cumbersome  for  the  user  to
413       produce  those  characters directly. Therefore quoted input and program
414       arguments offer optional Backslash Interpretation which  can  represent
415       all 8-bit characters except NUL (0) via backslash codes as in $'...' of
416       bash.
417       This is not enabled by default. See command -backslash_codes.
418
419       When the program starts then it first looks  for  argument  -no_rc.  If
420       this is not present then it looks for its startup files and reads their
421       content  as  command  input  lines.  Then  it  interprets  the  program
422       arguments  as commands and parameters. Finally it enters dialog mode if
423       command -dialog "on" has been executed by this point.
424
425       The program ends either by command -end,  or  by  the  end  of  program
426       arguments  if  dialog  mode has not been enabled at that point, or by a
427       problem event which triggers the threshold of command -abort_on.
428
429   Dialog, Readline, Result pager:
430       Dialog mode prompts for a quoted input line, parses it into words,  and
431       performs  them as commands with their parameters. It provides assisting
432       services to make dialog more comfortable.
433
434       Readline is an enhancement for the input line. You may already know  it
435       from  the bash shell. Whether it is available in xorriso depends on the
436       availability of package readline-dev at the time when xorriso was built
437       from its sourcecode.
438       Readline  lets  the  user  move the cursor over the text in the line by
439       help of the Left and the Right arrow keys.  Text may be inserted at the
440       cursor position. The Delete key removes the character under the cursor.
441       Up and Down arrow keys navigate through the history of  previous  input
442       lines.
443       See man readline for more info about libreadline.
444
445       Command  -page  activates  a  built-in  result  text pager which may be
446       convenient in dialog mode. After an action has output the given  number
447       of terminal lines, the pager prompts the user for a line of input.
448       An empty line lets xorriso resume work until the next page is output.
449       The single character "@" disables paging for the current action.
450       "@@@", "x", "q", "X", or "Q" request that the current action aborts and
451       suppress further result output.
452       Any other line input will  be  interpreted  as  new  dialog  line.  The
453       current  action  is  requested  to abort. Afterwards, the input line is
454       executed.
455
456       Some actions apply paging to their info output, too.
457       The request to abort may or may not be obeyed by  the  current  action.
458       All actions try to abort as soon as possible.
459

OPTIONS

461       All  command  words are shown with a leading dash although this dash is
462       not mandatory for the command to  be  recognized.  Nevertheless  within
463       command -as the dashes of the emulated commands are mandatory.
464       Normally any number of leading dashes is ignored with command words and
465       inner dashes are interpreted as underscores.
466
467       Execution order of program arguments:
468
469       By default the program arguments of a xorriso run are interpreted as  a
470       sequence  of  commands  which get performed exactly in the given order.
471       This requires the user to write commands for  desired  settings  before
472       the commands which shall be influenced by those settings.
473       Many  other programs support program arguments in an arbitrary ordering
474       and perform settings and actions in a sequence at their own discretion.
475       xorriso  provides  an  option  to enable such a behavior at the cost of
476       loss of expressivity.
477
478       -x     Enable automatic sorting of program arguments  into  a  sequence
479              that  (most  likely)  is sensible.  This command may be given at
480              any position among the commands which are handed over as program
481              arguments.
482              Note:  It works only if it is given as program argument and with
483              a single dash (i.e. "-x"). It will not work  in  startup  files,
484              nor  with -options_from_file, nor in dialog mode, nor as "x" and
485              finally not as "--x".  It affects only  the  commands  given  as
486              program arguments.
487
488       -list_arg_sorting
489              List  all xorriso commands in the order which applies if command
490              -x is in effect.
491              This list may also be helpful without -x for a user who  ponders
492              over  the sequence in which to put commands. Deviations from the
493              listed sorting order may well make sense, though.
494
495       Acquiring source and target drive:
496
497       The effect of acquiring a drive may depend on several commands  in  the
498       next  paragraph  "Influencing  the  behavior  of  image  loading".   If
499       desired, their enabling  commands  have  to  be  performed  before  the
500       commands which acquire the drive.
501
502       -dev address
503              Set  input  and output drive to the same address and load an ISO
504              image if it is present.  If there is no ISO image then create  a
505              blank one.  Set the image expansion method to growing.
506              This  is  only  allowed as long as no changes are pending in the
507              currently loaded ISO image. If changes are pending, then one has
508              to perform -commit or -rollback first.
509              Special  address  string  "-"  means  standard  output, to which
510              several  restrictions  apply.  See  above   paragraph   "Libburn
511              drives".
512              An  empty  address string "" gives up the current device without
513              acquiring a new one.
514
515       -indev address
516              Set input drive and load an ISO image if present.   If  the  new
517              input  drive  differs  from  -outdev then switch from growing to
518              modifying or to blind growing.  It depends  on  the  setting  of
519              -grow_blindly  which of both gets activated.  The same rules and
520              restrictions apply as with -dev.
521
522       -outdev address
523              Set output drive and if it differs from  the  input  drive  then
524              switch  from  growing  to  modifying or to blind growing. Unlike
525              -dev and -indev this action does not load a new ISO image. So it
526              can be performed even if there are pending changes.
527              -outdev  can  be  performed  without previous -dev or -indev. In
528              that case an empty ISO image with no changes pending is created.
529              It  can  either  be populated by help of -map, -add et.al. or it
530              can be discarded  silently  if  -dev  or  -indev  are  performed
531              afterwards.
532              Special  address  string  "-"  means  standard  output, to which
533              several  restrictions  apply.  See  above   paragraph   "Libburn
534              drives".
535              An  empty  address  string  "" gives up the current output drive
536              without acquiring a new one. No writing is possible  without  an
537              output drive.
538
539       -scsi_dev_family "default"|"sr"|"scd"|"sg"
540              GNU/Linux specific:
541              By  default,  xorriso  tries  to  map  Linux  drive addresses to
542              /dev/sr* before they get opened for operating  the  drive.  This
543              coordinates  well  with  other use cases of optical drives, like
544              mount(8). But since year 2010 all /dev/sr* share a  global  lock
545              which allows only one drive to process an SCSI command while all
546              others have to wait  for  its  completion.   This  yields  awful
547              throughput  if  more  than  one  drive  is  writing  or  reading
548              simultaneously.  The global lock is not applied to device  files
549              /dev/sg*  and also not if the xorriso drive address is prepended
550              by "stdio:".
551              So  for  simultaneous  burn  runs  on  modern  GNU/Linux  it  is
552              advisable  to  perform  -scsi_dev_family  "sg"  before any -dev,
553              -indev, or -outdev. The drive addresses may then well  be  given
554              as  /dev/sr*  but  will  nevertheless  get  used as the matching
555              /dev/sg*.
556              If you decide so, consider to put  the  command  into  a  global
557              startup file like /etc/opt/xorriso/rc.
558
559       -grow_blindly "off"|predicted_nwa
560              If  predicted_nwa  is  a  non-negative number then perform blind
561              growing rather than modifying if -indev and -outdev are  set  to
562              different  drives.   "off" or "-1" switch to modifying, which is
563              the default.
564              predicted_nwa is the block address where the add-on  session  of
565              blind  growing  will finally end up. It is the responsibility of
566              the user to ensure this final position and the presence  of  the
567              older sessions. Else the overall ISO image will not be mountable
568              or will produce read errors when accessing file content. xorriso
569              will write the session to the address as obtained from examining
570              -outdev and not necessarily to predicted_nwa.
571              During a run of blind growing,  the  input  drive  is  given  up
572              before  output begins. The output drive is given up when writing
573              is done.
574
575       Influencing the behavior of image loading:
576
577       The following commands should normally be performed before  loading  an
578       image  by  acquiring  an  input drive. In rare cases it is desirable to
579       activate them only after image loading.
580
581       -read_speed code|number[k|m|c|d|b]
582              Set the speed for reading. Default is "none",  which  avoids  to
583              send a speed setting command to the drive before reading begins.
584              Further special speed codes are:
585              "max" (or "0") selects maximum speed as announced by the drive.
586              "min" (or "-1") selects minimum speed as announced by the drive.
587              Speed  can  be  given in media dependent numbers or as a desired
588              throughput per second in MMC compliant kB (= 1000) or MB (= 1000
589              kB).  Media  x-speed factor can be set explicitly by "c" for CD,
590              "d" for DVD, "b" for BD, "x" is optional.
591              Example speeds:
592               706k = 706kB/s = 4c = 4xCD
593               5540k = 5540kB/s = 4d = 4xDVD
594              If there is no hint about the  speed  unit  attached,  then  the
595              medium in the -indev will decide. Default unit is CD = 176.4k.
596              Depending  on  the  drive,  the  reported  read  speeds  can  be
597              deceivingly low or high. Therefore "min"  cannot  become  higher
598              than  1x  speed  of  the  involved medium type. Read speed "max"
599              cannot become lower than 52xCD, 24xDVD, or 20xBD,  depending  on
600              the medium type.
601              MMC drives usually activate their own idea of speed and take the
602              speed value given by the burn program only as hint for their own
603              decision.
604
605       -load entity id
606              Load  a  particular (possibly outdated) ISO session from -dev or
607              -indev.  Usually all available sessions are shown  with  command
608              -toc.
609              entity depicts the kind of addressing. id depicts the particular
610              address. The following entities are defined:
611              "auto" with any id addresses the last session in -toc.  This  is
612              the default.
613              "session"  with  id  being  a number as of a line "ISO session",
614              column "Idx".
615              "track" with id being a number as of a line "ISO track",  column
616              "Idx".
617              "lba" or "sbsector" with a number as of a line "ISO ...", column
618              "sbsector".
619              "volid" with a search pattern for a text as of a line "ISO ...",
620              column "Volume Id".
621              Addressing a non-existing entity or one which does not represent
622              an ISO image will either abandon -indev or at least  lead  to  a
623              blank image.
624              If  an  input drive is set at the moment when -load is executed,
625              then the addressed ISO image is loaded  immediately.  Else,  the
626              setting will be pending until the next -dev or -indev. After the
627              image has been loaded once, the setting is valid  for  -rollback
628              until next -dev or -indev, where it will be reset to "auto".
629
630       -displacement [-]lba
631              Compensate  a displacement of the image versus the start address
632              for which the image was prepared. This affects only  loading  of
633              ISO  images and reading of their files. The multi-session method
634              of growing is not allowed as long as -displacement is  non-zero.
635              I.e. -indev and -outdev must be different. The displacement gets
636              reset to 0 before the drive gets re-acquired after writing.
637              Examples:
638              If a track of a CD starts at block 123456 and gets copied  to  a
639              disk  file  where  it  begins  at block 0, then this copy can be
640              loaded with -displacement -123456.
641              If an ISO image was written onto  a  partition  with  offset  of
642              640000  blocks of 512 bytes, then it can be loaded from the base
643              device by -displacement 160000.
644              In both cases, the ISO sessions should be self  contained,  i.e.
645              not  add-on  sessions  to  an  ISO  image outside their track or
646              partition.
647
648       -drive_class "harmless"|"banned"|"caution"|"clear_list" disk_pattern
649              Add a drive path pattern to one of  the  safety  lists  or  make
650              those  lists  empty.   There  are  three lists defined which get
651              tested in the following sequence:
652              If a drive address path matches the  "harmless"  list  then  the
653              drive  will  be  accepted.  If  it  is not a MMC device then the
654              prefix "stdio:" will be prepended automatically.  This  list  is
655              empty by default.
656              Else  if  the path matches the "banned" list then the drive will
657              not be accepted by xorriso but rather lead to a  FAILURE  event.
658              This list is empty by default.
659              Else  if  the path matches the "caution" list and if it is not a
660              MMC device, then its address must have the prefix "stdio:" or it
661              will be rejected.  This list has by default one entry: "/dev".
662              If   a  drive  path  matches  no  list  then  it  is  considered
663              "harmless". By default these are all paths which  do  not  begin
664              with directory "/dev".
665              A  path  matches  a  list  if  one of its parent paths or itself
666              matches a list entry. Address prefix "stdio:" or "mmc:" will  be
667              ignored when testing for matches.
668              By   pseudo-class  "clear_list"  and  pseudo-patterns  "banned",
669              "caution", "harmless", or "all", the lists may be made empty.
670              E.g.: -drive_class clear_list banned
671              One will normally define the -drive_class lists in  one  of  the
672              xorriso Startup Files.
673              Note: This is not a security feature but rather a bumper for the
674              superuser to prevent inadverted mishaps. For  reliably  blocking
675              access  to  a device file you have to deny its rw-permissions in
676              the filesystem.
677
678       -read_fs "any"|"norock"|"nojoliet"|"ecma119"
679              Specify which kind of filesystem tree to load if present. If the
680              wish  cannot  be  fulfilled,  then ECMA-119 names are loaded and
681              converted according to -ecma119_map.
682              "any" first tries to read Rock Ridge. If not present, Joliet  is
683              tried.
684              "norock" does not try Rock Ridge.
685              "nojoliet" does not try Joliet.
686              "ecma119" tries neither Rock Ridge nor Joliet.
687
688       -assert_volid pattern severity
689              Refuse to load ISO images with volume IDs which do not match the
690              given search pattern. When refusing an image, give up the  input
691              drive  and  issue  an event of the given severity (like FAILURE,
692              see -abort_on). An empty search pattern accepts any image.
693              This command does not hamper the creation of an empty image from
694              blank input media and does not discard an already loaded image.
695
696       -in_charset character_set_name
697              Set  the  character  set  from  which to convert file names when
698              loading an  image.  See  paragraph  "Character  sets"  for  more
699              explanations.   When loading the written image after -commit the
700              setting of -out_charset will be copied to -in_charset.
701
702       -auto_charset "on"|"off"
703              Enable or disable recording and  interpretation  of  the  output
704              character  set  name  in  an  xattr  attribute of the image root
705              directory. If enabled and if a recorded character  set  name  is
706              found,  then  this  name  will  be  used  as  name  of the input
707              character set when reading an image.
708              Note that the default output charset is the local character  set
709              of  the  terminal  where  xorriso  runs. Before attributing this
710              local character set to the produced ISO image, check whether the
711              terminal  properly  displays  all intended filenames, especially
712              exotic national characters.
713
714       -hardlinks mode[:mode...]
715              Enable or disable loading and recording of hardlink relations.
716              In default mode "off", iso_rr files lose their inode numbers  at
717              image  load  time.  Each  iso_rr  file object which has no inode
718              number at image generation time will  get  a  new  unique  inode
719              number if -compliance is set to new_rr.
720              Mode  "on" preserves inode numbers from the loaded image if such
721              numbers were recorded.  When committing a  session  it  searches
722              for families of iso_rr files which stem from the same disk file,
723              have identical content filtering and have identical  properties.
724              The family members all get the same inode number.  Whether these
725              numbers are respected at mount time  depends  on  the  operating
726              system.
727              Command -lsl displays hardlink counts if "lsl_count" is enabled.
728              This can slow down the command substantially  after  changes  to
729              the   ISO  image  have  been  made.  Therefore  the  default  is
730              "no_lsl_count".
731              Commands -update and -update_r track splits and fusions of  hard
732              links in filesystems which have stable device and inode numbers.
733              This can cause automatic last minute changes before the  session
734              gets written. Command -hardlinks "perform_update" may be used to
735              do these changes earlier, e.g. if you need to apply  filters  to
736              all updated files.
737              Mode  "without_update"  avoids hardlink processing during update
738              commands.  Use this if your filesystem situation does not  allow
739              -disk_dev_ino "on".
740              xorriso  commands  which  extract files from an ISO image try to
741              hardlink files with identical inode number. The normal scope  of
742              this operation is from image load to image load. One may give up
743              the   accumulated   hard   link    addresses    by    -hardlinks
744              "discard_extract".
745              A  large number of hardlink families may exhaust -temp_mem_limit
746              if     not     -osirrox     "sort_lba_on"     and     -hardlinks
747              "cheap_sorted_extract"  are  both in effect. This restricts hard
748              linking to other files  restored  by  the  same  single  extract
749              command.   -hardlinks   "normal_extract"   re-enables  wide  and
750              expensive hardlink accumulation.
751
752       -acl "on"|"off"
753              Enable or disable processing of ACLs.  If enabled, then  xorriso
754              will  obtain  ACLs from disk file objects, store ACLs in the ISO
755              image using the libisofs specific AAIP format,  load  AAIP  data
756              from  ISO  images,  test ACL during file comparison, and restore
757              ACLs to disk files when extracting them from  ISO  images.   See
758              also commands -getfacl, -setfacl.
759
760       -xattr "on"|"off"
761              Enable  or  disable  processing  of  xattr  attributes  in  user
762              namespace.  If enabled, then xorriso will handle  xattr  similar
763              to  ACL.   See  also  commands  -getfattr,  -setfattr  and above
764              paragraph about xattr.
765
766       -md5 "on"|"all"|"off"|"load_check_off"
767              Enable or disable processing of MD5 checksums  for  the  overall
768              session  and  for  each single data file. If enabled then images
769              with checksum tags get loaded only if the tags of superblock and
770              directory  tree  match properly. The MD5 checksums of data files
771              and whole session get loaded from the image if there are any.
772              With commands -compare and -update the recorded MD5  of  a  file
773              will  be  used to avoid content reading from the image. Only the
774              disk file content will be read and compared with that MD5.  This
775              can save much time if -disk_dev_ino "on" is not suitable.
776              At  image  generation time they are computed for each file which
777              gets its data written into the new  session.  The  checksums  of
778              files  which  have  their data in older sessions get copied into
779              the new session.  Superblock,  tree  and  whole  session  get  a
780              checksum tag each.
781              Mode  "all"  will  additionally  check  during  image generation
782              whether the checksum of a data file  changed  between  the  time
783              when  its reading began and the time when it ended. This implies
784              reading every file twice.
785              Mode "load_check_off" together with  "on"  or  "all"  will  load
786              recorded  MD5  sums  but  not test the recorded checksum tags of
787              superblock and directory tree.  This is necessary  if  growisofs
788              was  used  as  burn  program,  because it does not overwrite the
789              superblock  checksum  tag  of  the  first  session.    Therefore
790              load_check_off  is  in effect when xorriso -as mkisofs option -M
791              is performed.
792              The test can be re-enabled by mode "load_check_on".
793              Checksums   can   be   exploited   via   commands    -check_md5,
794              -check_md5_r,  via  find  actions  get_md5,  check_md5,  and via
795              -check_media.
796
797       -for_backup
798              Enable all extra features which help to produce  or  to  restore
799              backups  with  highest  fidelity  of file properties.  Currently
800              this is a shortcut for: -hardlinks on -acl on -xattr on -md5 on.
801
802       -ecma119_map "stripped"|"unmapped"|"lowercase"|"uppercase"
803              Choose the conversion of file names from the loaded  session  if
804              neither  a  Rock  Ridge name nor a Joliet name was read from the
805              session.
806              Mode "stripped" is the default. It shows the names as  found  in
807              the ISO but removes trailing ";1" or ".;1" if present.
808              Mode   "unmapped"   shows   names   as  found  without  removing
809              characters.
810              Mode "lowercase" is like  "stripped"  but  also  maps  uppercase
811              letters  to  lowercase  letters.  This  is compatible to default
812              GNU/Linux mount behavior.
813              Mode "uppercase" is like "stripped" but maps  lowercase  letters
814              to   uppercase,  if  any  occur  despite  the  prescriptions  of
815              ECMA-119.
816
817       -disk_dev_ino "on"|"ino_only"|"off"
818              Enable or disable processing  of  recorded  file  identification
819              numbers  (dev_t  and ino_t). If enabled they are stored as xattr
820              and can substantially accelerate file comparison. The root  node
821              gets  a global start timestamp. If during comparison a file with
822              younger timestamps is  found  in  the  ISO  image,  then  it  is
823              suspected to have inconsistent content.
824              If  device numbers and inode numbers of the disk filesystems are
825              persistent and if no  irregular  alterations  of  timestamps  or
826              system  clock  happen,  then  potential  content  changes can be
827              detected without reading that content.  File content  change  is
828              assumed  if  any  of mtime, ctime, device number or inode number
829              have changed.
830              Mode "ino_only" replaces the precondition  that  device  numbers
831              are stable by the precondition that mount points in the compared
832              tree always lead to the same filesystems. Use this if mode  "on"
833              always sees all files changed.
834              The  speed  advantage  appears  only  if  the loaded session was
835              produced with -disk_dev_ino "on" too.
836              Note that -disk_dev_ino "off"  is  totally  in  effect  only  if
837              -hardlinks is "off", too.
838
839       -file_name_limit [+]number
840              Set  the  maximum permissible length for file names in the range
841              of 64 to 255.  Path components which are longer than  the  given
842              number   will  get  truncated  and  have  their  last  33  bytes
843              overwritten by a colon ':' and the hex representation of the MD5
844              of  the  first 4095 bytes of the whole oversized name. Potential
845              incomplete  UTF-8  characters  will  get  their  leading   bytes
846              replaced by '_'.
847              iso_rr_paths  with  the  long  components  will still be able to
848              access the file paths with truncated components.
849              If -file_name_limit is executed while an ISO  tree  is  present,
850              the  file  names  in  the  ISO  tree  get  checked  for existing
851              truncated  file  names  of  the  current  limit  and  for   name
852              collisions between newly truncated files and existing files.  In
853              both cases, the setting will be refused with a SORRY event.
854              One may lift this ban by prepending the  character  "+"  to  the
855              argument  of  -file_name_limit. Truncated filenames may then get
856              truncated  again,  invalidating  their   MD5   part.   Colliding
857              truncated names are made unique, consuming at least 9 more bytes
858              of the remaining name part.
859              If writing of xattr is enabled, then the length will  be  stored
860              in  "isofs.nt"  of  the  root directory.  If reading of xattr is
861              enabled and "isofs.nt" is found, then the found length will  get
862              into  effect  if  it  is  smaller  than  the  current setting of
863              -file_name_limit.
864              File name patterns will only work if they  match  the  truncated
865              name.  This might change in future.
866              Files   with   truncated   names   get   deleted   and  re-added
867              unconditionally during -update and -update_r. This might  change
868              in future.
869              Linux  kernels  up  to at least 4.1 misrepresent names of length
870              254 and 255.  If you expect such names in  or  under  disk_paths
871              and plan to mount the ISO by such Linux kernels, consider to set
872              -file_name_limit 253.  Else just avoid  names  longer  than  253
873              characters.
874
875       -rom_toc_scan "on"|"force"|"off"[:"emul_off"][:"emul_wide"]
876              Read-only  drives do not tell the actual media type but show any
877              media as ROM (e.g. as  DVD-ROM).  The  session  history  of  MMC
878              multi-session media might be truncated to first and last session
879              or  even  be  completely  false.   (The  emulated   history   of
880              overwriteable media is not affected by this.)
881              To  have  in  case  of  failure  a chance of getting the session
882              history and especially the address of the last session, there is
883              a scan for ISO 9660 filesystem headers which might help but also
884              might yield worse results than the drive's table of content.  At
885              its end it can cause read attempts to invalid addresses and thus
886              ugly drive behavior.  Setting "on" enables that scan for alleged
887              read-only media.
888              Some  operating  systems  are  not able to mount the most recent
889              session of multi-session DVD or BD. If on such a system  xorriso
890              has  no own MMC capabilities then it may still find that session
891              from a scanned table of content.  Setting  "force"  handles  any
892              media like a ROM medium with setting "on".
893              On   the   other  hand  the  emulation  of  session  history  on
894              overwriteable media can hamper reading of partly damaged  media.
895              Setting   "off:emul_off"   disables   the  elsewise  trustworthy
896              table-of-content scan for those media.
897              The  table-of-content  scan  on  overwriteable  media   normally
898              searches only up to the end of the session that is pointed to by
899              the superblock at block 0.  Setting "on:emul_wide" lets the scan
900              continue  up to the end of the medium.  This may be useful after
901              copying a medium with -check_media patch_lba0=on  when  not  the
902              last session was loaded.
903
904       -calm_drive "in"|"out"|"all"|"revoke"|"on"|"off"
905              Reduce  drive noise until it is actually used again. Some drives
906              stay alert for substantial time after they have  been  used  for
907              reading.  This  reduces  the  startup  time  for  the next drive
908              operation but can be loud and waste energy if no  i/o  with  the
909              drive is expected to happen soon.
910              Modes  "in", "out", "all" immediately calm down -indev, -outdev,
911              or both, respectively.  Mode "revoke" immediately  alerts  both.
912              Mode "on" causes -calm_drive to be performed automatically after
913              each -dev, -indev, and -outdev. Mode "off" disables this.
914
915       -ban_stdio_write
916              Allow for writing only the usage of MMC optical drives. Disallow
917              to  write  the result into files of nearly arbitrary type.  Once
918              set, this command cannot be revoked.
919
920       -early_stdio_test "on"|"appendable_wo"|"off"
921              If enabled by "on" then regular  files  and  block  devices  get
922              tested  for  effective  access  permissions. This implies to try
923              opening those files for writing,  which  otherwise  will  happen
924              only later and only if actual writing is desired.
925              The  test  result  is  used for classifying the pseudo drives as
926              overwriteable, read-only, write-only, or uselessly  empty.  This
927              may  lead to earlier detection of severe problems, and may avoid
928              some less severe error events.
929              Mode "appendable_wo" is like "on" with the  additional  property
930              that  non-empty  write-only  files  are  regarded  as appendable
931              rather than blank.
932
933       -data_cache_size number_of_tiles blocks_per_tile
934              Set the size and granularity of the data  cache  which  is  used
935              when  ISO  images  are loaded and when file content is read from
936              ISO images. The cache consists  of  several  tiles,  which  each
937              consists  of several blocks. A larger cache reduces the need for
938              tiles being read multiple times. Larger tiles might additionally
939              improve  the data throughput from the drive, but can be wasteful
940              if the data are scattered over the medium.
941              Larger cache sizes help best with image loading from MMC drives.
942              They   are   an   inferior   alternative   to   -osirrox  option
943              "sort_lba_on".
944              blocks_per_tile must be a power of 2. E.g. 16, 32,  or  64.  The
945              overall  cache  size  must not exceed 1 GiB.  The default values
946              can be restored by parameter "default" instead of one or both of
947              the numbers.  Currently the default is 32 tiles of 32 blocks = 2
948              MiB.
949
950       Inserting files into ISO image:
951
952       The following commands expect file addresses of two kinds:
953       disk_path is a path to an object in the local filesystem tree.
954       iso_rr_path is the Rock Ridge name of a file object in the  ISO  image.
955       If  no Rock Ridge information is recorded in the loaded ISO image, then
956       you will see ISO 9660 names which are of limited length  and  character
957       set.   If  no Rock Ridge information shall be stored in an emerging ISO
958       image, then their names will get mapped to  such  restricted  ISO  9660
959       (aka ECMA-119) names.
960
961       Note that in the ISO image you are as powerful as the superuser. Access
962       permissions of the existing files in the image do  not  apply  to  your
963       write  operations. They are intended to be in effect with the read-only
964       mounted image.
965
966       If the iso_rr_path of a newly inserted file leads to an  existing  file
967       object in the ISO image, then the following collision handling happens:
968       If  both  objects  are  directories then they get merged by recursively
969       inserting the subobjects from filesystem into ISO image.  If other file
970       types collide then the setting of command -overwrite decides.
971       Renaming  of  files has similar collision handling, but directories can
972       only be replaced, not merged. Note that if the target directory exists,
973       then  -mv  inserts  the  source objects into this directory rather than
974       attempting to replace it. Command  -move,  on  the  other  hand,  would
975       attempt to replace it.
976
977       The  commands  in  this  section  alter the ISO image and not the local
978       filesystem.
979
980       -disk_pattern "on"|"ls"|"off"
981              Set the pattern expansion mode for the disk_path  parameters  of
982              several commands which support this feature.
983              Setting  "off"  disables this feature for all commands which are
984              marked in this man page by "disk_path  [***]"  or  "disk_pattern
985              [***]".
986              Setting "on" enables it for all those commands.
987              Setting  "ls"  enables  it  only  for  those which are marked by
988              "disk_pattern [***]".
989              Default is "ls".
990
991       -add pathspec [...] | disk_path [***]
992              Insert the given files or directory trees from  filesystem  into
993              the ISO image.
994              If  -pathspecs  is  set  to  "on"  or  "as_mkisofs" then pattern
995              expansion is always disabled and character  '='  has  a  special
996              meaning. It separates the ISO image path from the disk path:
997              iso_rr_path=disk_path
998              Character '=' in the iso_rr_path must be escaped by '\' (i.e. as
999              "\=").
1000              With -pathspecs "on", the character '\' must not be escaped. The
1001              character '=' in the disk_path must not be escaped.
1002              With -pathspecs "as_mkisofs", all characters '\' must be escaped
1003              in both, iso_rr_path and disk_path. The character '=' may or may
1004              not be escaped in the disk_path.
1005              If  iso_rr_path  does  not begin with '/' then -cd is prepended.
1006              If disk_path does not begin with '/' then -cdx is prepended.
1007              If no '=' is given then the word is used  as  both,  iso_rr_path
1008              and disk path.  If in this case the word does not begin with '/'
1009              then -cdx is prepended to the disk_path and -cd is prepended  to
1010              the iso_rr_path.
1011              If  -pathspecs  is  set  to  "off"  then -disk_pattern expansion
1012              applies, if enabled.  The resulting  words  are  used  as  both,
1013              iso_rr_path and disk path. Relative path words get prepended the
1014              setting  of  -cdx  to  disk_path  and  the  setting  of  -cd  to
1015              iso_rr_path.
1016
1017       -add_plainly mode
1018              If  set  to  mode  "unknown" then any command word that does not
1019              begin with "-" and is not recognized as known  command  will  be
1020              subject  to  a  virtual  -add  command.  I.e. it will be used as
1021              pathspec or as disk_path and added to the  image.   If  enabled,
1022              -disk_pattern expansion applies to disk_paths.
1023              Mode "dashed" is similar to "unknown" but also adds unrecognized
1024              command words even if they begin with "-".
1025              Mode "any" announces that all further words are to be  added  as
1026              pathspecs or disk_paths. This does not work in dialog mode.
1027              Mode  "none"  is  the  default. It prevents any words from being
1028              understood as files to  add,  if  they  are  not  parameters  to
1029              appropriate commands.
1030
1031       -path_list disk_path
1032              Like  -add  but  read the parameter words from file disk_path or
1033              standard input if disk_path  is  "-".   The  list  must  contain
1034              exactly one pathspec or disk_path pattern per line.
1035
1036       -quoted_path_list disk_path
1037              Like  -path_list  but with quoted input reading rules. Lines get
1038              split into parameter words for -add. Whitespace  outside  quotes
1039              is discarded.
1040
1041       -map disk_path iso_rr_path
1042              Insert  file object disk_path into the ISO image as iso_rr_path.
1043              If disk_path is a directory then its whole sub tree is  inserted
1044              into the ISO image.
1045
1046       -map_single disk_path iso_rr_path
1047              Like  -map, but if disk_path is a directory then its sub tree is
1048              not inserted.
1049
1050       -map_l disk_prefix iso_rr_prefix disk_path [***]
1051              Perform -map with each of the disk_path parameters.  iso_rr_path
1052              will  be  composed  from  disk_path  by replacing disk_prefix by
1053              iso_rr_prefix.
1054
1055       -update disk_path iso_rr_path
1056              Compare file object disk_path with file object  iso_rr_path.  If
1057              they   do   not   match,   then   perform  the  necessary  image
1058              manipulations to make iso_rr_path a matching copy of  disk_path.
1059              By  default  this  comparison will imply lengthy content reading
1060              before a decision is made. Commands -disk_dev_ino  or  -md5  may
1061              accelerate  comparison  if  they were already in effect when the
1062              loaded session was recorded.
1063              If disk_path is a directory and iso_rr_path does not exist  yet,
1064              then  the  whole  subtree  will be inserted. Else only directory
1065              attributes will be updated.
1066
1067       -update_r disk_path iso_rr_path
1068              Like -update but working  recursively.  I.e.  all  file  objects
1069              below both addresses get compared whether they have counterparts
1070              below the other address and whether both counterparts match.  If
1071              there  is  a  mismatch then the necessary update manipulation is
1072              done.
1073              Note that the comparison result may depend on  command  -follow.
1074              Its  setting  should always be the same as with the first adding
1075              of disk_path as iso_rr_path.
1076              If iso_rr_path does not  exist  yet,  then  it  gets  added.  If
1077              disk_path does not exist, then iso_rr_path gets deleted.
1078
1079       -update_l disk_prefix iso_rr_prefix disk_path [***]
1080              Perform   -update_r  with  each  of  the  disk_path  parameters.
1081              iso_rr_path  will  be  composed  from  disk_path  by   replacing
1082              disk_prefix by iso_rr_prefix.
1083
1084       -update_li iso_rr_prefix disk_prefix iso_rr_path [***]
1085              Perform  -update_r  with  each  of  the  iso_rr_path parameters.
1086              disk_path  will  be  composed  from  iso_rr_path  by   replacing
1087              iso_rr_prefix by disk_prefix.
1088
1089       -update_lxi disk_prefix iso_rr_prefix disk_path [***]
1090              Perform -update_r with each of the disk_path parameters and with
1091              iso_rr_paths in the ISO filesystem which are  derived  from  the
1092              disk_path    parameters    after   exchanging   disk_prefix   by
1093              iso_rr_prefix. So, other than -update_l,  this  detects  missing
1094              matches of disk_path and deletes the corresponding iso_rr_path.
1095              Note   that  relative  disk_paths  and  disk_path  patterns  are
1096              interpreted as sub paths of the current disk  working  directory
1097              -cdx.  The  corresponding iso_rr_paths are derived by exchanging
1098              disk_prefix by iso_rr_prefix before pattern  expansion  happens.
1099              The current -cdi directory has no influence.
1100
1101       -cut_out disk_path byte_offset byte_count iso_rr_path
1102              Map  a  byte interval of a regular disk file into a regular file
1103              in the ISO image.  This may be necessary if  the  disk  file  is
1104              larger  than  a  single medium, or if it exceeds the traditional
1105              limit of 2 GiB - 1 for old operating systems, or the limit of  4
1106              GiB  -  1  for newer ones. Only the newest Linux kernels seem to
1107              read properly files >= 4 GiB - 1.
1108              A clumsy remedy for this limit is to backup file pieces  and  to
1109              concatenate them at restore time. A well tested chopping size is
1110              2047m.  It is permissible to request a  higher  byte_count  than
1111              available.  The  resulting file will be truncated to the correct
1112              size of a final piece.  To request  a  byte_offset  higher  than
1113              available  yields  no  file  in the ISO image but a SORRY event.
1114              E.g:
1115               -cut_out /my/disk/file 0 2047m \
1116               /file/part_1_of_3_at_0_with_2047m_of_5753194821 \
1117               -cut_out /my/disk/file 2047m 2047m \
1118               /file/part_2_of_3_at_2047m_with_2047m_of_5753194821 \
1119               -cut_out /my/disk/file 4094m 2047m \
1120               /file/part_3_of_3_at_4094m_with_2047m_of_5753194821
1121              While command -split_size is set  larger  than  0,  and  if  all
1122              pieces  of a file reside in the same ISO directory with no other
1123              files, and  if  the  names  look  like  above,  then  their  ISO
1124              directory  will  be  recognized and handled like a regular file.
1125              This  affects  commands  -compare*,  -update*,   and   overwrite
1126              situations.  See command -split_size for details.
1127
1128       -cpr disk_path [***] iso_rr_path
1129              Insert  the  given files or directory trees from filesystem into
1130              the ISO image.
1131              The rules for generating the ISO addresses are similar  as  with
1132              shell   command   cp   -r.   Nevertheless,  directories  of  the
1133              iso_rr_path are created  if  necessary.  Especially  a  not  yet
1134              existing  iso_rr_path  will  be handled as directory if multiple
1135              disk_paths  are  present.   The  leafnames   of   the   multiple
1136              disk_paths will be grafted under that directory as would be done
1137              with an existing directory.
1138              If a single disk_path is present then a non-existing iso_rr_path
1139              will get the same type as the disk_path.
1140              If  a  disk_path does not begin with '/' then -cdx is prepended.
1141              If  the  iso_rr_path  does  not  begin  with  '/'  then  -cd  is
1142              prepended.
1143
1144       -mkdir iso_rr_path [...]
1145              Create empty directories if they do not exist yet.  Existence as
1146              directory generates a WARNING event,  existence  as  other  file
1147              causes a FAILURE event.
1148
1149       -lns target_text iso_rr_path
1150              Create  a symbolic link with address iso_rr_path which points to
1151              target_text.  iso_rr_path may not exist yet.
1152              Hint: Command -clone produces the ISO equivalent of a hard link.
1153
1154       -clone iso_rr_path_original iso_rr_path_copy
1155              Create a copy of the ISO file object  iso_rr_path_original  with
1156              the new address iso_rr_path_copy. If the original is a directory
1157              then   copy   all   files   and   directories   underneath.   If
1158              iso_rr_path_original  is  a  boot catalog file, then it gets not
1159              copied but is silently ignored.
1160              The copied ISO file objects have  the  same  attributes.  Copied
1161              data  files refer to the same content source as their originals.
1162              The copies  may  then  be  manipulated  independendly  of  their
1163              originals.
1164              This    command   will   refuse   execution   if   the   address
1165              iso_rr_path_copy already exists in the ISO tree.
1166
1167       -cp_clone iso_rr_path_original [***] iso_rr_path_dest
1168              Create copies of one or more ISO file objects  as  with  command
1169              -clone.   In  case  of collision merge directories with existing
1170              ones, but do not overwrite existing ISO file objects.
1171              The rules for generating the copy addresses are the same as with
1172              command -cpr (see above) or shell command cp -r. Other than with
1173              -cpr, relative iso_rr_path_original will get prepended  the  -cd
1174              path  and not the -cdx path. Consider to -mkdir iso_rr_path_dest
1175              before -cp_clone so the copy address  does  not  depend  on  the
1176              number of iso_rr_path_original parameters.
1177
1178       Settings for file insertion:
1179
1180       -file_size_limit value [value [...]] --
1181              Set  the  maximum  permissible  size for a single data file. The
1182              values get summed up for the actual limit. If the only value  is
1183              "off"  then the file size is not limited by xorriso.  Default is
1184              a limit of 100 extents, 4g -2k each:
1185               -file_size_limit 400g -200k --
1186              When mounting ISO 9660 filesystems, old  operating  systems  can
1187              handle  only  files up to 2g -1 --. Newer ones are good up to 4g
1188              -1 --.  You need quite a new Linux kernel to read correctly  the
1189              final  bytes  of a file >= 4g if its size is not aligned to 2048
1190              byte blocks.
1191              xorriso's  own  data  read  capabilities  are  not  affected  by
1192              operating  system  size  limits.  Such  limits apply to mounting
1193              only. Nevertheless, the target filesystem of an -extract must be
1194              able to take the file size.
1195
1196       -not_mgt code[:code[...]]
1197              Control the behavior of the exclusion lists.
1198              Exclusion processing happens before disk_paths get mapped to the
1199              ISO image and before disk files get compared with  image  files.
1200              The  absolute  disk  path  of  the source is matched against the
1201              -not_paths list.  The leafname  of  the  disk  path  is  matched
1202              against  the  patterns  in  the  -not_leaf  list.  If a match is
1203              detected then the disk path will not be regarded as an  existing
1204              file and not be added to the ISO image.
1205              Several  codes are defined.  The _on/_off settings persist until
1206              they are revoked by their_off/_on counterparts.
1207              "erase" empties the lists which were accumulated  by  -not_paths
1208              and -not_leaf.
1209              "reset" is like "erase" but also re-installs default behavior.
1210              "off"   disables   exclusion   processing   temporarily  without
1211              invalidating the lists and settings.
1212              "on" re-enables exclusion processing.
1213              "param_off" applies exclusion processing  only  to  paths  below
1214              disk_path   parameter   of   commands.   I.e.  explicitly  given
1215              disk_paths are exempted from exclusion processing.
1216              "param_on" applies exclusion processing to command parameters as
1217              well as to files below such parameters.
1218              "subtree_off"  with  "param_on" excludes parameter paths only if
1219              they match a -not_paths item exactly.
1220              "subtree_on" additionally excludes parameter paths which lead to
1221              a file address below any -not_paths item.
1222              "ignore_off" treats excluded disk files as if they were missing.
1223              I.e. they get reported with -compare and deleted from the  image
1224              with -update.
1225              "ignore_on"  keeps  excluded  files  out  of -compare or -update
1226              activities.
1227
1228       -not_paths disk_path [***]
1229              Add the given paths to the list of excluded absolute disk paths.
1230              If  a given path is relative, then the current -cdx is prepended
1231              to form an absolute path.  Pattern matching, if enabled, happens
1232              at definition time and not when exclusion checks are made.
1233              (Do not forget to end the list of disk_paths by "--")
1234
1235       -not_leaf pattern
1236              Add  a  single  shell  parser  style  pattern  to  the  list  of
1237              exclusions for disk leafnames. These patterns are evaluated when
1238              the exclusion checks are made.
1239
1240       -not_list disk_path
1241              Read  lines  from  disk_path  and  use  each  of  them either as
1242              -not_paths parameter, if they  contain  a  /  character,  or  as
1243              -not_leaf pattern.
1244
1245       -quoted_not_list disk_path
1246              Like -not_list but with quoted input reading rules. Each word is
1247              handled as one parameter for -not_paths or -not_leaf.
1248
1249       -follow occasion[:occasion[...]]
1250              Enable or disable resolution of symbolic links  and  mountpoints
1251              under  disk_paths.  This  applies to actions -add, -du*x, -ls*x,
1252              -findx, -concat, and to -disk_pattern expansion.
1253              There are three kinds of follow decisison to be made:
1254              link is the hop from a symbolic link to its target  file  object
1255              for  the  purpose  of reading. I.e. not for command -concat.  If
1256              enabled then symbolic links are handled  as  their  target  file
1257              objects, else symbolic links are handled as themselves.
1258              mount  is  the  hop  from  one filesystem to another subordinate
1259              filesystem.  If enabled then mountpoint directories are  handled
1260              as  any  other  directory, else mountpoints are handled as empty
1261              directories  if  they  are   encountered   in   directory   tree
1262              traversals.
1263              concat is the hop from a symbolic link to its target file object
1264              for the purpose of writing. I.e. for command -concat. This is  a
1265              security risk !
1266              Less general than above occasions:
1267              pattern is mount and link hopping, but only during -disk_pattern
1268              expansion.
1269              param is  link  hopping  for  parameter  words  (after  eventual
1270              pattern  expansion).   If  enabled then -ls*x will show the link
1271              targets rather than the links  themselves.  -du*x,  -findx,  and
1272              -add  will  process  the link targets but not follow links in an
1273              eventual directory tree below  the  targets  (unless  "link"  is
1274              enabled).
1275              Occasions  can  be  combined  in  a  colon  separated  list. All
1276              occasions mentioned in the list will then  lead  to  a  positive
1277              follow decision.
1278              off  prevents  any  positive follow decision. Use it if no other
1279              occasion applies.
1280              Shortcuts:
1281              default is equivalent to "pattern:mount:limit=100".
1282              on always decides positive. Equivalent to "link:mount:concat".
1283
1284              Not an occasion but an optional setting is:
1285              limit=<number> which sets the maximum number of  link  hops.   A
1286              link  hop  consists  of a sequence of symbolic links and a final
1287              target of different type.  Nevertheless  those  hops  can  loop.
1288              Example:
1289                $ ln -s .. uploop
1290              Link  hopping  has a built-in loop detection which stops hopping
1291              at the first repetition of a link target. Then the repeated link
1292              is handled as itself and not as its target.  Regrettably one can
1293              construct link networks which cause exponential workload  before
1294              their  loops  get  detected.  The number given with "limit=" can
1295              curb this workload at the  risk  of  truncating  an  intentional
1296              sequence of link hops.
1297
1298       -pathspecs "on"|"off"|"as_mkisofs"
1299              Control  parameter  interpretation with xorriso actions -add and
1300              -path_list.
1301              Mode "as_mkisofs" enables pathspecs of the form
1302              iso_rr_path=disk_path
1303              like with program mkisofs -graft-points.
1304              All characters '\' must be  escaped  in  both,  iso_rr_path  and
1305              disk_path.  The character '=' must be escaped in the iso_rr_path
1306              and may or may not be  escaped  in  the  disk_path.   This  mode
1307              temporarily disables -disk_pattern expansion for command -add.
1308              Mode  "on" does nearly the same. But '=' must only be escaped in
1309              the iso_rr_path and '\' must not be escaped at all. This has the
1310              disadvantage  that  one cannot express an iso_rr_path which ends
1311              by '\'.
1312              Mode "off" disables pathspecs  of  the  form  target=source  and
1313              re-enables -disk_pattern expansion.
1314
1315       -overwrite "on"|"nondir"|"off"
1316              Allow or disallow overwriting of existing files in the ISO image
1317              by files with the same name.
1318              With  setting  "off",  name  collisions  with   at   least   one
1319              non-directory  file  cause  FAILURE  events.  Collisions  of two
1320              directories lead to merging of their file lists.
1321              With setting "nondir", only directories are  protected  by  such
1322              events,  other  existing  file types get treated with -rm before
1323              the new file gets added.  Setting "on" enables automatic  -rm_r.
1324              I.e.  a  non-directory can replace an existing directory and all
1325              its subordinates.
1326              If restoring of  files  is  enabled,  then  the  overwrite  rule
1327              applies  to the target file objects on disk as well, but "on" is
1328              downgraded to "nondir".
1329
1330       -split_size number["k"|"m"]
1331              Set the threshold for automatic splitting of regular files. Such
1332              splitting  maps  a  large  disk  file  onto a ISO directory with
1333              several part files in it.  This is necessary if the size of  the
1334              disk file exceeds -file_size_limit.  Older operating systems can
1335              handle files in mounted ISO 9660 filesystems only  if  they  are
1336              smaller than 2 GiB or in other cases 4 GiB.
1337              Default   is   0   which   will   exclude   files   larger  than
1338              -file_size_limit by a FAILURE event.  A well tested  -split_size
1339              is 2047m. Sizes above -file_size_limit are not permissible.
1340              While  command -split_size is set larger than 0 such a directory
1341              with split file pieces will be recognized  and  handled  like  a
1342              regular  file by commands -compare* , -update*, and in overwrite
1343              situations. There are -ossirox parameters "concat_split_on"  and
1344              "concat_split_off"  which  control  the  handling when files get
1345              restored to disk.
1346              In order to be recognizable, the names of the part files have to
1347              describe the splitting by 5 numbers:
1348               part_number,total_parts,byte_offset,byte_count,disk_file_size
1349              which are embedded in the following text form:
1350               part_#_of_#_at_#_with_#_of_#
1351              Scaling  characters like "m" or "k" are taken into respect.  All
1352              digits are interpreted as decimal, even  if  leading  zeros  are
1353              present.
1354              E.g: /file/part_1_of_3_at_0_with_2047m_of_5753194821
1355              No  other  files are allowed in the directory. All parts have to
1356              be  present  and  their  numbers  have  to  be  plausible.  E.g.
1357              byte_count  must  be  valid  as  -cut_out  parameter  and  their
1358              contents may not overlap.
1359
1360       File manipulations:
1361
1362       The following commands manipulate files in the  ISO  image,  regardless
1363       whether they stem from the loaded image or were newly inserted.
1364
1365       -iso_rr_pattern "on"|"ls"|"off"
1366              Set the pattern expansion mode for the iso_rr_path parameters of
1367              several commands which support this feature.
1368              Setting "off" disables pattern expansion for all commands  which
1369              are   marked   in  this  man  page  by  "iso_rr_path  [***]"  or
1370              "iso_rr_pattern [***]".
1371              Setting "on" enables it for all those commands.
1372              Setting "ls" enables it only  for  those  which  are  marked  by
1373              "iso_rr_pattern [***]".
1374              Default is "on".
1375
1376       -rm iso_rr_path [***]
1377              Delete the given files from the ISO image.
1378              Note: This does not free any space on the -indev medium, even if
1379              the deletion is committed to that same medium.
1380              The image size  will  shrink  if  the  image  is  written  to  a
1381              different medium in modification mode.
1382
1383       -rm_r iso_rr_path [***]
1384              Delete  the  given  files or directory trees from the ISO image.
1385              See also the note with command -rm.
1386
1387       -rmdir iso_rr_path [***]
1388              Delete empty directories.
1389
1390       -move iso_rr_path iso_rr_path
1391              Rename the file given by the first (origin) iso_rr_path  to  the
1392              second  (destination)  iso_rr_path.  Deviate from rules of shell
1393              command mv by not moving the origin file underneath an  existing
1394              destination  directory. The origin file will rather replace such
1395              a directory, if this is allowed by command -overwrite.
1396
1397       -mv iso_rr_path [***] iso_rr_path
1398              Rename the given file objects  in  the  ISO  tree  to  the  last
1399              parameter  in the list. Use the same rules as with shell command
1400              mv.
1401              If pattern expansion  is  enabled  and  if  the  last  parameter
1402              contains  wildcard  characters  then  it  must match exactly one
1403              existing file address, or else the command fails with a  FAILURE
1404              event.
1405
1406       -chown uid iso_rr_path [***]
1407              Set  ownership  of file objects in the ISO image. uid may either
1408              be a decimal number or the name of a user known to the operating
1409              system.
1410
1411       -chown_r uid iso_rr_path [***]
1412              Like -chown but affecting all files below eventual directories.
1413
1414       -chgrp gid iso_rr_path [***]
1415              Set  group  attribute of file objects in the ISO image. gid  may
1416              either be a decimal number or the name of a group known  to  the
1417              operating system.
1418
1419       -chgrp_r gid iso_rr_path [***]
1420              Like -chgrp but affecting all files below eventual directories.
1421
1422       -chmod mode iso_rr_path [***]
1423              Equivalent  to  shell  command  chmod in the ISO image.  mode is
1424              either an octal number beginning with "0" or a  comma  separated
1425              list of statements of the form [ugoa]*[+-=][rwxst]* .
1426              Like: go-rwx,u+rwx .
1427              Personalities: u=user, g=group, o=others, a=all
1428              Operators:   +   adds   given   permissions,   -  revokes  given
1429              permissions, = revokes all old permissions  and  then  adds  the
1430              given ones.
1431              Permissions:       r=read,      w=write,      x=execute|inspect,
1432              s=setuid|setgid, t=sticky bit
1433              For octal numbers see man 2 stat.
1434
1435       -chmod_r mode iso_rr_path [***]
1436              Like -chmod but affecting all files below eventual directories.
1437
1438       -setfacl acl_text iso_rr_path [***]
1439              Attach the given ACL to the given  iso_rr_paths.  If  the  files
1440              already  have  ACLs,  then those get deleted before the new ones
1441              get into effect.  If acl_text is empty,  or  contains  the  text
1442              "clear"  or the text "--remove-all", then the existing ACLs will
1443              be removed and no new ones will be attached. Any  other  content
1444              of acl_text will be interpreted as a list of ACL entries. It may
1445              be in the long multi-line format as put out by -getfacl but  may
1446              also be abbreviated as follows:
1447              ACL  entries  are  separated by comma or newline. If an entry is
1448              empty text or begins with "#" then it will be ignored.  A  valid
1449              entry  has  to  begin  by  a  letter  out  of {ugom} for "user",
1450              "group", "other", "mask". It has to contain two  colons  ":".  A
1451              non-empty  text  between  those ":" gives a user id or group id.
1452              After the second ":" there may be letters out of {rwx- #}.   The
1453              first  three  give  read, write, or execute permission.  Letters
1454              "-", " " and TAB are ignored. "#" causes the rest of  the  entry
1455              to  be  ignored.  Letter  "X"  or  any  other  letters  are  not
1456              supported. Examples:
1457                g:toolies:rw,u:lisa:rw,u:1001:rw,u::wr,g::r,o::r,m::rw
1458                group:toolies:rw-,user::rw-,group::r--,other::r--,mask::rw-
1459              A valid entry may be prefixed by "d", some following  characters
1460              and  ":".   This  indicates that the entry goes to the "default"
1461              ACL rather than to the "access" ACL. Example:
1462                u::rwx,g::rx,o::,d:u::rwx,d:g::rx,d:o::,d:u:lisa:rwx,d:m::rwx
1463
1464       -setfacl_r acl_text iso_rr_path [***]
1465              Like  -setfacl  but   affecting   all   files   below   eventual
1466              directories.
1467
1468       -setfacl_list disk_path
1469              Read  the  output  of -getfacl_r or shell command getfacl -R and
1470              apply it to the iso_rr_paths as given in lines beginning with "#
1471              file:".  This  will change ownership, group and ACL of the given
1472              files.  If disk_path is "-" then lines are  read  from  standard
1473              input. Line "@" ends the list, "@@@" aborts without changing the
1474              pending iso_rr_path.
1475              Since -getfacl and getfacl -R strip leading "/" from file paths,
1476              the setting of -cd does always matter.
1477
1478       -setfattr [-]name value iso_rr_path [***]
1479              Attach  the  given  xattr  pair  of  name and value to the given
1480              iso_rr_paths.  If the given name is prefixed by  "-",  then  the
1481              pair with that name gets removed from the xattr list. If name is
1482              "--remove-all" then  all  user  namespace  xattr  of  the  given
1483              iso_rr_paths  get deleted. In case of deletion, value must be an
1484              empty text.
1485              Only names from the user namespace are allowed. I.e. a name  has
1486              to begin with "user.", like "user.x" or "user.whatever".
1487              Values and names undergo the normal input processing of xorriso.
1488              See also  command  -backslash_codes.  Other  than  with  command
1489              -setfattr_list,  the  byte  value  0  cannot  be  expressed  via
1490              -setfattr.
1491
1492       -setfattr_r [-]name value iso_rr_path [***]
1493              Like  -setfattr  but  affecting   all   files   below   eventual
1494              directories.
1495
1496       -setfattr_list disk_path
1497              Read the output of -getfattr_r or shell command getfattr -Rd and
1498              apply it to the iso_rr_paths as given in lines beginning with "#
1499              file:".  All  previously  existing user space xattr of the given
1500              iso_rr_paths will be deleted.  If disk_path is  "-"  then  lines
1501              are read from standard input.
1502              Since  -getfattr  and  getfattr  -Rd strip leading "/" from file
1503              paths, the setting of -cd does always matter.
1504              Empty input lines and lines which begin by "#" will  be  ignored
1505              (except "# file:"). Line "@" ends the list, "@@@" aborts without
1506              changing the pending iso_rr_path. Other input  lines  must  have
1507              the form
1508                name="value"
1509              Name must be from user namespace. I.e. user.xyz where xyz should
1510              consist of printable characters only. The separator "="  is  not
1511              allowed  in names.  Value may contain any kind of bytes. It must
1512              be in quotes. Trailing whitespace after the end  quote  will  be
1513              ignored.  Non-printables bytes and quotes must be represented as
1514              \XYZ by their octal 8-bit code XYZ.  Use code \000 for 0-bytes.
1515
1516       -alter_date type timestring iso_rr_path [***]
1517              Alter the date entries of files in the ISO image.  type  may  be
1518              one of the following:
1519              "a" sets access time, updates ctime.
1520              "m" sets modification time, updates ctime.
1521              "b" sets access time and modification time, updates ctime.
1522              "a-c", "m-c", and "b-c" set the times without updating ctime.
1523              "c" sets the ctime.
1524              timestring  may  be  in  the following formats (see also section
1525              EXAMPLES):
1526              As expected by program date:
1527               MMDDhhmm[[CC]YY][.ss]]
1528              As produced by program date:
1529               [Day] MMM DD hh:mm:ss [TZON] YYYY
1530              Relative times counted from current clock time:
1531               +|-Number["s"|"h"|"d"|"w"|"m"|"y"]
1532              where "s"  means  seconds,  "h"  hours,  "d"  days,  "w"  weeks,
1533              "m"=30d, "y"=365.25d plus 1d added to multiplication result.
1534              Absolute seconds counted from Jan 1 1970:
1535               =Number
1536              xorriso's own timestamps:
1537               YYYY.MM.DD[.hh[mm[ss]]]
1538              scdbackup timestamps:
1539               YYMMDD[.hhmm[ss]]
1540              where "A0" is year 2000, "B0" is 2010, etc.
1541              ECMA-119 volume timestamps:
1542               YYYYMMDDhhmmsscc
1543              These  are  normally given as GMT. The suffix "LOC" causes local
1544              timezone conversion. E.g. 2013010720574700, 2013010720574700LOC.
1545              The  last two digits cc (centiseconds) will be ignored, but must
1546              be present in order to make the format recognizable.
1547              Example:
1548                -alter_date m-c 2013.11.27.103951 /file1 /file2 --
1549              This command does not persistently apply to  the  boot  catalog,
1550              which   gets   fresh   timestamps   at   -commit  time.  Command
1551              -volume_date "uuid" can set this time value.
1552
1553       -alter_date_r type timestring iso_rr_path [***]
1554              Like  -alter_date  but  affecting  all  files   below   eventual
1555              directories.
1556
1557       -hide hide_state iso_rr_path [***]
1558              Prevent  the  names  of  the  given files from showing up in the
1559              directory trees of ISO 9660 and/or Joliet and/or HFS+  when  the
1560              image  gets written.  The data content of such hidden files will
1561              be included in the resulting image, even if they do not show  up
1562              in  any directory.  But you will need own means to find nameless
1563              data in the image.
1564              Warning: Data which are hidden from the ISO 9660 tree  will  not
1565              be copied by the write method of modifying.
1566              Possible  values of hide_state are: "iso_rr" for hiding from ISO
1567              9660 tree, "joliet" for Joliet tree, "hfsplus"  for  HFS+,  "on"
1568              for them all.  "off" means visibility in all directory trees.
1569              These values may be combined.  E.g.: joliet:hfsplus
1570              This  command  does  not apply to the boot catalog.  Rather use:
1571              -boot_image "any" "cat_hidden=on"
1572
1573       Tree traversal command -find:
1574
1575       -find iso_rr_path [test [op] [test ...]] [-exec action [params]] --
1576              A restricted substitute for shell command find in the ISO image.
1577              It  performs  an  action  on  matching  file objects at or below
1578              iso_rr_path.
1579              If not used as last command in the line then the parameter  list
1580              needs to get terminated by "--".
1581              Tests  are  optional. If they are omitted then action is applied
1582              to all file objects. If tests are given then they form  together
1583              an  expression.   The  action  is applied only if the expression
1584              matches the file object.  Default  expression  operator  between
1585              tests is -and, i.e. the expression matches only if all its tests
1586              match.
1587              Available tests are:
1588              -name pattern : Matches if pattern matches the file  leaf  name.
1589              If  the  pattern  does  not contain any of the characters "*?[",
1590              then it will be truncated according to -file_name_limit and thus
1591              match the truncated name in the ISO filesystem.
1592              -wholename pattern : Matches if pattern matches the file path as
1593              it would be printed by  action  "echo".  Character  '/'  can  be
1594              matched  by  wildcards.  If  pattern  pieces  between '/' do not
1595              contain any of the characters  "*?[",  they  will  be  truncated
1596              according to -file_name_limit.
1597              -disk_name pattern : Like -name but testing the leaf name of the
1598              file source on disk.  Can match only data  files  which  do  not
1599              stem  from  the loaded image, or for directories above such data
1600              files. With directories the result can change between -find runs
1601              if their content stems from multiple sources.
1602              -disk_path  disk_path  : Matches if the given disk_path is equal
1603              to the path of the file source on disk.  The  same  restrictions
1604              apply as with -disk_name.
1605              -type  type_letter  :  Matches files of the given type: "block",
1606              "char", "dir", "pipe", "file", "link", "socket", "eltorito", and
1607              "Xotic" which matches what is not matched by the other types.
1608              Only the first letter is interpreted.  E.g.: -find / -type d
1609              -maxdepth  number  : Matches only files which are at most at the
1610              given depth  level  relative  to  the  iso_rr_path  where  -find
1611              starts.  That  path itself is at depth 0, its directory children
1612              are at 1, their directory children at 2, and so on.
1613              -mindepth number : Matches only files which are at least at  the
1614              given depth level.
1615              -damaged : Matches files which use data blocks marked as damaged
1616              by a previous run of -check_media. The damage info vanishes when
1617              a new ISO image gets loaded.
1618              Note  that a MD5 session mismatch marks all files of the session
1619              as damaged.  If finer distinction is desired, perform  -md5  off
1620              before -check_media.
1621              -pending_data  :  Matches  files  which  get  their content from
1622              outside the loaded ISO image.
1623              -lba_range start_lba block_count : Matches files which use  data
1624              blocks     within     the     range     of     start_lba     and
1625              start_lba+block_count-1.
1626              -has_acl : Matches files which have a non-trivial ACL.
1627              -has_xattr : Matches files which  have  xattr  name-value  pairs
1628              from user namespace.
1629              -has_aaip : Matches files which have ACL or any xattr.
1630              -has_any_xattr  :  Matches files which have any xattr other than
1631              ACL.
1632              -has_md5 : Matches data files which have MD5 checksums.
1633              -has_hfs_crtp creator type : Matches files which have the  given
1634              HFS+ creator and type attached.  These are codes of 4 characters
1635              which get stored if -hfsplus is enabled. Use a single  dash  '-'
1636              as wildcard that matches any such code.  E.g:.
1637               -has_hfs_crtp YYDN TEXT
1638               -has_hfs_crtp - -
1639              -has_hfs_bless  blessing  :  Matches  files which bear the given
1640              HFS+   blessing.   It   may   be   one   of   :   "ppc_bootdir",
1641              "intel_bootfile",   "show_folder",  "os9_folder",  "osx_folder",
1642              "any". See also action set_hfs_bless.
1643              -has_filter : Matches files which are filtered by -set_filter.
1644              -hidden hide_state : Matches files which are hidden in  "iso_rr"
1645              tree,  in "joliet" tree, in "hfsplus" tree, in all trees ("on"),
1646              or not hidden in any tree ("off").
1647              Those which are hidden in some tree match -not -hidden "off".
1648              -bad_outname namespace : Matches files with names  which  change
1649              when  converted  forth  and back between the local character set
1650              and one of  the  namespaces  "rockridge",  "joliet",  "ecma119",
1651              "hfsplus".
1652              All  applicable  -compliance rules are taken into respect.  Rule
1653              "omit_version"  is  always  enabled,  because  else   namespaces
1654              "joliet"   and   "ecma119"   would   cause  changes  with  every
1655              non-directory   name.    Consider   to   also    enable    rules
1656              "no_force_dots" and "no_j_force_dots".
1657              The  namespaces  use  different character sets and apply further
1658              restrictions  to  name  length,  permissible   characters,   and
1659              mandatory  name  components.  "rockridge" uses the character set
1660              defined by -out_charset, "joliet" uses UCS-2BE,  "ecma119"  uses
1661              ASCII, "hfsplus" uses UTF-16BE.
1662              -name_limit_blocker  length  :  Matches  file  names which would
1663              prevent command -file_name_limit  with  the  given  length.  The
1664              command itself reports only the first problem file.
1665              -prune  :  If  this  test  is  reached  and the tested file is a
1666              directory then -find will not dive  into  that  directory.  This
1667              test itself does always match.
1668              -use_pattern   "on"|"off"   :  This  pseudo  test  controls  the
1669              interpretation of wildcards with tests  -name,  -wholename,  and
1670              -disk_name.  Default  is  "on". If interpretation is disabled by
1671              "off", then the parameters of -name, -wholename, and  -disk_name
1672              have  to  match  literally  rather than as search pattern.  This
1673              test itself does always match.
1674              -or_use_pattern   "on"|"off"   :    Like    -use_pattern,    but
1675              automatically  appending  the  test  by -or rather than by -and.
1676              Further the test itself does never match. So a  subsequent  test
1677              -or will cause its other operand to be performed.
1678              -decision  "yes"|"no"  :  If  this  test  is  reached  then  the
1679              evaluation ends immediately  and  action  is  performed  if  the
1680              decision is "yes" or "true". See operator -if.
1681              -true  and  -false  :  Always  match or match not, respectively.
1682              Evaluation goes on.
1683              -sort_lba : Always match.  This  causes  -find  to  perform  its
1684              action  in a sequence sorted by the ISO image block addresses of
1685              the files. It may improve throughput  with  actions  which  read
1686              data  from  optical  drives. Action will always get the absolute
1687              path as parameter.
1688              Available operators are:
1689              -not : Matches if the next  test  or  sub  expression  does  not
1690              match.  Several tests do this specifically:
1691              -undamaged,  -lba_range  with  negative  start_lba, -has_no_acl,
1692              -has_no_xattr, -has_no_aaip, -has_no_filter .
1693              -and : Matches if both neighboring tests or expressions match.
1694              -or : Matches if at least  one  of  both  neighboring  tests  or
1695              expressions matches.
1696              -sub  ...  -subend  or  ( ... ) : Enclose a sub expression which
1697              gets evaluated first  before  it  is  processed  by  neighboring
1698              operators.  Normal precedence is: -not, -or , -and.
1699              -if  ...  -then ...  -elseif  ...  -then ...  -else ... -endif :
1700              Enclose one or more  sub  expressions.  If  the  -if  expression
1701              matches, then the -then expression is evaluated as the result of
1702              the whole  expression  up  to  -endif.  Else  the  next  -elseif
1703              expression is evaluated and if it matches, its -then expression.
1704              Finally in case of no match, the -else expression is  evaluated.
1705              There  may  be  more than one -elseif. Neither -else nor -elseif
1706              are mandatory.  If -else is missing and would be hit,  then  the
1707              result is a non-match.
1708              -if-expressions are the main use case for above test -decision.
1709
1710              Default  action  is echo, i.e. to print the address of the found
1711              file. Other actions  are  certain  xorriso  commands  which  get
1712              performed  on the found files.  These commands may have specific
1713              parameters. See also their particular descriptions.
1714              chown and chown_r change the ownership and get the  user  id  as
1715              parameter. E.g.: -exec chown thomas --
1716              chgrp  and  chgrp_r change the group attribute and get the group
1717              id as parameter. E.g.: -exec chgrp_r staff --
1718              chmod and chmod_r change  access  permissions  and  get  a  mode
1719              string as parameter.  E.g.: -exec chmod a-w,a+r --
1720              alter_date  and  alter_date_r  change the timestamps. They get a
1721              type character and a timestring as parameters.
1722              E.g.: -exec alter_date "m" "Dec 30 19:34:12 2007" --
1723              set_to_mtime sets the ctime and atime  to  the  value  found  in
1724              mtime.
1725              lsdl prints file information like shell command ls -dl.
1726              compare performs command -compare with the found file address as
1727              iso_rr_path  and  the  corresponding  file  address  below   its
1728              parameter disk_path_start. For this the iso_rr_path of the -find
1729              command gets replaced by the disk_path_start.
1730              E.g.: -find /thomas -exec compare /home/thomas --
1731              update performs command -update with the found file  address  as
1732              iso_rr_path.  The  corresponding file address is determined like
1733              with above action "compare".
1734              update_merge is like update but does not delete the  found  file
1735              if  it  is  missing  on  disk.   It may be run several times and
1736              records with all visited files whether their counterpart on disk
1737              has already been seen by one of the update_merge runs.  Finally,
1738              a -find run with action "rm_merge" may remove all files that saw
1739              no counterpart on disk.
1740              Up  to  the  next "rm_merge" or "clear_merge" all newly inserted
1741              files will get marked as having a disk counterpart.
1742              rm removes the found iso_rr_path from the image if it is  not  a
1743              directory with files in it. I.e. this "rm" includes "rmdir".
1744              rm_r  removes  the  found  iso_rr_path from the image, including
1745              whole directory trees.
1746              rm_merge removes the found iso_rr_path if it was visited by  one
1747              or  more  previous actions "update_merge" and saw no counterpart
1748              on disk in any of them. The marking from the update  actions  is
1749              removed in any case.
1750              clear_merge    removes   an   eventual   marking   from   action
1751              "update_merge".
1752              report_damage classifies files whether they  hit  a  data  block
1753              that  is  marked as damaged. The result is printed together with
1754              the address of the first  damaged  byte,  the  maximum  span  of
1755              damages, file size, and the path of the file.
1756              report_lba  prints  files  which  are  associated  to image data
1757              blocks.  It tells the logical block address, the  block  number,
1758              the  byte size, and the path of each file. There may be reported
1759              more than one line per file  if  the  file  has  more  than  one
1760              section.   In  this case each line has a different extent number
1761              in column "xt".
1762              report_sections like report_lba but telling the  byte  sizes  of
1763              the particular sections rather than the overall byte size of the
1764              file.
1765              getfacl prints access permissions in ACL text form to the result
1766              channel.
1767              setfacl  attaches ACLs after removing existing ones. The new ACL
1768              is given in text form as defined with command -setfacl.
1769              E.g.: -exec setfacl u:lisa:rw,u::rw,g::r,o::-,m::rw --
1770              getfattr prints xattr name-value pairs from  user  namespace  to
1771              the result channel.
1772              get_any_xattr  prints  xattr name-value pairs from any namespace
1773              except ACL to the result channel. This is mostly  for  debugging
1774              of namespace "isofs".
1775              list_extattr  mode  prints a script to the result channel, which
1776              would use FreeBSD command setextattr to  set  the  file's  xattr
1777              name-value pairs of user namespace.  Parameter mode controls the
1778              form of the output of names and values.  Default mode "e" prints
1779              harmless  characters  in  shell  quotation marks, but represents
1780              texts with octal 001 to 037 and 0177 to 0377 by an embedded echo
1781              -e  command.   Mode "q" prints any characters in shell quotation
1782              marks. This might not be terminal-safe but should work in script
1783              files.   Mode  "r"  uses no quotation marks. Not safe.  Mode "b"
1784              prints backslash encoding. Not suitable for shell parsing.
1785              E.g. -exec list_extattr e --
1786              Command -backslash_codes does not affect the output.
1787              get_md5 prints the MD5 sum,  if  recorded,  together  with  file
1788              path.
1789              check_md5  compares  the  MD5  sum,  if  recorded, with the file
1790              content and reports if mismatch.
1791              E.g.: -find / -not -pending_data -exec check_md5 FAILURE --
1792              make_md5 equips a data file with an  MD5  sum  of  its  content.
1793              Useful  to  upgrade  the  files  in the loaded image to full MD5
1794              coverage by the next commit with -md5 "on".
1795              E.g.: -find / -type f -not -has_md5 -exec make_md5 --
1796              setfattr sets or deletes xattr name value pairs.
1797              E.g.: -find / -has_xattr -exec setfattr --remove-all '' --
1798              set_hfs_crtp adds, changes, or removes  HFS+  creator  and  type
1799              attributes.
1800              E.g.: -exec set_hfs_crtp YYDN TEXT
1801              E.g.: -find /my/dir -prune -exec set_hfs_crtp --delete -
1802              get_hfs_crtp   prints  the  HFS+  creator  and  type  attributes
1803              together with the iso_rr_path, if the file has  such  attributes
1804              at all.
1805              E.g.: -exec get_hfs_crtp
1806              set_hfs_bless  applies or removes HFS+ blessings. They are roles
1807              which can be attributed to up to four  directories  and  a  data
1808              file:
1809              "ppc_bootdir",  "intel_bootfile",  "show_folder",  "os9_folder",
1810              "osx_folder".
1811              They may be abbreviated as "p", "i", "s", "9", and "x".
1812              Each such role can be attributed to at  most  one  file  object.
1813              "intel_bootfile" is the one that would apply to a data file. All
1814              others apply to directories.  The -find run will end as soon  as
1815              the  first  blessing  is  issued.  The  previous  bearer  of the
1816              blessing will lose it then.  No file object can bear  more  than
1817              one blessing.
1818              E.g.: -find /my/blessed/directory -exec set_hfs_bless p
1819              Further  there  is  blessing  "none"  or  "n"  which revokes any
1820              blessing from the found files. This -find run will not stop when
1821              the first match is reached.
1822              E.g.: -find / -has_hfs_bless any -exec set_hfs_bless none
1823              get_hfs_bless prints the HFS+ blessing role and the iso_rr_path,
1824              if the file is blessed at all.
1825              E.g.: -exec get_hfs_bless
1826              set_filter applies or removes filters.
1827              E.g.: -exec set_filter --zisofs --
1828              mkisofs_r applies the rules of mkisofs -r to the file object:
1829              user id and group id become 0, all  r-permissions  get  granted,
1830              all  w  denied.   If there is any x-permission, then all three x
1831              get granted.  s- and t-bits get removed.
1832              sort_weight attributes a LBA weight number to regular files.
1833              The number may range from -2147483648 to 2147483647. The  higher
1834              it  is,  the lower will be the block address of the file data in
1835              the emerging ISO  image.   Currently  the  boot  catalog  has  a
1836              hardcoded  weight  of  1 billion.  Normally it should occupy the
1837              block with the lowest possible address.
1838              Data files which are loaded by  -indev  or  -dev  get  a  weight
1839              between  1  and 2 exp 28 = 268,435,456, depending on their block
1840              address. This shall keep them roughly in the same order  if  the
1841              write method of modifying is applied.
1842              Data  files  which  are  added  by other commands get an initial
1843              weight of 0.  Boot image files have a default weight of 2.
1844              E.g.: -exec sort_weight 3 --
1845              show_stream shows the content stream chain of a data file.
1846              show_stream_id is like  show_stream,  but  also  prints  between
1847              stream  type  and  first  ":"  in  square  brackets  libisofs id
1848              numbers: [fs_id,dev_id,ino_id].
1849              hide brings the file into one of the hide states "on", "iso_rr",
1850              "joliet",   "hfsplus",   "off".  They  may  be  combined.  E.g.:
1851              joliet:hfsplus
1852              E.g.:
1853                -find / -disk_name *_secret -exec hide on
1854              print_outname  prints  in  the  first  line  the   filename   as
1855              registered  by  the  program  model,  and in the second line the
1856              filename after conversion forth and back between local character
1857              set  and one of the namespaces "rockridge", "joliet", "ecma119",
1858              or "hfsplus". The third output line is "--" .
1859              The name conversion does not take into respect  the  possibility
1860              of  name collisions in the target namespace. Such collisions are
1861              most likely in "joliet" and "ecma119", where they  get  resolved
1862              by automatic file name changes.
1863              E.g.:
1864                -find / -bad_outname joliet -exec print_outname joliet
1865              estimate_size  prints  a  lower  and  an upper estimation of the
1866              number of blocks which the found files together will  occupy  in
1867              the   emerging  ISO  image.   This  does  not  account  for  the
1868              superblock, for the directories in the -find path, or for  image
1869              padding.
1870              find performs another run of -find on the matching file address.
1871              It accepts the same params as -find, except iso_rr_path.
1872              E.g.:
1873                -find / -name '???' -type d -exec find  -name  '[abc]*'  -exec
1874              chmod a-w,a+r --
1875
1876       Filters for data file content:
1877
1878       Filters  may be installed between data files in the ISO image and their
1879       content source outside the image. They may  also  be  used  vice  versa
1880       between data content in the image and target files on disk.
1881       Built-in filters are "--zisofs" and "--zisofs-decode". The former is to
1882       be applied via -set_filter, the  latter  is  automatically  applied  if
1883       zisofs  compressed content is detected with a file when loading the ISO
1884       image.
1885       Another built-in filter pair is "--gzip"  and  "--gunzip"  with  suffix
1886       ".gz".   They  behave  about  like  external  gzip and gunzip but avoid
1887       forking a process for each single file. So  they  are  much  faster  if
1888       there are many small files.
1889
1890       -external_filter name option[:option] program_path [arguments] --
1891              Register  a  content filter by associating a name with a program
1892              path, program  arguments,  and  some  behavioral  options.  Once
1893              registered  it  can be applied to multiple data files in the ISO
1894              image, regardless whether their content resides  in  the  loaded
1895              ISO image or in the local filesystem.  External filter processes
1896              may produce synthetic  file  content  by  reading  the  original
1897              content  from  stdin  and  writing to stdout whatever they want.
1898              They must deliver the same output on the same input in  repeated
1899              runs.
1900              Options are:
1901               "default" means that no other option is intended.
1902               "suffix=..."  sets  a file name suffix. If it is not empty then
1903              it will be appended to the file name or removed from it.
1904               "remove_suffix" will remove a  file  name  suffix  rather  than
1905              appending it.
1906               "if_nonempty" will leave 0-sized files unfiltered.
1907               "if_reduction"  will try filtering and revoke it if the content
1908              size does not shrink.
1909               "if_block_reduction" will revoke if the number of 2  kB  blocks
1910              does not shrink.
1911               "used=..." is ignored. Command -status shows it with the number
1912              of files which currently have the filter applied.
1913              Examples:
1914               -external_filter bzip2 suffix=.bz2:if_block_reduction \
1915                                /usr/bin/bzip2 --
1916               -external_filter bunzip2 suffix=.bz2:remove_suffix \
1917                                /usr/bin/bunzip2 --
1918
1919       -unregister_filter name
1920              Remove an -external_filter registration. This is  only  possible
1921              if the filter is not applied to any file in the ISO image.
1922
1923       -close_filter_list
1924              Irrevocably  ban  commands -concat "pipe", -external_filter, and
1925              -unregister_filter, but not -set_filter.  Use  this  to  prevent
1926              external  filtering  in general or when all intended filters are
1927              registered  and  -concat  mode  "pipe"  shall   be   disallowed.
1928              External  filters  may also be banned totally at compile time of
1929              xorriso.  By default they  are  banned  if  xorriso  runs  under
1930              setuid permission.
1931
1932       -set_filter name iso_rr_path [***]
1933              Apply an -external_filter or a built-in filter to the given data
1934              files in the ISO image.  If the filter suffix  is  not  empty  ,
1935              then it will be applied to the file name.  Renaming only happens
1936              if the filter really gets attached and is  not  revoked  by  its
1937              options.   By  default  files which already bear the suffix will
1938              not get filtered. The others will get  the  suffix  appended  to
1939              their names.  If the filter has option "remove_suffix", then the
1940              filter will only be applied if the suffix is present and can  be
1941              removed.   Name  oversize  or  collision caused by suffix change
1942              will prevent filtering.
1943              With most filter types this command  will  immediately  run  the
1944              filter once for each file in order to determine the output size.
1945              Content reading operations like -extract ,  -compare  and  image
1946              generation will perform further filter runs and deliver filtered
1947              content.
1948              At image generation time the filter output  must  still  be  the
1949              same  as  the  output  from  the  first run. Filtering for image
1950              generation does not happen with files from the loaded ISO  image
1951              if  the  write  method  of  growing is in effect (i.e -indev and
1952              -outdev are identical).
1953              The  reserved   filter   name   "--remove-all-filters"   revokes
1954              filtering.  This  will  revoke  suffix  renamings  as well.  Use
1955              "--remove-all-filters+" to prevent any suffix renaming.
1956              Attaching or detaching filters  will  not  alter  the  state  of
1957              -changes_pending.  If the filter manipulations shall be the only
1958              changes in a write run, then explicitly execute -changes_pending
1959              "yes".
1960
1961       -set_filter_r name iso_rr_path [***]
1962              Like  -set_filter  but  affecting  all data files below eventual
1963              directories.
1964
1965       Writing the result, drive control:
1966
1967       (see also paragraph about settings below)
1968
1969       -rollback
1970              Discard the manipulated ISO image and  reload  it  from  -indev.
1971              (Use -rollback_end if immediate program end is desired.)
1972
1973       -changes_pending "no"|"yes"|"mkisofs_printed"|"show_status"
1974              Write  runs are performed only if a change of the image has been
1975              made since the image was loaded or created blank. Vice versa the
1976              program  will start a write run for pending changes when it ends
1977              normally (i.e. not by abort and not by command -rollback_end).
1978              The  command  -changes_pending  can  be  used  to  override  the
1979              automatically  determined  state.  This  is  mainly  useful  for
1980              setting state "yes" despite  no  real  changes  were  made.  The
1981              sequence -changes_pending "no" -end is equivalent to the command
1982              -rollback_end. State "mkisofs_printed" is  caused  by  emulation
1983              command -as mkisofs if option -print-size is present.
1984              The  pseudo-state "show_status" can be used to print the current
1985              state to result channel.
1986              Image loading or manipulations which happen after  this  command
1987              will again update automatically the change status of the image.
1988
1989       -commit
1990              Perform the write operation. Afterwards, if -outdev is readable,
1991              make it the new -dev and load the image from there.   Switch  to
1992              growing  mode.  (A subsequent -outdev will activate modification
1993              mode or blind growing.)  -commit is performed  automatically  at
1994              end of program if there are uncommitted manipulations pending.
1995              So,  to  perform a final write operation with no new -dev and no
1996              new loading of image, rather execute command -end.  If you  want
1997              to  go  on  without image loading, execute -commit_eject "none".
1998              To eject after write without image  loading,  use  -commit_eject
1999              "all".
2000              To suppress a final write, execute -rollback_end.
2001
2002              Writing  can last quite a while. It is not unnormal with several
2003              types of media that there is no progress visible for  the  first
2004              few  minutes  or  that  the  drive gnaws on the medium for a few
2005              minutes after all data have been transmitted.  xorriso  and  the
2006              drives  are  in  a  client-server relationship.  The drives have
2007              much freedom about what to do with the media.  Some combinations
2008              of  drives and media simply do not work, despite the promises by
2009              their vendors.  If writing fails then try other media or another
2010              drive. The reason for such failure is hardly ever in the code of
2011              the various burn programs but you may well  try  some  of  those
2012              listed below under SEE ALSO.
2013
2014       -eject "in"|"out"|"all"
2015              Eject   the   medium   in   -indev,  -outdev,  or  both  drives,
2016              respectively.  Note: It is not possible yet to effectively eject
2017              disk files.
2018
2019       -commit_eject "in"|"out"|"all"|"none"
2020              Combined  -commit  and  -eject. When writing has finished do not
2021              make -outdev the new -dev, and load no ISO image.  Rather  eject
2022              -indev and/or -outdev. Give up any non-ejected drive.
2023
2024       -blank mode
2025              Make  media  ready  for  writing  from scratch (if not -dummy is
2026              activated).
2027              This affects only the -outdev not the -indev.   If  both  drives
2028              are  the same and if the ISO image was altered then this command
2029              leads to a FAILURE event.  Defined modes are:
2030                as_needed, fast, all, deformat, deformat_quickest
2031              "as_needed"  cares  for  used  CD-RW,  DVD-RW   and   for   used
2032              overwriteable  media  by  applying  -blank  "fast".  It  applies
2033              -format "full" to  yet  unformatted  DVD-RAM  and  BD-RE.  Other
2034              media in blank state are gracefully ignored.  Media which cannot
2035              be made ready for writing from scratch cause a FAILURE event.
2036              "fast"  makes  CD-RW  and  unformatted  DVD-RW   re-usable,   or
2037              invalidates  overwriteable  ISO  images.  "all"  might work more
2038              thoroughly and need more time.
2039              "deformat" converts overwriteable DVD-RW into unformatted ones.
2040              "deformat_quickest" is a faster way to deformat or blank  DVD-RW
2041              but produces media which are only suitable for a single session.
2042              Some drives announce this state by not offering feature 21h, but
2043              some  drives  offer  it anyway.  If feature 21h is missing, then
2044              xorriso will refuse to write on DVD-RW if not command -close  is
2045              set to "on".
2046              The  progress  reports  issued by some drives while blanking are
2047              quite unrealistic. Do not conclude success or failure  from  the
2048              reported  percentages. Blanking was successful if no SORRY event
2049              or worse occurred.
2050              Mode may be prepended by  "force:"  in  order  to  override  the
2051              evaluation  of  the  medium state by libburn. E.g. "force:fast".
2052              Blanking will nevertheless only succeed if the drive is  willing
2053              to do it.
2054
2055       -format mode
2056              Convert  unformatted  DVD-RW  into  overwriteable ones, "de-ice"
2057              DVD+RW, format newly purchased BD-RE or BD-R, re-format  DVD-RAM
2058              or BD-RE.
2059              Defined modes are:
2060                as_needed, full, fast, by_index_<num>, fast_by_index_<num>,
2061                by_size_<num>, fast_by_size_<num>, without_spare
2062              "as_needed"  formats  yet unformatted DVD-RW, DVD-RAM, BD-RE, or
2063              blank unformatted BD-R. Other media are left untouched.
2064              "full" (re-)formats DVD-RW, DVD+RW,  DVD-RAM,  BD-RE,  or  blank
2065              unformatted BD-R.
2066              "fast" does the same as "full" but tries to be quicker.
2067              "by_index_"  selects  a format out of the descriptor list issued
2068              by command -list_formats. The index number from that list is  to
2069              be appended to the mode word. E.g: "by_index_3".
2070              "fast_by_index_"  does  the  same as "by_index_" but tries to be
2071              quicker.
2072              "by_size_" selects a format out of  the  descriptor  list  which
2073              provides at least the given size. That size is to be appended to
2074              the mode word.  E.g: "by_size_4100m". This applies to media with
2075              Defect  Management.   On  BD-RE  it will not choose format 0x31,
2076              which offers no Defect Management.
2077              "fast_by_size_" does the same as  "by_size_"  but  tries  to  be
2078              quicker.
2079              "without_spare" selects the largest format out of the descriptor
2080              list which provides no Spare  Area  for  Defect  Management.  On
2081              BD-RE this will be format 0x31.
2082              The  formatting  action  has  no  effect  on  media if -dummy is
2083              activated.
2084              Formatting is normally needed only once during the lifetime of a
2085              medium, if ever. But it is a reason for re-formatting if:
2086               DVD-RW was deformatted by -blank,
2087               DVD+RW has read failures (re-format before next write),
2088               DVD-RAM or BD-RE shall change their amount of defect reserve.
2089              BD-R may be written unformatted or may be formatted before first
2090              use.  Formatting activates  Defect  Management  which  tries  to
2091              catch  and repair bad spots on media during the write process at
2092              the expense of half speed even with flawless media.
2093              The progress reports issued by some drives while formatting  are
2094              quite  unrealistic.  Do not conclude success or failure from the
2095              reported percentages. Formatting  was  successful  if  no  SORRY
2096              event  or  worse  occurred.  Be  patient  with apparently frozen
2097              progress.
2098
2099       -list_formats
2100              Put out a list of format descriptors as reported by  the  output
2101              drive  for  the  current medium. The list gives the index number
2102              after "Format idx", a MMC format code,  the  announced  size  in
2103              blocks (like "2236704s") and the same size in MiB.
2104              MMC format codes are manifold. Most important are: "00h" general
2105              formatting, "01h" increases reserve space for DVD-RAM, "26h" for
2106              DVD+RW,  "30h"  for  BD-RE  with  reserve space, "31h" for BD-RE
2107              without reserve space, "32h" for BD-R.
2108              Smaller format size with DVD-RAM,  BD-RE,  or  BD-R  means  more
2109              reserve space.
2110
2111       -list_speeds
2112              Put  out  a  list of speed values as reported by the drives with
2113              the loaded media. The list tells read speeds of the input  drive
2114              and  of  the  output drive. Further it tells write speeds of the
2115              output drive.
2116              The list of write speeds does  not  necessarily  mean  that  the
2117              medium is writable or that these speeds are actually achievable.
2118              Especially the lists reported with empty drive or with ROM media
2119              obviously advertise speeds for other media.
2120              It is not mandatory to use speed values out of the listed range.
2121              The drive is supposed to choose a safe speed that is as near  to
2122              the desired speed as possible.
2123              At  the end of the list, "Write speed L" and "Write speed H" are
2124              the best guesses for lower and upper write speed limit.   "Write
2125              speed  l"  and  "Write  speed  h"  may  appear  only with CD and
2126              eventually override the list of other speed offers.
2127              Only if the drive reports contradicting speed information  there
2128              will  appear  "Write  speed 0", which tells the outcome of speed
2129              selection by command -speed 0, if it deviates from "Write  speed
2130              H".
2131              "Read  speed  L" and "Read speed H" tell the minimum and maximum
2132              read speeds, as reported by the drive. They would be  chosen  by
2133              -read_speed  "min"  or  "max"  if  they  undercut or surpass the
2134              built-in limits. These are "1x", "52xCD", "24xDVD", "20xBD".
2135
2136       -close_damaged "as_needed"|"force"
2137              Try to close  the  upcoming  track  and  session  if  the  drive
2138              reported  the  medium as damaged. This may apply to CD-R, CD-RW,
2139              DVD-R, DVD-RW, DVD+R, DVD+R DL, or BD-R media. It  is  indicated
2140              by  warning  messages  when  the  drive  gets acquired, and by a
2141              remark "but next track is damaged" with the line  "Media  status
2142              :" of command -toc.
2143              The  setting  of  command  -close  determines whether the medium
2144              stays appendable.
2145              Mode "as_needed" gracefully  refuses  on  media  which  are  not
2146              reported  as  damaged. Mode "force" attempts the close operation
2147              even with media which appear undamaged.
2148              No image changes are allowed to be pending before  this  command
2149              is  performed.   After  closing  was  attempted, both drives are
2150              given up.
2151
2152       -list_profiles "in"|"out"|"all"
2153              Put out a list of media types supported by -indev,  -outdev,  or
2154              both,  respectively.  The currently recognized type is marked by
2155              text "(current)".
2156
2157       Settings for result writing:
2158
2159       Rock Ridge info will be generated by default.   ACLs  will  be  written
2160       according to the setting of command -acl.
2161
2162       -joliet "on"|"off"
2163              If  enabled by "on", generate Joliet tree additional to ISO 9660
2164              + Rock Ridge tree.
2165
2166       -hfsplus "on"|"off"
2167              If enabled by "on", generate a HFS+ filesystem  inside  the  ISO
2168              9660  image  and mark it by Apple Partition Map (APM) entries in
2169              the System Area, the first 32 KiB of the image.
2170              This  may   collide   with   data   submitted   by   -boot_image
2171              system_area=.   The  first  8  bytes  of  the  System  Area  get
2172              overwritten by { 0x45, 0x52, 0x08 0x00, 0xeb, 0x02, 0xff, 0xff }
2173              which  can  be  executed  as  x86  machine code without negative
2174              effects.  So if an MBR gets combined with this feature, then its
2175              first 8 bytes should contain no essential commands.
2176              The  next blocks of 2 KiB in the System Area will be occupied by
2177              APM entries.  The first one covers the part  of  the  ISO  image
2178              before  the  HFS+  filesystem metadata. The second one marks the
2179              range from HFS+ metadata to the end of  file  content  data.  If
2180              more  ISO  image  data follow, then a third partition entry gets
2181              produced. Other features of xorriso might  cause  the  need  for
2182              more APM entries.
2183              The HFS+ filesystem is not suitable for add-on sessions produced
2184              by the multi-session method of growing. An  existing  ISO  image
2185              may  nevertheless  be  the  base for a new image produced by the
2186              method of modifying.  If -hfsplus is enabled when -indev or -dev
2187              gets  executed,  then  AAIP attributes get loaded from the input
2188              image and checked for information about HFS  creator,  filetype,
2189              or blessing. If found, then they get enabled as settings for the
2190              next image production.  Therefore it  is  advisable  to  perform
2191              -hfsplus "on" before -indev or -dev.
2192              Information  about  HFS creator, type, and blessings gets stored
2193              by xorriso if -hfsplus is enabled at -commit time. It is  stored
2194              as  copy  outside  the HFS+ partition, but rather along with the
2195              Rock Ridge information.  xorriso does not read  any  information
2196              from the HFS+ meta data.
2197              Be  aware  that  HFS+ is case-insensitive although it can record
2198              file names with upper-case and  lower-case  letters.  Therefore,
2199              file  names  from  the  iso_rr name tree may collide in the HFS+
2200              name tree. In this case they get changed  by  adding  underscore
2201              characters  and counting numbers. In case of very long names, it
2202              might be necessary to map them to "MANGLED_...".
2203
2204       -rockridge "on"|"off"
2205              Mode "off" disables production of Rock Ridge information for the
2206              ISO 9660 file objects. The multi-session capabilities of xorriso
2207              depend much on the naming fidelity  of  Rock  Ridge.  So  it  is
2208              strongly discouraged to deviate from default setting "on".
2209
2210       -compliance rule[:rule...]
2211              Adjust the compliance to specifications of ISO 9660/ECMA-119 and
2212              its contemporary extensions.  In  some  cases  it  is  worth  to
2213              deviate a bit in order to circumvent bugs of the intended reader
2214              system or to get unofficial extra features.
2215              There are several adjustable rules which have a keyword each. If
2216              they  are mentioned with this command then their rule gets added
2217              to the relaxation  list.  This  list  can  be  erased  by  rules
2218              "strict"  or  "clear".  It  can be reset to its start setting by
2219              "default". All of the following relaxation rules can be  revoked
2220              individually by appending "_off". Like "deep_paths_off".
2221              Rule keywords are:
2222              "iso_9660_level="number  chooses  level 1 with ECMA-119 names of
2223              the form 8.3 and -file_size_limit <= 4g - 1,  or  level  2  with
2224              ECMA-119 names up to length 32 and the same -file_size_limit, or
2225              level 3 with ECMA-119 names up to length 32 and -file_size_limit
2226              >= 400g -200k. If necessary -file_size_limit gets adjusted.
2227              "allow_dir_id_ext"  allows ECMA-119 names of directories to have
2228              a name extension as with other file types.  It  does  not  force
2229              dots  and  it  omits  the  version number, though. This is a bad
2230              tradition of mkisofs which violates  ECMA-119.   Especially  ISO
2231              level  1  only  allows  8 characters in a directory name and not
2232              8.3.
2233              "omit_version" does not add  versions  (";1")  to  ECMA-119  and
2234              Joliet file names.
2235              "only_iso_version"  does  not add versions (";1") to Joliet file
2236              names.
2237              "deep_paths" allows ECMA-119 file paths deeper than 8 levels.
2238              "long_paths"  allows  ECMA-119  file  paths  longer   than   255
2239              characters.
2240              "long_names"  allows  up  to  37  characters  with ECMA-119 file
2241              names.
2242              "no_force_dots" does not add a dot to ECMA-119 file names  which
2243              have none.
2244              "no_j_force_dots"  does not add a dot to Joliet file names which
2245              have none.
2246              "lowercase" allows lowercase characters in ECMA-119 file names.
2247              "7bit_ascii" allows nearly all 7-bit characters in ECMA-119 file
2248              names.   Not  allowed  are  0x0  and  '/'. If not "lowercase" is
2249              enabled, then lowercase letters get converted to uppercase.
2250              "full_ascii" allows all 8-bit characters except 0x0 and  '/'  in
2251              ECMA-119 file names.
2252              "untranslated_names"  might  be  dangerous for inadverted reader
2253              programs which rely on the restriction to at most 37  characters
2254              in ECMA-119 file names.  This rule allows ECMA-119 file names up
2255              to 96 characters with no character conversion. If  a  file  name
2256              has   more   characters,   then   image   production  will  fail
2257              deliberately.
2258              "untranslated_name_len="number enables untranslated_names with a
2259              smaller  limit  for  the  length  of file names. 0 disables this
2260              feature, -1 chooses maximum length limit, numbers larger than  0
2261              give the desired length limit.
2262              "joliet_long_names"   allows   Joliet   leaf  names  up  to  103
2263              characters rather than 64.
2264              "joliet_long_paths"  allows  Joliet  paths   longer   than   240
2265              characters.
2266              "joliet_utf16"  encodes  Joliet  names  in  UTF-16BE rather than
2267              UCS-2.  The difference is with characters which are not  present
2268              in  UCS-2  and  get encoded in UTF-16 by 2 words of 16 bit each.
2269              Both words then stem from a reserved subset of UCS-2.
2270              "always_gmt"  stores  timestamps  in  GMT  representation   with
2271              timezone 0.
2272              "rec_mtime"  records  with  non-RockRidge  directory entries the
2273              disk file's mtime and not the creation time of the  image.  This
2274              applies to the ECMA-119 tree (plain ISO 9660), to Joliet, and to
2275              ISO 9660:1999. "rec_time"  is  default.  If  disabled,  it  gets
2276              automatically   re-enabled  by  -as  mkisofs  emulation  when  a
2277              pathspec is encountered.
2278              "new_rr" uses Rock Ridge version 1.12  (suitable  for  GNU/Linux
2279              but  not  for  older  FreeBSD  or  for  Solaris).  This  implies
2280              "aaip_susp_1_10_off"  which  may  be   changed   by   subsequent
2281              "aaip_susp_1_10".
2282              Default  is  "old_rr"  which  uses Rock Ridge version 1.10. This
2283              implies also "aaip_susp_1_10" which may be changed by subsequent
2284              "aaip_susp_1_10_off".
2285              "aaip_susp_1_10"   allows  AAIP  to  be  written  as  unofficial
2286              extension of  RRIP  rather  than  as  official  extension  under
2287              SUSP-1.12.
2288              "no_emul_toc"   saves   64   kB   with   the  first  session  on
2289              overwriteable media but makes the image incapable of  displaying
2290              its session history.
2291              "iso_9660_1999" causes the production of an additional directory
2292              tree compliant to ISO 9660:1999. It can  record  long  filenames
2293              for readers which do not understand Rock Ridge.
2294              "old_empty" uses the old way of of giving block addresses in the
2295              range of [0,31] to files with no own data content. The  new  way
2296              is to have a dedicated block to which all such files will point.
2297              Default setting is
2298               "clear:only_iso_version:deep_paths:long_paths:no_j_force_dots:
2299               always_gmt:old_rr".
2300              Note:  The  term  "ECMA-119 name" means the plain ISO 9660 names
2301              and attributes which get visible  if  the  reader  ignores  Rock
2302              Ridge.
2303
2304       -rr_reloc_dir name
2305              Specify  the  name  of  the  relocation  directory in which deep
2306              directory subtrees shall be placed  if  -compliance  is  set  to
2307              "deep_paths_off"  or  "long_paths_off".  A deep directory is one
2308              that has a chain of 8 parent directories (including root)  above
2309              itself,  or  one  that  contains a file with an ECMA-119 path of
2310              more than 255 characters.
2311              The overall directory tree  will  appear  originally  deep  when
2312              interpreted as Rock Ridge tree. It will appear as re-arranged if
2313              only ECMA-119 information is considered.
2314              The default relocation  directory  is  the  root  directory.  By
2315              giving  a  non-empty name with -rr_reloc_dir, a directory in the
2316              root directory may get this role.  If that  directory  does  not
2317              already  exist  at  -commit  time,  then it will get created and
2318              marked for Rock  Ridge  as  relocation  artefact.  At  least  on
2319              GNU/Linux it will not be displayed in mounted Rock Ridge images.
2320              The name must not contain a '/' character and must not be longer
2321              than 255 bytes.
2322
2323       -volid text
2324              Specify  the  volume  ID,  which  most  operating  systems  will
2325              consider to be the volume name of the image or medium.
2326              xorriso  accepts  any text up to 32 characters, but according to
2327              rarely obeyed specs stricter rules apply:
2328              ECMA-119 demands ASCII characters out of [A-Z0-9_]. Like:
2329                "IMAGE_23"
2330              Joliet allows 16 UCS-2 characters. Like:
2331                "Windows name"
2332              Be aware that the volume id might get used automatically as  the
2333              name  of  the  mount  point  when  the medium is inserted into a
2334              playful computer system.
2335              If an ISO image gets loaded  while  the  volume  ID  is  set  to
2336              default  "ISOIMAGE"  or  to "", then the volume ID of the loaded
2337              image will become the effective volume id  for  the  next  write
2338              run. But as soon as command -volid is performed afterwards, this
2339              pending ID is overridden by the new setting.
2340              Consider this when setting -volid  "ISOIMAGE"  before  executing
2341              -dev, -indev, or -rollback.  If you insist in -volid "ISOIMAGE",
2342              set it again after those commands.
2343
2344       -volset_id text
2345              Set the volume set  ID  string  to  be  written  with  the  next
2346              -commit.   Permissible  are  up  to 128 characters. This setting
2347              gets overridden by image loading.
2348
2349       -publisher text
2350              Set the publisher ID string to be written with the next -commit.
2351              This  may identify the person or organisation who specified what
2352              shall be recorded.  Permissible are up to 128  characters.  This
2353              setting gets overridden by image loading.
2354
2355       -application_id text
2356              Set  the  application  ID  string  to  be  written with the next
2357              -commit. This may identify the specification of how the data are
2358              recorded.   Permissible  are  up to 128 characters. This setting
2359              gets overridden by image loading.
2360              The special text "@xorriso@" gets converted to the ID string  of
2361              xorriso which is normally written as -preparer_id. It is a wrong
2362              tradition to write the program ID as -application_id.
2363
2364       -system_id text
2365              Set the system ID string to be written with  the  next  -commit.
2366              This  may  identify  the system which can recognize and act upon
2367              the content of  the  System  Area  in  image  blocks  0  to  15.
2368              Permissible   are   up  to  32  characters.  This  setting  gets
2369              overridden by image loading.
2370
2371       -volume_date type timestring
2372              Set one of the four  overall  timestamps  for  subsequent  image
2373              writing.  Available types are:
2374              "c"  time when the volume was created.
2375              "m"  time when volume was last modified.
2376              "x"  time when the information in the volume expires.
2377              "f"  time since when the volume is effectively valid.
2378              "all_file_dates"   sets mtime, atime, and ctime of all files and
2379              directories  to  the  given   time.   If   the   timestring   is
2380              "set_to_mtime",  then  the  atime  and  ctime  of  each file and
2381              directory get set to the value found in their mtime.
2382              These actions stay delayed until actual ISO  production  begins.
2383              Up  to  then  they can be revoked by "all_file_dates" with empty
2384              timestring or timestring "default".
2385              The timestamps of the El Torito boot catalog file get  refreshed
2386              when the ISO is produced. They can be influenced by "uuid".
2387              "uuid"   sets  a  timestring  that  overrides  "c" and "m" times
2388              literally and sets the time of the El Torito boot  catalog.   It
2389              must  consist  of 16 decimal digits which form YYYYMMDDhhmmsscc,
2390              with YYYY between 1970 and  2999.  Time  zone  is  GMT.   It  is
2391              supposed to match this GRUB line:
2392               search --fs-uuid --set YYYY-MM-DD-hh-mm-ss-cc
2393              E.g. 2010040711405800 is 7 Apr 2010 11:40:58 (+0 centiseconds).
2394              Timestrings  for  the  other  types may be given as with command
2395              -alter_date.  Some of them are prone to  timezone  computations.
2396              The   timestrings   "default"   or  "overridden"  cause  default
2397              settings: "c" and "m"  will  show  the  current  time  of  image
2398              creation.  "x"  and "f" will be marked as insignificant.  "uuid"
2399              will be deactivated.
2400              At -commit time, some timestamps get set to the maximum value of
2401              effectively  written  volume  creation and modification time: El
2402              Torito boot catalog, HFS+ superblock, ECMA-119 file modification
2403              time  if  -compliance  "no_rec_mtime".   The isohybrid MBR id is
2404              computed from "uuid" if given, else from  the  effective  volume
2405              modification date.
2406
2407       -copyright_file text
2408              Set the copyright file name to be written with the next -commit.
2409              This should be the ISO 9660 path of a file in  the  image  which
2410              contains  a  copyright  statement.   Permissible  are  up  to 37
2411              characters. This setting gets overridden by image loading.
2412
2413       -abstract_file text
2414              Set the abstract file name to be written with the next  -commit.
2415              This  should  be  the ISO 9660 path of a file in the image which
2416              contains  an  abstract  statement  about  the   image   content.
2417              Permissible   are   up  to  37  characters.  This  setting  gets
2418              overridden by image loading.
2419
2420       -biblio_file text
2421              Set the biblio file name to be written with  the  next  -commit.
2422              This  should  be  the ISO 9660 path of a file in the image which
2423              contains  bibliographic  records.   Permissible  are  up  to  37
2424              characters. This setting gets overridden by image loading.
2425
2426       -preparer_id
2427              Set  the preparer ID string to be written with the next -commit.
2428              This may identify the person or other entity which controls  the
2429              preparation  of  the data which shall be recorded. Normally this
2430              should be the ID of xorriso and not of  the  person  or  program
2431              which operates xorriso.  Please avoid to change it.  Permissible
2432              are up to 128 characters.
2433              The special text "@xorriso@" gets converted to the ID string  of
2434              xorriso which is default at program startup.
2435              Unlike other ID strings, this setting is not influenced by image
2436              loading.
2437
2438       -application_use character|0xXY|disk_path
2439              Specify the content of the Application Use field which can  take
2440              at most 512 bytes.
2441              If  the  parameter  of  this command is empty, then the field is
2442              filled with 512 0-bytes. If it is a single  character,  then  it
2443              gets  repeated  512 times.  If it begins by "0x" followed by two
2444              hex digits [0-9a-fA-F], then the digits are read as  byte  value
2445              which gets repeated 512 times.
2446              Any  other  parameter  text  is used as disk_path to open a data
2447              file and to read up to 512 bytes from it. If the file is smaller
2448              than 512 bytes, then the remaining bytes in the field get set to
2449              binary 0.
2450              This setting is not influenced by image loading.
2451
2452       -out_charset character_set_name
2453              Set the character set to which file  names  get  converted  when
2454              writing  an  image.  See  paragraph  "Character  sets"  for more
2455              explanations.  When loading the written image after -commit  the
2456              setting of -out_charset will be copied to -in_charset.
2457
2458       -uid uid
2459              User  id  to  be  used  for all files when the new ISO tree gets
2460              written to media.
2461
2462       -gid gid
2463              Group id to be used for all files when the  new  ISO  tree  gets
2464              written to media.
2465
2466       -zisofs option[:options]
2467              Set  global  parameters for zisofs compression. This data format
2468              is recognized  and  transparently  uncompressed  by  some  Linux
2469              kernels.  It  is  to  be  applied  via  command -set_filter with
2470              built-in filter "--zisofs".  Parameters are:
2471               "level="[0-9] zlib compression: 0=none, 1=fast,..., 9=slow
2472               "block_size="32k|64k|128k size of compression blocks
2473               "by_magic=on" enables an expensive  test  at  image  generation
2474              time  which  checks  files  from  disk  whether they already are
2475              zisofs compressed, e.g. by program mkzftree.
2476               "default" same as "level=6:block_size=32k:by_magic=off"
2477
2478       -speed code|number[k|m|c|d|b]
2479              Set the burn speed. Default is "max" (or "0") = maximum speed as
2480              announced by the drive.  Further special speed codes are:
2481              "min" (or "-1") selects minimum speed as announced by the drive.
2482              "none"  avoids  to  send  a  speed  setting command to the drive
2483              before burning begins.
2484              Speed can be given in media dependent numbers or  as  a  desired
2485              throughput per second in MMC compliant kB (= 1000) or MB (= 1000
2486              kB). Media x-speed factor can be set explicitly by "c"  for  CD,
2487              "d" for DVD, "b" for BD, "x" is optional.
2488              Example speeds:
2489               706k = 706kB/s = 4c = 4xCD
2490               5540k = 5540kB/s = 4d = 4xDVD
2491              If  there  is  no  hint  about the speed unit attached, then the
2492              medium in the -outdev will decide. Default unit is CD = 176.4k.
2493              MMC drives usually activate their own idea of speed and take the
2494              speed  value  given  by the burn program only as upper limit for
2495              their own decision.
2496
2497       -stream_recording "on"|"off"|"full"|"data"|number
2498              Setting "on" tries to circumvent the management  of  defects  on
2499              DVD-RAM,  BD-RE, or BD-R. Defect management keeps partly damaged
2500              media usable. But it reduces write speed to half  nominal  speed
2501              even  if  the  medium  is  in  perfect  shape.   For the case of
2502              flawless media, one may use -stream_recording "on" to  get  full
2503              speed.
2504              "full"  tries full speed with all write operations, whereas "on"
2505              does this only above byte address 32s. One may give a number  of
2506              at least 16s in order to set an own address limit.
2507              "data"  causes full speed to start when superblock and directory
2508              entries are written and writing of file content blocks begins.
2509
2510       -dvd_obs "default"|"32k"|"64k"
2511              GNU/Linux specific: Set the number of bytes  to  be  transmitted
2512              with  each write operation to DVD or BD media. A number of 64 KB
2513              may improve throughput  with  bus  systems  which  show  latency
2514              problems.   The  default  depends  on  media  type,  on  command
2515              -stream_recording , and on compile time options.
2516
2517       -modesty_on_drive parameter[:parameters]
2518              Control whether the drive buffer  shall  be  kept  from  getting
2519              completely  filled.   Parameter  "on" (or "1") keeps the program
2520              from trying to write to the burner drive while its buffer is  in
2521              danger  to  be  filled  over  a  given  limit.  If this limit is
2522              exceeded then the program will wait until the filling reaches  a
2523              given low percentage value.
2524              This  can ease the load on operating system and drive controller
2525              and thus help with achieving better input bandwidth if disk  and
2526              burner are not on independent controllers (like hda and hdb). It
2527              may also help with throughput problems of simultaneous burns  on
2528              different  burners  with  Linux  kernels  like  3.16, if one has
2529              reason not to fix the problem by -scsi_dev_family "sg".  On  the
2530              other  hand  it  increases the risk of buffer underflow and thus
2531              reduced write speed.
2532              Some burners are not suitable because they  report  buffer  fill
2533              with  granularity  too  coarse  in size or time, or expect their
2534              buffer to be filled to the top before they go to full speed.
2535              Parameters "off" or "0" disable this feature.
2536              The threshold for  beginning  to  wait  is  given  by  parameter
2537              "max_percent=".   Parameter "min_percent=" defines the threshold
2538              for resuming transmission.  Percentages are permissible  in  the
2539              range  of  25  to 100. Numbers in this range without a prepended
2540              name are interpreted as "on:min_percent=".
2541              E.g.: -modesty_on_drive 75
2542              The optimal values depend on the buffer behavior of the drive.
2543              Parameter   "timeout_sec="   defines   after   which   time   of
2544              unsuccessful  waiting  the  modesty shall be disabled because it
2545              does not work.
2546              Parameter "min_usec=" defines the  initial  sleeping  period  in
2547              microseconds.   If  the  drive buffer appears to be too full for
2548              sending more data, the program will  wait  the  given  time  and
2549              inquire  the buffer fill state again.  If repeated inquiry shows
2550              not enough free space, the sleep time will slowly  be  increased
2551              to what parameter "max_usec=" defines.
2552              Parameters,  which  are  not  mentioned with a -modesty_on_drive
2553              command, stay unchanged.  Default is:
2554                -modesty_on_drive off:min_percent=90:max_percent=95:
2555                timeout_sec=120:min_usec=5000:max_usec=25000
2556
2557       -use_immed_bit "on"|"off"|"default"
2558              Control whether several long  lasting  SCSI  commands  shall  be
2559              executed  with the Immed bit, which makes the commands end early
2560              while the drive  operation  is  still  going  on.  xorriso  then
2561              inquires progress indication until the drive reports to be ready
2562              again.  If  this  feature  is  turned  off,  then  blanking  and
2563              formatting will show no progress indication.
2564              It  may depend on the operating system whether -use_immed_bit is
2565              set to "off" by default. Command -status will tell by  appending
2566              "/on"  or  "/off"  if  a  drive  has  already  been acquired and
2567              -use_immed_bit  is  currently   set   to   "default".    Command
2568              -use_immed_bit tolerates and ignores such appended text.
2569
2570       -stdio_sync "on"|"off"|"end"|number
2571              Set  the  number  of bytes after which to force output to stdio:
2572              pseudo drives.  This forcing keeps the memory from being clogged
2573              with  lots of pending data for slow devices. Default "on" is the
2574              same as "16m".  Forced output can be disabled by  "off",  or  be
2575              delayed  by  "end"  until  all data are produced. If a number is
2576              chosen, then it must be at least 64k.
2577
2578       -dummy "on"|"off"
2579              If "on" then simulate burning or refuse with FAILURE event if no
2580              simulation is possible, do neither blank nor format.
2581
2582       -fs number["k"|"m"]
2583              Set  the size of the fifo buffer which smoothens the data stream
2584              from ISO image generation to media burning. Default  is  4  MiB,
2585              minimum  64  kiB,  maximum 1 GiB.  The number may be followed by
2586              letter "k" or "m" which means unit is kiB (=  1024)  or  MiB  (=
2587              1024 kiB).
2588
2589       -close "on"|"off"|"as_needed"
2590              If  -close  is  set  to "on" then mark the written medium as not
2591              appendable any more. This will have no  effect  on  overwritable
2592              media  types.   Setting  "on" is the contrary of cdrecord option
2593              -multi, and is one aspect of growisofs option -dvd-compat.
2594              If set to "off" then keep the medium writable  for  an  appended
2595              session.
2596              If  set  to "as_needed" then use "on" only if "off" is predicted
2597              to fail with the given medium and its state.
2598              Not all drives correctly  recognize  fast-blanked  DVD-RW  which
2599              need  "on".   If there is well founded suspicion that a burn run
2600              failed due to -close "off", then  -close  "as_needed"  causes  a
2601              re-try with "on".
2602              Note that emulation command -as "cdrecord" temporarily overrides
2603              the current setting of -close by its own default -close "on"  if
2604              its option -multi is missing.
2605
2606       -write_type "auto"|"tao"|"sao/dao"
2607              Set the write type for the next burn run. "auto" will select SAO
2608              with blank CD media, DAO with blank DVD-R[W] if -close is  "on",
2609              and  elsewise  CD  TAO  or  the  equivalent  write  type  of the
2610              particular DVD/BD media.  Choosing  TAO  or  SAO/DAO  explicitly
2611              might  cause  the  burn run to fail if the desired write type is
2612              not possible with the given media state.
2613
2614       -padding number["k"|"m"]|"included"|"appended"
2615              Append the given number of extra  bytes  to  the  image  stream.
2616              This  is  a  traditional  remedy  for a traditional bug in block
2617              device read drivers. Needed only for CD recordings in TAO  mode.
2618              Since  one  can  hardly predict on what media an image might end
2619              up, xorriso adds the traditional 300k of padding by  default  to
2620              all images.
2621              For  images  which  will  never  get  to  a CD it is safe to use
2622              -padding 0 .
2623              Normally padding is not written as part of  the  ISO  image  but
2624              appended after the image end. This is -padding mode "appended".
2625              Emulation command -as "mkisofs" and command -jigdo cause padding
2626              to be written as part of the image.  The same effect is achieved
2627              by -padding mode "included".
2628
2629       Bootable ISO images:
2630
2631       Contrary to published specifications many BIOSes will load an El Torito
2632       record from the first session on media and not from the last one, which
2633       gets  mounted  by  default.  This  makes no problems with overwriteable
2634       media, because they appear to inadverted readers as one single session.
2635       But with multi-session media CD-R[W], DVD-R[W], DVD+R, it implies  that
2636       the  whole  bootable  system has to reside already in the first session
2637       and that the last session still has to bear all files which the  booted
2638       system expects after mounting the ISO image.
2639       If  a  boot image from ISOLINUX or GRUB is known to be present on media
2640       then it is advised to patch it when a follow-up session  gets  written.
2641       But  one should not rely on the capability to influence the bootability
2642       of the existing sessions, unless one can assume overwriteable media.
2643       Normally the boot images are data files inside the ISO  filesystem.  By
2644       special  path  "--interval:appended_partition_NNN:all::" it is possible
2645       to refer to an appended partition. The number NNN gives  the  partition
2646       number as used with the corresponding option -append_partition.  E.g.:
2647         -append_partition 2 0xef /tmp/efi.img
2648         -e --interval:appended_partition_2:all::
2649       There  are  booting mechanisms which do not use an El Torito record but
2650       rather start at the first bytes of the image: PC-BIOS MBR  or  EFI  GPT
2651       for hard-disk-like devices, APM partition entries for Macs which expect
2652       HFS+ boot images, MIPS Volume Header for old SGI  computers,  DEC  Boot
2653       Block for old MIPS DECstation, SUN Disk Label for SPARC machines, HP-PA
2654       boot sector for HP PA-RISC machines, DEC Alpha SRM boot sector for  old
2655       DEC Alpha machines.
2656
2657       Several  of  the following commands expect disk paths as input but also
2658       accept description strings for the libisofs interval reader,  which  is
2659       able  to cut out data from disk files or -indev and to zeroize parts of
2660       the  content:  command  -append_partition,  boot  specs   system_area=,
2661       grub2_mbr=, prep_boot_part=, efi_boot_part=.
2662       The  description string consists of the following components, separated
2663       by colon ':'
2664         "--interval:"Flags":"Interval":"Zeroizers":"Source
2665       The component "--interval" states that this is not a  plain  disk  path
2666       but  rather an interval reader description string.  The component Flags
2667       modifies the further interpretation:
2668       "local_fs" demands to read from a file depicted by the path in Source.
2669       "imported_iso" demands to read from the  -indev.  This  works  only  if
2670       -outdev is not the same as -indev. The Source component is ignored.
2671       "appended_partition_NNN"  with  a  decimal  number  NNN  works only for
2672       -boot_image bootspecs  which  announce  El  Torito  boot  image  paths:
2673       bin_path=,  efi_path=.   The  number gives the partition number as used
2674       with the corresponding option -append_partition.
2675       The component Interval consists of two byte address  numbers  separated
2676       by a "-" character. E.g. "0-429" means to read bytes 0 to 429.
2677       The  component  Zeroizers  consists  of  zero  or  more comma separated
2678       strings.  They define which part of the  read  data  to  zeroize.  Byte
2679       number  0  means  the  byte read from the Interval start address.  Each
2680       string may be one of:
2681       "zero_mbrpt" demands to zeroize the MBR partition table  if  bytes  510
2682       and 511 bear the MBR signature 0x55 0xaa.
2683       "zero_gpt"  demands  to check for a GPT header in bytes 512 to 1023, to
2684       zeroize it and its partition table blocks.
2685       "zero_apm" demands to check for an APM  block  0  and  to  zeroize  its
2686       partition table blocks.
2687       Start_byte"-"End_byte  demands  to  zeroize the read-in bytes beginning
2688       with number Start_byte and ending after End_byte.
2689       The component Source is the file path with flag "local_fs", and ignored
2690       with flag "imported_iso".
2691       Byte  numbers  may  be  scaled by a suffix out of {k,m,g,t,s,d} meaning
2692       multiplication by {1024, 1024k, 1024m,  1024g,  2048,  512}.  A  scaled
2693       value end number depicts the last byte of the scaled range.
2694       E.g. "0d-0d" is "0-511".
2695       Examples:
2696         "local_fs:0-32767:zero_mbrpt,zero_gpt,440-443:/tmp/template.iso"
2697         "imported_iso:45056d-47103d::"
2698
2699       -boot_image "any"|"isolinux"|"grub"
2700                   "discard"|"keep"|"patch"|"replay"|"show_status"|
2701                   bootspec|"next"
2702              Define  the equipment of the emerging filesystem with boot entry
2703              points.
2704              With systems which boot via BIOS or EFI this  is  a  set  of  El
2705              Torito  boot  images,  possibly  MBR  boot  code,  and  possibly
2706              partition tables of type MBR, GPT, or APM.  Such file  sets  get
2707              produced by boot loader systems like ISOLINUX or GRUB.
2708
2709              Each  -boot_image  command has two parameters: type and setting.
2710              More than one -boot_image command may  be  used  to  define  the
2711              handling of one or more boot images. Sequence matters.
2712              Types  isolinux and grub care for known peculiarities.  Type any
2713              makes no assumptions about the origin of the boot images.
2714
2715              When loading an ISO filesystem, system area and El  Torito  boot
2716              images  get  loaded,  too.  The default behavior is not to write
2717              loaded El Torito boot images and to write the loaded system area
2718              content without alterations.
2719              discard gives up the El Torito boot catalog and its boot images.
2720              regardless whether loaded from an ISO filesystem or  defined  by
2721              commands.   Any  BIOS  or  EFI related boot options get revoked.
2722              Nevertheless, loaded system area data stay  valid.  If  desired,
2723              they have to be erased by
2724               -boot_image any system_area=/dev/zero
2725              keep  keeps or copies El Torito boot images unaltered and writes
2726              a new catalog.
2727              patch applies patching to existing El Torito boot images if they
2728              seem to bear a boot info table.
2729              A  boot  info table needs to be patched when the boot image gets
2730              newly introduced into the ISO image or if an existing image gets
2731              relocated.   This  is  automatically  done if type "isolinux" or
2732              "grub" is given, but not with "any".
2733              If patching is enabled, then boot images from previous  sessions
2734              will  be checked whether they seem to bear a boot info table. If
2735              not, then they stay unpatched. This check is not infallible.  So
2736              if  you  do  know  that  the  images need no patching, use "any"
2737              "keep".    "grub"   "patch"   will   not   patch   EFI    images
2738              (platform_id=0xef).
2739              replay is a more modern version of "patch", which not only cares
2740              for  existing  El  Torito  boot  equipment  but  also  for   the
2741              recognizable boot provisions in the System Area. It discards any
2742              existing -boot_image setting and executes the commands  proposed
2743              by command -report_el_torito "cmd".
2744              This  action  will only succeed if the file objects mentioned in
2745              the  output  of  command  -report_el_torito  "cmd"   are   still
2746              available.  Do  not  remove  or  rename  boot  image files after
2747              -indev.
2748              Drop unknown El Torito:  -boot_image "any" "discard"
2749              Maintain recognizable stuff:  -boot_image "any" "replay"
2750              El Torito only for GRUB:  -boot_image "grub" "patch"
2751              El Torito only for ISOLINUX:  -boot_image "isolinux" "patch"
2752              show_status will print what  is  known  about  the  loaded  boot
2753              images and their designated fate.
2754
2755              A  bootspec  is  a  word  of  the form name=value. It is used to
2756              describe the parameters of a boot  feature.   The  names  "dir",
2757              "bin_path",  "efi_path" lead to El Torito bootable images.  Name
2758              "system_area" activates a  given  file  as  MBR  or  other  disk
2759              header.
2760              On all media types this is possible within the first session. In
2761              further sessions an existing boot image can get  replaced  by  a
2762              new  one,  but  depending  on  the  media type this may have few
2763              effect at boot time. See above.
2764              El Torito boot images have to be  added  to  the  ISO  image  by
2765              normal  means  (image  loading,  -map,  -add,  ...).  In case of
2766              ISOLINUX the files should reside either in ISO  image  directory
2767              /isolinux  or  in  /boot/isolinux .  In that case it suffices to
2768              use    as    bootspec    the     text     "dir=/isolinux"     or
2769              "dir=/boot/isolinux". E.g.:
2770               -boot_image isolinux dir=/boot/isolinux
2771              which bundles these individual settings:
2772               -boot_image isolinux bin_path=/boot/isolinux/isolinux.bin
2773               -boot_image isolinux cat_path=/boot/isolinux/boot.cat
2774               -boot_image isolinux load_size=2048
2775               -boot_image any boot_info_table=on
2776              An  El Torito boot catalog file gets inserted into the ISO image
2777              with address cat_path= with the first -boot_image  "any"  "next"
2778              or  at  -commit  time.   It  is subject to normal -overwrite and
2779              -reassure processing if there is already a file  with  the  same
2780              name.  The catalog lists the boot images and is read by the boot
2781              facility to choose one  of  the  boot  images.  But  it  is  not
2782              necessary  that it appears in the directory tree at all. One may
2783              hide it in all trees by cat_hidden=on.   Other  possible  values
2784              are  "iso_rr",  "joliet", "hfsplus", and the default "off".  The
2785              timestamps of the boot catalog  file  are  refreshed  at  commit
2786              time.   Command  -volume_date  "uuid"  can  be used to set their
2787              value.
2788              bin_path= depicts an El Torito boot image file, a binary program
2789              which  is  to be started by the hardware boot facility (e.g. the
2790              BIOS) at boot time.
2791              efi_path= depicts an El Torito boot image file that is ready for
2792              EFI  booting. This is normally a FAT filesystem image not larger
2793              than 65535 blocks of 512 bytes (= 32 MiB - 512).  Its  load_size
2794              is determined automatically, no boot info table gets written, no
2795              boot medium gets emulated, platform_id is 0xef.
2796              emul_type=  can   be   one   of   "no_emulation",   "hard_disk",
2797              "diskette".   It  controls  the  boot medium emulation code of a
2798              boot  image.   The  default  "no_emulation"  is   suitable   for
2799              ISOLINUX, GRUB, FreeBSD cdboot.
2800              load_size=  is a value which depends on the boot image.  Default
2801              is 2048 which matches the expectations of most boot images.  The
2802              special  value "full" means the full size of the boot image file
2803              rounded up to a multiple of 2048 bytes.  Maximum  is  33,552,384
2804              bytes.
2805              boot_info_table=on  causes  address patching to bytes 8 to 63 of
2806              the  boot  image  which   is   given   by   "any"   "bin_path=".
2807              "boot_info_table=off" disables this patching.
2808              grub2_boot_info=on  causes  address patching to byte 2548 of the
2809              boot image which is given by "any" "bin_path=".  The address  is
2810              written  as  64  bit  little-endian  number. It is the 2KB block
2811              address of the boot image content, multiplied  by  4,  and  then
2812              incremented by 5.  "grub2_boot_info=off" disables this patching.
2813              platform_id=  defines  by  a  hexadecimal  or decimal number the
2814              Platform ID of the boot image. "0x00" is 80x86  PC-BIOS,  "0x01"
2815              is PowerPC, "0x02" is Mac, "0xef" is EFI (decimal "239").
2816              id_string=text|56_hexdigits  defines  the  ID string of the boot
2817              catalog section where the boot image  will  be  listed.  If  the
2818              value consists of 56 characters [0-9A-Fa-f] then it is converted
2819              into 28 bytes, else  the  first  28  characters  become  the  ID
2820              string.   The  ID  string  of  the  first boot image becomes the
2821              overall catalog ID.  It  is  limited  to  24  characters.  Other
2822              id_strings become section IDs.
2823              sel_crit=hexdigits  defines  the  Selection Criteria of the boot
2824              image.  Up to 20  bytes  get  read  from  the  given  characters
2825              [0-9A-Fa-f].  They get attributed to the boot image entry in the
2826              catalog.
2827              next ends the definition of a boot image and starts a  new  one.
2828              Any  following  -bootimage  bootspecs will affect the new image.
2829              The first "next" discards loaded boot images and their catalog.
2830              system_area=disk_path copies at most 32768 bytes from the  given
2831              disk  file to the very start of the ISO image.  This System Area
2832              is reserved for system dependent  boot  software,  e.g.  an  MBR
2833              which can be used to boot from USB stick or hard disk.
2834              Other than an El Torito boot image, the file disk_path needs not
2835              to be added to the ISO image.
2836              -boot_image isolinux system_area= implies  "partition_table=on".
2837              In  this  case, the disk path should lead to one of the SYSLINUX
2838              files isohdp[fp]x*.bin or to a file which was derived  from  one
2839              of  those  files.   E.g. to the first 512 bytes from an ISOLINUX
2840              isohybrid ISO image.
2841              In this case, El Torito boot images (dir=, bin_path=, efi_path=)
2842              may  be  augmented  by  isolinux  partition_entry=gpt_basdat  or
2843              isolinux   partition_entry=gpt_hfsplus,    and    by    isolinux
2844              partition_entry=apm_hfsplus.    The  boot  image  will  then  be
2845              mentioned in GPT as Basic Data or GPT HFS+ partition, and in APM
2846              as  HFS+ partition.  The first three GPT partitions will also be
2847              marked by MBR partitions.
2848              In  multi-session  situations  the  existing  System   Area   is
2849              preserved  by  default.   In in this case, the special disk_path
2850              "." prevents reading of a  disk  file  but  nevertheless  causes
2851              adjustments in the loaded system area data. Such adjustments may
2852              get ordered by -boot_image commands.
2853              -boot_image any gpt_disk_guid=value controls whether an emerging
2854              GPT shall get a randomly generated disk GUID or whether the GUID
2855              is supplied by the  user.   Value  "random"  is  default.  Value
2856              "volume_date_uuid"  produces  a  low quality GUID from the value
2857              set by -volume_date "uuid".
2858              A string of 32 hex digits, or a RFC 4122 compliant  GUID  string
2859              may  be  used to set the disk GUID directly. UEFI prescribes the
2860              first  three  components  of  a  RFC  4122  GUID  string  to  be
2861              byte-swapped in the binary representation:
2862              E.g.  gpt_disk_guid=2303cd2a-73c7-424a-a298-25632da7f446  equals
2863              gpt_disk_guid=2acd0323c7734a42a29825632da7f446
2864              The partition GUIDs get generated by minimally varying the  disk
2865              GUID.
2866              -boot_image   any   part_like_isohybrid=on  enables  -boot_image
2867              isolinux  partition_entry=  even  if  no  -boot_image   isolinux
2868              system_area=  is given.  No MBR partition  of type 0xee emerges,
2869              even if GPT gets produced.  Gaps between GPT and APM  partitions
2870              will  not be filled by more partitions.  Appended partitions get
2871              mentioned in APM if other APM partitions emerge.
2872              -boot_image any iso_mbr_part_type=number sets the partition type
2873              of  the  MBR  partition  which  represents  the  ISO or at least
2874              protects it.  Number may be 0x00 to  0xff.  The  text  "default"
2875              re-enables  the default types of the various occasions to create
2876              an ISO MBR partition.
2877              This is without effect if no such  partition  emerges  by  other
2878              settings or if the partition type is prescribed mandatorily like
2879              0xee for GPT protective MBR or 0x96 for CHRP.
2880              grub2_mbr=disk_path   works   like   "any"   system_area=   with
2881              additional  patching  for  modern  GRUB  MBRs. The content start
2882              address of the first boot image is converted to a count  of  512
2883              byte blocks, and an offset of 4 is added.  The result is written
2884              as 64 bit little-endian number to byte address 0x1b0.
2885              This feature can be revoked either by grub2_mbr= with empty disk
2886              path, or by submitting a disk_path via system_area=.
2887              partition_table=on causes a simple partition table to be written
2888              into bytes 446 to 511 of the System Area.
2889              With type "isolinux" it shows a partition that begins at byte  0
2890              and it causes the LBA of the first boot image to be written into
2891              the  MBR.  For  the  first  session  this  works  only  if  also
2892              "system_area=" and "bin_path=" or "dir=" is given.
2893              With  types  "any"  and "grub" it shows a single partition which
2894              starts at byte 512 and ends where  the  ISO  image  ends.   This
2895              works with or without system_area= or boot image.
2896              Bootspecs  chrp_boot_part=,  prep_boot_part=, and efi_boot_part=
2897              overwrite this entry in the MBR partition table.
2898              If  types  "isolinux"  or  "grub"  are  set  to  "patch",   then
2899              "partition_table=on"  is  activated  without new boot image.  In
2900              this case the existing System Area gets checked whether it bears
2901              addresses   and   sizes   as   if   it  had  been  processed  by
2902              "partition_table=on". If so, then those parameters  get  updated
2903              when the new System Area is written.
2904              Special  "system_area=/dev/zero"  causes  32k of NUL-bytes.  Use
2905              this to discard an MBR which was loaded with the ISO image.
2906              appended_part_as=gpt marks partitions from -append_partition  in
2907              GPT  rather  than  in  MBR.  In this case the MBR shows a single
2908              partition of type 0xee which covers the whole output data.
2909              appended_part_as=mbr is the  default.  Appended  partitions  get
2910              marked in GPT only if GPT is produced because of other settings.
2911              If given  explicitly,  this  clears  setting  "gpt"  and  "apm".
2912              Nevertheless "apm" may be added to "mbr".
2913              appended_part_as=apm  marks partitions from -append_partition in
2914              APM additionally to "mbr" or "gpt".
2915              By default, appended partitions get marked in APM only if APM is
2916              produced    because    of    other    options    together   with
2917              part_like_isohybrid="on".
2918              chrp_boot_part=on causes a single partition in MBR which  covers
2919              the  whole  ISO  image and has type 0x96. This is not compatible
2920              with any other feature that produces MBR partition  entries.  It
2921              makes GPT unrecognizable.
2922              prep_boot_part=disk_path inserts the content of a data file into
2923              the image and marks it by an MBR partition  of  type  0x41.  The
2924              parts  of  the ISO image before and after this partition will be
2925              covered by further MBR partitions.  The data file is supposed to
2926              contain ELF executable code.
2927              efi_boot_part=disk_path  inserts the content of a data file into
2928              the  image  and  marks  it  by   a   GPT   partition.   If   not
2929              chrp_boot_part=on,  then  the  first  partition in MBR will have
2930              type 0xee to announce the presence of GPT.   The  data  file  is
2931              supposed to contain a FAT filesystem.
2932              Instead  of a disk_path, the word --efi-boot-image may be given.
2933              It exposes in GPT the content of the first El  Torito  EFI  boot
2934              image as EFI system partition. EFI boot images are introduced by
2935              bootspec efi_path=.  The affected EFI boot image cannot show  up
2936              in HFS+ because it is stored outside the HFS+ partition.
2937              partition_offset=2kb_block_adr  causes  a partition table with a
2938              single partition that begins at the given block address. This is
2939              counted  in  2048  byte  blocks,  not in 512 byte blocks. If the
2940              block address is non-zero  then  it  must  be  at  least  16.  A
2941              non-zero partition offset causes two superblocks to be generated
2942              and two sets of directory trees. The  image  is  then  mountable
2943              from its absolute start as well as from the partition start.
2944              The  offset  value  of  an  ISO  image gets preserved when a new
2945              session is added.  So the value defined here is only  in  effect
2946              if a new ISO image gets written.
2947              partition_hd_cyl=number  gives  the number of heads per cylinder
2948              for the partition table. 0 chooses a default value.  Maximum  is
2949              255.
2950              partition_sec_hd=number gives the number of sectors per head for
2951              the partition table. 0 chooses a default value. Maximum is 63.
2952              The product partition_sec_hd * partition_hd_cyl  *  512  is  the
2953              cylinder  size.  It should be divisible by 2048 in order to make
2954              exact  alignment  possible.   With   appended   partitions   and
2955              "appended_part_as=gpt"  there  is  no  limit  for  the number of
2956              cylinders. Else there may be at  most  1024  of  them.   If  the
2957              cylinder  size  is  too  small  to  stay  below  the limit, then
2958              appropriate  values  of   partition_hd_cyl   are   chosen   with
2959              partition_sec_hd   32  or  63.  If  the  image  is  larger  than
2960              8,422,686,720 bytes, then the cylinder size  constraints  cannot
2961              be fulfilled for MBR.
2962              partition_cyl_align=mode  controls  image  size  alignment to an
2963              integer number of cylinders. It is prescribed by isohybrid specs
2964              and  it  seems  to  please  program fdisk. Cylinder size must be
2965              divisible by  2048.   Images  larger  than  8,323,596,288  bytes
2966              cannot be aligned in MBR partition table.
2967              Mode  "auto"  is default. Alignment by padding happens only with
2968              "isolinux" "partition_table=on".
2969              Mode "on" causes alignment by padding with  "partition_table=on"
2970              for  any  type.   Mode  "all"  is  like  "on"  but  also pads up
2971              partitions from -append_partition to an aligned size.
2972              Mode "off" disables alignment for any type.
2973              mbr_force_bootable=mode   enforces   an   MBR   partition   with
2974              "bootable/active"  flag  if  options  like  partition_table=  or
2975              grub2_mbr= indicate production of a bootable MBR.  These options
2976              normally  cause  the flag to be set if there is an MBR partition
2977              of type other than 0xee or 0xef.  If no such  partition  exists,
2978              then  no  bootflag is set, unless mbr_force_bootable="on" forces
2979              creation of a dummy partition of type 0x00 which covers only the
2980              first block of the ISO image.
2981              If  no bootable MBR is indicated and a partition gets created by
2982              -append_partition,   then   mbr_force_bootable="on"   causes   a
2983              bootflag like it would do with a bootable MBR.
2984              mips_path=iso_rr_path  declares a data file in the image to be a
2985              MIPS Big Endian boot file and causes production of  a  MIPS  Big
2986              Endian Volume Header. This is mutually exclusive with production
2987              of other boot blocks like MBR.  It will overwrite the first  512
2988              bytes of any data provided by system_area=.  Up to 15 boot files
2989              can be declared by mips_path=.
2990              mipsel_path=iso_rr_path declares a data file in the image to  be
2991              the  MIPS  Little  Endian  boot file. This is mutually exclusive
2992              with other boot blocks.  It will overwrite the first  512  bytes
2993              of  any  data provided by system_area=.  Only a single boot file
2994              can be declared by mipsel_path=.
2995              sparc_label=text causes the production of a SUN Disk Label  with
2996              the given text as ASCII label. Partitions 2 to 8 may be occupied
2997              by appended images.  Partition 1 will always be the  ISO  image.
2998              See  command -append_partition.  The first 512 bytes of any data
2999              provided by system_area= will be overwritten.
3000              grub2_sparc_core=iso_rr_path causes the content address and size
3001              of  the  given file to be written after the SUN Disk Label. Both
3002              numbers are counted in bytes. The address is written as  64  bit
3003              big-endian  number  to byte 0x228. The size is written as 32 bit
3004              big-endian number to byte 0x230.
3005              hppa_cmdline=text sets the PALO command line for  HP-PA.  Up  to
3006              1023 characters are permitted by default. With hppa_hdrversion=4
3007              the limit is 127.
3008              Note that the first five hppa_ bootspecs are mandatory,  if  any
3009              of the hppa_ bootspecs is used. Only hppa_hdrversion= is allowed
3010              to be missing.
3011              hppa_bootloader=iso_rr_path designates the given path  as  HP-PA
3012              bootloader file.
3013              hppa_kernel_32=iso_rr_path designates the given path as HP-PA 32
3014              bit kernel file.
3015              hppa_kernel_64=iso_rr_path designates the given path as HP-PA 64
3016              bit kernel file.
3017              hppa_ramdisk=iso_rr_path  designates the given path as HP-PA RAM
3018              disk file.
3019              hppa_hdrversion=number chooses between  PALO  header  version  5
3020              (default)  and version 4.  For the appropriate value see in PALO
3021              source code: PALOHDRVERSION.
3022              alpha_boot=iso_rr_path declares a data file in the image  to  be
3023              the   DEC  Alpha  SRM  Secondary  Bootstrap  Loader  and  causes
3024              production of a  boot  sector  which  points  to  it.   This  is
3025              mutually  exclusive  with  production  of other boot blocks like
3026              MBR.
3027              mips_discard, sparc_discard, hppa_discard, alpha_discard  revoke
3028              any boot file declarations made for mips/mipsel, sparc, hppa, or
3029              alpha, respectively.  This removes  the  ban  on  production  of
3030              other boot blocks.
3031              hfsplus_serial=hexstring  sets  a string of 16 digits "0" to "9"
3032              and letters "a" to "f", which will  be  used  as  unique  serial
3033              number of an emerging HFS+ filesystem.
3034              hfsplus_block_size=number  sets  the allocation block size to be
3035              used when producing HFS+ filesystems. Permissible are 512, 2048,
3036              or 0.  The latter lets the program decide.
3037              apm_block_size=number  sets  the  block  size  to  be  used when
3038              describing partitions by an Apple Partition Map. Permissible are
3039              512, 2048, or 0. The latter lets the program decide.
3040              Note that size 512 is not compatible with production of GPT, and
3041              that size 2048 will not be mountable  -t  hfsplus  at  least  by
3042              older Linux kernels.
3043
3044       -append_partition partition_number type_code disk_path
3045              Cause  a  prepared  filesystem  image  to be appended to the ISO
3046              image and to be described by a partition table entry in  a  boot
3047              block  at  the  start  of  the emerging ISO image. The partition
3048              entry will bear the size of the submitted file rounded up to the
3049              next  multiple  of  2048  bytes  or  to the next multiple of the
3050              cylinder size.
3051              Beware of subsequent multi-session runs. The appended  partition
3052              will get overwritten.
3053              Partitions may be appended with boot block type MBR and with SUN
3054              Disk Label.
3055              With MBR:
3056              partition_number may be 1 to 4. Number 1 will put the whole  ISO
3057              image  into  the unclaimed space before partition 1. So together
3058              with most xorriso MBR features,  number  2  would  be  the  most
3059              natural choice.
3060              The type_code may be "FAT12", "FAT16", "Linux", or a hexadecimal
3061              number between 0x00 and 0xff. Not all those numbers  will  yield
3062              usable  results.  For  a  list  of codes search the Internet for
3063              "Partition Types" or run fdisk command "L".
3064              If some other command causes the production  of  GPT,  then  the
3065              appended partitions will be mentioned there too.
3066              The  disk_path  must  provide the necessary data bytes at commit
3067              time.  An empty disk_path disables this feature  for  the  given
3068              partition number.
3069              With SUN Disk Label (selected by -boot_image any sparc_label=):
3070              partition_number  may be 2 to 8. Number 1 will always be the ISO
3071              image.  Partition start addresses are aligned to  320  KiB.  The
3072              type_code does not matter. Submit 0x0.
3073              Partition  image  name "." causes the partition to become a copy
3074              of the next lower valid one.
3075
3076       Jigdo Template Extraction:
3077
3078       From man genisoimage: "Jigdo is a tool to help in the  distribution  of
3079       large  files  like CD and DVD images; see http://atterer.net/jigdo/ for
3080       more details. Debian CDs and DVD ISO images are published on the web in
3081       jigdo format to allow end users to download them more efficiently."
3082       xorriso  can  produce  a  .jigdo  and  a .template file together with a
3083       single-session ISO image.   The  .jigdo  file  contains  checksums  and
3084       symbolic  file  addresses.   The .template file contains the compressed
3085       ISO image with reference tags instead  of  the  content  bytes  of  the
3086       listed files.
3087       Input  for  this process are the normal arguments for a xorriso session
3088       on a blank -outdev, and a .md5 file which lists those data files  which
3089       may  be  listed  in  the  .jigdo  file and externally referenced in the
3090       .template file.  Each designated file is represented in the  .md5  file
3091       by a single text line:
3092       MD5  as 32 hex digits, 2 blanks, size as 12 decimal digits or blanks, 2
3093       blanks, symbolic file address
3094       The file address in an .md5 line has to bear the same basename  as  the
3095       disk_path  of  the file which it shall match. The directory path of the
3096       file address is decisive for To=From mapping, not for file recognition.
3097       After  To=From  mapping,  the file address gets written into the .jigdo
3098       file. Jigdo restore tools will  convert  these  addresses  into  really
3099       reachable data source addresses from which they can read.
3100       If  the list of jigdo parameters is not empty, then xorriso will refuse
3101       to write to non-blank targets, it will disable multi-session emulation,
3102       and padding will be counted as part of the ISO image.
3103
3104       -jigdo parameter_name value
3105              Clear   Jigdo  Template  Extraction  parameter  list  or  add  a
3106              parameter to that list.  The alias names are  the  corresponding
3107              genisoimage  options.  They  are  accepted as parameter names as
3108              well.  Especially  they  are  recognized  by  the  -as   mkisofs
3109              emulation command.
3110              Parameter  clear  with  any  value  empties  the whole list.  No
3111              .jigdo and .template file will be produced.
3112              template_path sets the disk_path for the .template file with the
3113              holed and compressed ISO image copy.
3114              Alias: -jigdo-template
3115              jigdo_path  sets  the  disk_path  for  the  .jigdo file with the
3116              checksums and  download  addresses  for  filling  the  holes  in
3117              .template.
3118              Alias: -jigdo-jigdo
3119              md5_path sets the disk_path where to find the .md5 input file.
3120              Alias: -md5-list
3121              min_size  sets  the minimum size for a data file to be listed in
3122              the .jigdo file and being a hole in the .template file.
3123              Alias: -jigdo-min-file-size
3124              exclude  adds  a  regular  expression  pattern  which  will  get
3125              compared  with  the absolute disk_path of any data file. A match
3126              causes the file to stay in .template in any case.
3127              Alias: -jigdo-exclude
3128              demand_md5 adds a regular  expression  pattern  which  will  get
3129              compared  with  the absolute disk_path of any data file that was
3130              not found in the .md5 list. A match causes a MISHAP event.
3131              Alias: -jigdo-force-md5
3132              mapping adds a string pair of the form To=From to the  parameter
3133              list.  If a data file gets listed in the .jigdo file, then it is
3134              referred by the file address from its line  in  the  .md5  file.
3135              This  file  address gets checked whether it begins with the From
3136              string. If so, then this string  will  be  replaced  by  the  To
3137              string and a ':' character, before it goes into the .jigdo file.
3138              The From string should end by a '/' character.
3139              Alias: -jigdo-map
3140              compression chooses one of "bzip2" or "gzip" for the compression
3141              of the template file. The jigdo file is put out uncompressed.
3142              Alias: -jigdo-template-compress
3143              checksum_iso  chooses  one  or  more of "md5", "sha1", "sha256",
3144              "sha512" for the auxiliary "# Image Hex" checksums in the  jigdo
3145              file.  The  value  may  e.g.  look like "md5,sha1,sha512". Value
3146              "all" chooses all available algorithms.   Note  that  MD5  stays
3147              always enabled.
3148              Alias: -checksum_algorithm_iso
3149              checksum_template is like checksum_iso but for "# Template Hex".
3150              Alias: -checksum_algorithm_template
3151
3152       Character sets:
3153
3154       File names are strings of non-zero bytes with 8 bit each. Unfortunately
3155       the  same  byte  string  may  appear  as  different  peculiar  national
3156       characters on differently nationalized terminals.  The meanings of byte
3157       codes are defined in character sets which  have  names.  Shell  command
3158       iconv -l lists them.
3159       The  file  names  on  hard  disk are assumed to be encoded by the local
3160       character set which is also used for the communication with  the  user.
3161       Byte codes 32 to 126 of the local character set must match the US-ASCII
3162       characters of the same code. ISO-8859 and UTF-8 fulfill this demand.
3163       By default, xorriso uses the character set as  told  by  shell  command
3164       "locale" with argument "charmap". This may be influenced by environment
3165       variables LC_ALL, LC_CTYPE, or LANG and should match  the  expectations
3166       of  the  terminal.  In some situations it may be necessary to set it by
3167       command -local_charset.
3168       Local character  sets  should  not  matter  as  long  as  only  english
3169       alphanumeric  characters  are  used  for  file  names or as long as all
3170       writers and readers of the media use  the  same  local  character  set.
3171       Outside  these  constraints  it may be necessary to let xorriso convert
3172       byte codes from and to other character sets.
3173       The Rock Ridge file names in ISO filesystems are assumed to be  encoded
3174       by  the  input  character  set.   The  Rock  Ridge file names which get
3175       written with ISO filesystems will be encoded by  the  output  character
3176       set.
3177       The  sets  can  be  defined  independently  by commands -in_charset and
3178       -out_charset. Normally one will have both identical,  if  ever.   Other
3179       than the local character set, these two character sets may deviate from
3180       US-ASCII.
3181       The output character sets for Joliet and HFS+  are  not  influenced  by
3182       these  commands. Joliet uses output character set UCS-2 or UTF-16. HFS+
3183       uses UTF-16.
3184       The default output charset is the local character set of  the  terminal
3185       where  xorriso  runs. So by default no conversion happens between local
3186       filesystem names and emerging  Rock  Ridge  names  in  the  image.  The
3187       situation  stays  ambiguous and the reader has to riddle what character
3188       set was used.
3189       By command -auto_charset it is possible to attribute the output charset
3190       name  to  the  image. This makes the situation unambiguous. But if your
3191       terminal character set does not match the character set  of  the  local
3192       file  names,  then  this  attribute  can become plainly wrong and cause
3193       problems at read time.  To  prevent  this  it  is  necessary  to  check
3194       whether  the  terminal  properly displays all intended filenames. Check
3195       especially the exotic national characters.
3196       To enforce recording of a particular character  set  name  without  any
3197       conversion at image generation time, set -charset and -local_charset to
3198       the desired name, and enable -backslash_codes to avoid  evil  character
3199       display on your terminal.
3200
3201       -charset character_set_name
3202              Set  the  character  set  from  which to convert file names when
3203              loading an image and to which to convert when writing an image.
3204
3205       -local_charset character_set_name
3206              Override the system assumption of the local character set  name.
3207              If   this   appears   necessary,  one  should  consider  to  set
3208              -backslash_codes to "on" in  order  to  avoid  dangerous  binary
3209              codes being sent to the terminal.
3210
3211       Exception processing:
3212
3213       Since  the  tasks  of  xorriso  are  manifold  and  prone  to  external
3214       influence, there may arise the need for xorriso to  report  and  handle
3215       problem events.
3216       Those  events  get  classified  when  they  are  detected by one of the
3217       software modules and forwarded  to  reporting  and  evaluation  modules
3218       which decide about reactions. Event classes are sorted by severity:
3219       "NEVER" The upper end of the severity spectrum.
3220       "ABORT" The program is being aborted and on its way to end.
3221       "FATAL"  The  main  purpose  of the run failed or an important resource
3222       failed unexpectedly.
3223       "FAILURE" An important part of the job could not be performed.
3224       "MISHAP" A FAILURE which can be tolerated during ISO image generation.
3225       "SORRY" A less important part of the job could not be performed.
3226       "WARNING" A situation is suspicious of being not intended by the user.
3227       "HINT" A proposal to the user how to achieve better results.
3228       "NOTE" A harmless information about noteworthy circumstances.
3229       "UPDATE" A pacifier message during long running operations.
3230       "DEBUG" A message which would only interest the program developers.
3231       "ALL" The lower end of the severity spectrum.
3232
3233       -abort_on severity
3234              Set the severity threshold for events to abort the program.
3235              Useful: "NEVER", "ABORT", "FATAL", "FAILURE" , "MISHAP", "SORRY"
3236              It may become necessary to abort the program anyway, despite the
3237              setting  by  this  command. Expect not many "ABORT" events to be
3238              ignorable.
3239              A special property of this command is that it  works  preemptive
3240              if  given  as  program  start argument. I.e. the first -abort_on
3241              setting among the start arguments is in effect already when  the
3242              first  operations  of  xorriso begin. Only "-abort_on" with dash
3243              "-" is recognized that way.
3244
3245       -return_with severity exit_value
3246              Set the threshold and exit_value to be returned at  program  end
3247              if  no  abort  has  happened.  This is to allow xorriso to go on
3248              after problems but to get a failure indicating exit  value  from
3249              the  program,  nevertheless.   Useful  is a value lower than the
3250              -abort_on threshold, down to "WARNING".
3251              exit_value may be either 0 (indicating success to the starter of
3252              the  program)  or  a  number  between  32  and  63.  Some  other
3253              exit_values are used by xorriso  if  it  decides  to  abort  the
3254              program run:
3255              1=abort due to external signal
3256              2=no program arguments given
3257              3=creation of xorriso main object failed
3258              4=failure to start libburnia-project.org libraries
3259              5=program abort during argument processing
3260              6=program abort during dialog processing
3261
3262       -report_about severity
3263              Set the threshold for events to be reported.
3264              Useful:   "SORRY", "WARNING", "HINT", "NOTE", "UPDATE", "DEBUG",
3265              "ALL"
3266              Regardless what is set by  -report_about,  messages  get  always
3267              reported if they reach the severity threshold of -abort_on .
3268              Event messages are sent to the info channel "I" which is usually
3269              stderr but may  be  influenced  by  command  -pkt_output.   Info
3270              messages  which  belong  to  no  event  get  attributed severity
3271              "NOTE".
3272              A  special  property  of  this  command  is   that   the   first
3273              -report_about  setting  among  the  start arguments is in effect
3274              already  when  the  first  operations  of  xorriso  begin.  Only
3275              "-report_about" with dash "-" is recognized that way.
3276
3277       -signal_handling mode
3278              Control  the  installation of a signal handler which shall react
3279              on external signals (e.g.  from  program  "kill"  or  from  keys
3280              Ctrl+C) or on signals caused by severe program errors.
3281              Mode  "on" is the default. It uses the signal handler of libburn
3282              which produces ugly messages but puts much effort  in  releasing
3283              optical drives before xorriso ends.
3284              Mode  "off"  as first -signal_handling among the start arguments
3285              prevents all own signal precautions of xorriso. Inherited signal
3286              handler settings stay as they are.
3287              It works like "sig_dfl" if given after other signal handling was
3288              already established at program start.
3289              Mode "sig_dfl" uses the  system  provided  default  handling  of
3290              signals,  which  is  normally  a sudden abort of the program. To
3291              prevent  stuck  drives,  the  libburn  handler  is  used  during
3292              burning, blanking, and formatting on MMC drives.
3293              Mode "sig_ign" tries to ignore as many signal types as possible.
3294              This  imposes  the  risk  that  xorriso  refuses  to  end  until
3295              externally  kill -9 if performed.  kill -9 then imposes the risk
3296              that the drive is left in unusable state and needs  poweroff  to
3297              be  reset.  So during burning, blanking, and formatting wait for
3298              at least their normal run time before killing externally.
3299              A  special  property  of  this  command  is   that   the   first
3300              -signal_handling  setting among the start arguments is in effect
3301              already  when  the  first  operations  of  xorriso  begin.  Only
3302              "-signal_handling" with dash "-" is recognized that way.
3303
3304       -error_behavior occasion behavior
3305              Control  the  program  behavior at problem event occasions.  For
3306              now this applies to occasions  "image_loading"  which  is  given
3307              while  an  image  tree  is  read  from  the input device, and to
3308              "file_extraction" which is  given  with  osirrox  commands  like
3309              -extract.
3310              With "image_loading" there are three behaviors available:
3311              "best_effort"  goes  on  with reading after events with severity
3312              below FAILURE if the threshold of command -abort_on allows this.
3313              "failure" aborts image tree reading on first event of  at  least
3314              SORRY.  It issues an own FAILURE event.  This is the default.
3315              "fatal" acts like "failure" but issues the own event as FATAL.
3316              With occasion "file_extraction" there are three behaviors:
3317              "keep"  maintains  incompletely extracted files on disk. This is
3318              the default.
3319              "delete" removes files which encountered errors  during  content
3320              extraction.
3321              "best_effort" starts a revovery attempt by means of -extract_cut
3322              if the file content stems from the loaded ISO image and  is  not
3323              filtered.
3324
3325       Dialog mode control:
3326
3327       -dialog "on"|"off"|"single_line"
3328              Enable  or  disable  to  enter  dialog  mode  after  all program
3329              arguments  are  processed.   In  dialog  mode  input  lines  get
3330              prompted via readline or from stdin.
3331              If  no  -abort_on  severity  was  set  when  dialog starts, then
3332              "NEVER" is set to avoid abort in most cases of  wrong  input  or
3333              other  problems.  Before dialog begins, the default is "FAILURE"
3334              which e.g. aborts on unknown commands.
3335              Mode "on" supports input of newline characters within  quotation
3336              marks  and  line  continuation  by  trailing  backslash  outside
3337              quotation marks.  Mode "single_line" does not.
3338
3339       -page length width
3340              Describe terminal to the text pager. See also  above,  paragraph
3341              Result pager.
3342              If parameter length is nonzero then the user gets prompted after
3343              that number of terminal lines. Zero length disables paging.
3344              Parameter width is the number of characters per  terminal  line.
3345              It  is  used  to  compute the number of terminal lines which get
3346              occupied by an output line.  A usual terminal width is 80.
3347
3348       -use_readline "on"|"off"
3349              If "on" then use readline for dialog. Else use plain stdin.
3350              See also above, paragraph Dialog, Readline, Result pager.
3351
3352       -reassure "on"|"tree"|"off"
3353              If "on" then ask the user for "y" or "n":
3354              before deleting or overwriting any file in the ISO image,
3355              before overwriting any disk file during restore operations,
3356              before rolling back pending image changes,
3357              before committing image changes to media,
3358              before changing the input drive,
3359              before blanking or formatting media,
3360              before ending the program.
3361              With setting "tree" the reassuring prompt  will  appear  for  an
3362              eventual  directory only once and not for each file in its whole
3363              subtree.
3364              Setting "off" silently kills any kind of image file  object  and
3365              performs above irrevocable actions.
3366              To  really produce user prompts, command -dialog needs to be set
3367              to "on".  Note that the prompt does  not  appear  in  situations
3368              where file removal is forbidden by command -overwrite. -reassure
3369              only imposes an  additional  curb  for  removing  existing  file
3370              objects.
3371              Be  aware  that  file  objects  get  deleted  from the ISO image
3372              immediately after  confirmation.  They  are  gone  even  if  the
3373              running  command  gets  aborted  and  its  desired  effect  gets
3374              revoked. In case of severe mess-up, consider to use -rollback to
3375              revoke the whole session.
3376
3377       Drive and media related inquiry actions:
3378
3379       -devices
3380              Show  list  of  available MMC drives with the addresses of their
3381              libburn standard device files.
3382              This is only possible when no ISO  image  changes  are  pending.
3383              After  this  command was executed, there is no drive current and
3384              no image loaded.
3385              In order to be visible, a device  has  to  offer  rw-permissions
3386              with its libburn standard device file. Thus it might be only the
3387              superuser who is able to see all drives.
3388              Drives which are occupied by other processes get not shown.
3389
3390       -device_links
3391              Like -devices, but  presenting  the  drives  with  addresses  of
3392              symbolic links which point to the actual device files.
3393              Modern  GNU/Linux  systems may shuffle drive addresses from boot
3394              to boot.  The udev daemon is  supposed  to  create  links  which
3395              always  point  to  the  same  drive,  regardless  of  its system
3396              address.  The command -device_links shows the addresses of  such
3397              links  if they begin by "/dev/dvd" or "/dev/cd".  Precedence is:
3398              "dvdrw", "cdrw", "dvd", "cdrom", "cd".
3399
3400       -toc
3401              Show media specific tables  of  content.  This  is  the  session
3402              history of the medium, not the ISO image directory tree.
3403              In case of overwriteable media holding a valid ISO image, it may
3404              happen that only a single session gets shown. But if  the  first
3405              session on the overwriteable media was written by xorriso then a
3406              complete session history can be emulated.
3407              A drive which is incapable of writing  may  show  any  media  as
3408              CD-ROM  or DVD-ROM with only one or two sessions on it. The last
3409              of these sessions is supposed to be the most recent real session
3410              then.
3411              Some  read-only  drives and media show no usable session history
3412              at all.  Command -rom_toc_scan might help.
3413              If input device and output device are both acquired and not  the
3414              same, then both tables-of-content get shown.
3415
3416       -toc_of "in"|"out"|"all"[":short"]
3417              Like   command   -toc  but  explicitly  choosing  which  drive's
3418              table-of-content to show. "in" shows -indev or -dev, "out" shows
3419              -outdev or -dev, "all" shows the same as -toc.
3420              If  ":short" is appended to the drive choosing word, then only a
3421              short summary of drive state and medium content is printed.
3422              As further difference  to  -toc,  this  command  does  not  emit
3423              FAILURE events if the desired drive is not acquired.
3424
3425       -mount_cmd drive entity id path
3426              Emit  an  appropriate  command line for mounting the ISO session
3427              indicated by drive, entity and id.  The result will be different
3428              on GNU/Linux and on FreeBSD or NetBSD.
3429              drive  can  be  "indev" or "outdev" to indicate already acquired
3430              drives, or it can be the path  of  a  not  yet  acquired  drive.
3431              Prefix "stdio:" for non-MMC drives is not mandatory.
3432              For  entity  and id, see also command -load. They must be either
3433              "sbsector" with the superblock sector address as id, or  "track"
3434              with  a  track number as id, or "session" with a session number,
3435              or "volid" with a search pattern for the volume  id,  or  "auto"
3436              with  which  any  text  as id mounts the first track of the last
3437              session.
3438              path will be used as mount point and must  already  exist  as  a
3439              directory on disk.
3440              The  command  gets  printed  to  the result channel. See command
3441              -mount for direct execution of this command.
3442
3443       -mount_opts option[:option...]
3444              Set options which influence  -mount  and  -mount_cmd.  Currently
3445              there  is  only  option  "exclusive"  which  is  default and its
3446              counterpart "shared". The latter causes xorriso not to  give  up
3447              the  affected  drive  with command -mount.  On GNU/Linux it adds
3448              mount  option  "loop"  which  may  enable  mounting  of  several
3449              sessions  of  the same block device at the same time. One should
3450              not write to a mounted optical medium, of course. Take  care  to
3451              umount all sessions before ejecting.
3452
3453       -session_string drive entity id format
3454              Print to the result channel a text which gets composed according
3455              to format and the parameters of the addressed session.
3456              Formats "linux:"path or "freebsd:"path  produce  the  output  of
3457              -mount_cmd for the given operating systems.
3458              In  other  texts xorriso will substitute the following parameter
3459              names.  An optional prefix "string:" will be removed.
3460              "%device%" will be substituted by the mountable device  path  of
3461              the drive address.
3462              "%sbsector%" will be substituted by the session start sector.
3463              "%track%",  "%session%",  "%volid%" will be substituted by track
3464              number, session number, or volume id of the depicted session.
3465
3466       -print_size
3467              Print the foreseeable consumption of 2048 byte  blocks  by  next
3468              -commit.  This  can  last a while as a -commit gets prepared and
3469              only in last moment is revoked  by  this  command.   The  result
3470              depends  on  several  settings  and  also  on the kind of output
3471              device.  If no -jidgo  options  are  set  and  not  command  -as
3472              "mkisofs"  was  used,  then  -padding (300 kB by default) is not
3473              counted as part of the image size.
3474              If an El Torito  boot  image  file  is  already  depicted,  then
3475              command  -print_size  automatically  executes  -boot_image "any"
3476              "next".  This means that  the  properties  of  that  boot  image
3477              cannot be edited by subsequent commands.
3478
3479       -tell_media_space
3480              Print  available  space  on the output medium and the free space
3481              after  subtracting  already  foreseeable  consumption  by   next
3482              -commit.
3483              Note  that  the  title  of  the  prediction  "After commit :" is
3484              misleading.  It is rather the space that may still be filled  in
3485              this  session  without  making the next -commit fail from medium
3486              overflow.
3487              The free space after  the  next  -commit  might  be  smaller  by
3488              several  MB.   This  depends  on medium type, number of recorded
3489              sessions, and drive habits.
3490
3491       -pvd_info
3492              Print various ID strings and timestamps which can  be  found  in
3493              loaded  ISO  images.  Some of the IDs may be changed by commands
3494              like -volid or -publisher.  For these IDs -pvd_info reports what
3495              would  be written with the next -commit.  The timestamps get not
3496              automatically propagated from  loaded  image  to  newly  written
3497              image.   The   ones  for  new  images  may  be  set  by  command
3498              -volume_date.  See there  for  the  meaning  of  the  particular
3499              timestamps.
3500
3501       -report_el_torito mode
3502              With  mode  plain  print a report about the information found in
3503              the El Torito boot catalog of the loaded ISO image.
3504              With mode help print a text which explains the  meaning  of  the
3505              lines put out by "plain".
3506              Mode cmd tries to print the xorriso commands which are necessary
3507              to produce the found boot equipment: disk identifiers, El Torito
3508              boot images, and System Area. Disk identifiers are strings which
3509              the  booting  operating  system  might  use  to  find  the   ISO
3510              filesystem  from  where  it comes. Currently known is the use of
3511              volume id and modification date.
3512              The intended use case  is  modification  of  the  filesystem  by
3513              having  -indev  and  -outdev  pointing  to  different  images or
3514              drives.   The  result  might  be  insufficient,  if  the   found
3515              equipment  cannot  be  produced by xorriso. Various SORRY events
3516              may arise in this case, but it is not  guaranteed  that  xorriso
3517              recognizes all its insufficiencies.
3518              Mode  as_mkisofs tries to print the xorriso -as mkisofs options,
3519              which  are  necessary  to  produce  the  found  equipment.   The
3520              intended use case is to use the mounted filesystem as input tree
3521              together with the printed options.
3522
3523       -report_system_area mode
3524              With mode plain print a report about the  information  found  in
3525              the  System Area of the loaded ISO image. The report consists of
3526              zero to many lines with a header text, a colon, and  information
3527              text.
3528              With  mode  help  print a text which explains the meaning of the
3529              lines put out by "plain". You probably will  have  to  look  for
3530              more  documentation  which explains the technical details of the
3531              mentioned boot facilities.
3532              Modes   cmd   and   as_mkisofs   work    like    with    command
3533              -report_el_torito. See above.
3534              With  mode  gpt_disk_guid  print the GPT disk GUID of the loaded
3535              ISO in RFC 4122  text  format  to  result  channel.  It  is  not
3536              considered  an  error if no GPT is present. In this case nothing
3537              is printed to result channel.
3538              With mode gpt_crc_of:disk_path read up to 32 KiB from  the  disk
3539              file  with  the  path  given  after  the  colon. Compute the GPT
3540              compliant CRC number and print it to  the  result  channel.  The
3541              number  is  shown  like "0x690fd979".  The special disk_path "-"
3542              causes reading from standard input.
3543              With mode make_guid print a pseudo-random GUID in RFC 4122  text
3544              format to result channel.
3545
3546       Navigation in ISO image and disk filesystem:
3547
3548       -cd iso_rr_path
3549              Change  the current working directory in the ISO image.  This is
3550              prepended to iso_rr_paths which do not begin with '/'.
3551              It is possible to set the working directory to a path which does
3552              not exist yet in the ISO image. The necessary parent directories
3553              will be created when the first file object is inserted into that
3554              virtual  directory.   Use  -mkdir  if  you  want  to enforce the
3555              existence of the directory already at first insertion.
3556
3557       -cdx disk_path
3558              Change the current working directory in  the  local  filesystem.
3559              To be prepended to disk_paths which do not begin with '/'.
3560
3561       -pwd
3562              Tell the current working directory in the ISO image.
3563
3564       -pwdx
3565              Tell the current working directory in the local filesystem.
3566
3567       -ls iso_rr_pattern [***]
3568              List  files  in  the  ISO image which match shell patterns (i.e.
3569              with wildcards '*' '?' '[a-z]').  If a pattern  does  not  begin
3570              with '/' then it is compared with addresses relative to -cd.
3571              Directories  are  listed  by their content rather than as single
3572              file item.
3573              Pattern expansion may be disabled by command -iso_rr_pattern.
3574
3575       -lsd iso_rr_pattern [***]
3576              Like -ls but listing directories as themselves and not by  their
3577              content.  This resembles shell command ls -d.
3578
3579       -lsl iso_rr_pattern [***]
3580              Like  -ls but also list some of the file attributes.  The output
3581              format resembles shell command ls -ln.
3582              File type 'e' indicates the El Torito boot catalog.
3583              If the file has non-trivial ACL, then a '+' is appended  to  the
3584              permission  info.  If the file is hidden, then 'I' for "iso_rr",
3585              'J' for "joliet", 'A' for "hfsplus",  'H'  for  multiple  hiding
3586              gets appended.  Together with ACL it is 'i', 'j', 'a', 'h'.
3587
3588       -lsdl iso_rr_pattern [***]
3589              Like -lsd but also list some of the file attributes.  The output
3590              format resembles shell command ls -dln.
3591
3592       -lsx disk_pattern [***]
3593              List files in the local filesystem which match  shell  patterns.
3594              Patterns which do not begin with '/' are used relative to -cdx.
3595              Directories  are  listed  by their content rather than as single
3596              file item.
3597              Pattern expansion may be disabled by command -disk_pattern.
3598
3599       -lsdx disk_pattern [***]
3600              Like -lsx but listing directories as themselves and not by their
3601              content.  This resembles shell command ls -d.
3602
3603       -lslx disk_pattern [***]
3604              Like  -lsx but also listing some of the file attributes.  Output
3605              format resembles shell command ls -ln.
3606
3607       -lsdlx disk_pattern [***]
3608              Like -lsdx but also listing some of the file attributes.  Output
3609              format resembles shell command ls -dln.
3610
3611       -getfacl iso_rr_pattern [***]
3612              Print the access permissions of the given files in the ISO image
3613              using the format of shell command getfacl. If a file has no  ACL
3614              then  it  gets  fabricated  from the -chmod settings. A file may
3615              have a real ACL if it was introduced into the  ISO  image  while
3616              command -acl was set to "on".
3617
3618       -getfacl_r iso_rr_pattern [***]
3619              Like  -gefacl  but  listing  recursively  the  whole  file trees
3620              underneath eventual directories.
3621
3622       -getfattr iso_rr_pattern [***]
3623              Print the xattr of the given files in the ISO image.  If a  file
3624              has no such xattr then noting is printed for it.
3625
3626       -getfattr_r iso_rr_pattern [***]
3627              Like  -gefattr  but  listing  recursively  the  whole file trees
3628              underneath eventual directories.
3629
3630       -du iso_rr_pattern [***]
3631              Recursively list size of directories and files in the ISO  image
3632              which  match  one  of the patterns.  similar to shell command du
3633              -k.
3634
3635       -dus iso_rr_pattern [***]
3636              List size of directories and files in the ISO image which  match
3637              one of the patterns.  Similar to shell command du -sk.
3638
3639       -dux disk_pattern [***]
3640              Recursively  list  size  of  directories  and files in the local
3641              filesystem which match one of the  patterns.  Similar  to  shell
3642              command du -k.
3643
3644       -dusx disk_pattern [***]
3645              List size of directories and files in the local filesystem which
3646              match one of the patterns.  Similar to shell command du -sk.
3647
3648       -findx disk_path [-name pattern] [-type t] [-exec action [params]] --
3649              Like -find but operating on local filesystem and not on the  ISO
3650              image.  This is subject to the settings of -follow.
3651              -findx  accepts the same -type parameters as -find. Additionally
3652              it  recognizes  type  "mountpoint"  (or   "m")   which   matches
3653              subdirectories  which  reside  on  a different device than their
3654              parent. It never matches the disk_path given  as  start  address
3655              for -findx.
3656              -findx  accepts  the -exec actions as does -find. But except the
3657              following few actions it will always perform action "echo".
3658              in_iso reports the path if its counterpart  exists  in  the  ISO
3659              image.   For  this  the  disk_path  of  the  -findx command gets
3660              replaced by the iso_rr_path given as parameter.
3661              E.g.: -findx /home/thomas -exec in_iso /thomas_on_cd --
3662              not_in_iso reports the path if its counterpart does not exist in
3663              the  ISO  image.  The  report format is the same as with command
3664              -compare.
3665              add_missing iso_rr_path_start adds the counterpart  if  it  does
3666              not  yet  exist  in the ISO image and marks it for "rm_merge" as
3667              non-removable.
3668              E.g.: -findx /home/thomas -exec add_missing /thomas_on_cd --
3669              is_full_in_iso reports if  the  counterpart  in  the  ISO  image
3670              contains  files.  To  be  used  with  -type  "m" to report mount
3671              points.
3672              empty_iso_dir deletes all files from the counterpart in the  ISO
3673              image. To be used with -type "m" to truncate mount points.
3674              estimate_size  prints  a  lower  and  an upper estimation of the
3675              number of blocks which the found files together will  occupy  in
3676              the   emerging  ISO  image.   This  does  not  account  for  the
3677              superblock, for the directories in the -findx path, or for image
3678              padding.
3679              list_extattr  mode  prints a script to the result channel, which
3680              would use FreeBSD command setextattr to  set  the  file's  xattr
3681              name-value pairs of user namespace.  See -find for a description
3682              of parameter mode.
3683              E.g. -exec list_extattr e --
3684
3685       -compare disk_path iso_rr_path
3686              Compare  attributes  and  eventual  data  file  content   of   a
3687              fileobject in the local filesystem with a file object in the ISO
3688              image. The iso_rr_path may well point to an  image  file  object
3689              which is not yet committed, i.e. of which the data content still
3690              resides in the local filesystem. Such data content is  prone  to
3691              externally caused changes.
3692              If  iso_rr_path  is  empty then disk_path is used as path in the
3693              ISO image too.
3694              Differing attributes are reported in detail,  differing  content
3695              is  summarized.   Both  to  the  result  channel.  In case of no
3696              differences no result lines are emitted.
3697
3698       -compare_r disk_path iso_rr_path
3699              Like -compare but working recursively.  I.e.  all  file  objects
3700              below both addresses get compared whether they have counterparts
3701              below the other address and whether both counterparts match.
3702
3703       -compare_l disk_prefix iso_rr_prefix disk_path [***]
3704              Perform  -compare_r  with  each  of  the  disk_path  parameters.
3705              iso_rr_path   will  be  composed  from  disk_path  by  replacing
3706              disk_prefix by iso_rr_prefix.
3707
3708       -show_stream iso_rr_path [***]
3709              Display the content stream chain of data files in the ISO image.
3710              The  chain  consists of the iso_rr_name and one or more streams,
3711              separated by " < " marks.  A stream description consists of  one
3712              or  more  texts,  separated  by  ":" characters.  The first text
3713              tells the stream type, the following ones, if ever, describe its
3714              individual properties.  Frequently used types are:
3715               disk:'disk_path'  for local filesystem objects.
3716               image:'iso_rr_path'  for ISO image file objects.
3717               cout:'disk_path offset count'  for -cut_out files.
3718               extf:'filter_name' for external filters.
3719              Example:
3720               '/abc/xyz.gz' < extf:'gzip' < disk:'/home/me/x'
3721
3722       -show_stream_r iso_rr_path [***]
3723              Like -show_stream but working recursively.
3724
3725       Evaluation of readability and recovery:
3726
3727       It  is not uncommon that optical media produce read errors. The reasons
3728       may be various and get obscured by error correction which is  performed
3729       by  the drives and based on extra data on the media. If a drive returns
3730       data then one can quite trust that they are valid. But at  some  degree
3731       of  read problems the correction will fail and the drive is supposed to
3732       indicate error.
3733       xorriso can scan a medium  for  readable  data  blocks,  classify  them
3734       according  to  their read speed, save them to a file, and keep track of
3735       successfully saved blocks for further tries on the same medium.
3736       By command -md5 checksums may get recorded with data  files  and  whole
3737       sessions.  These  checksums  are  reachable only via indev and a loaded
3738       image.  They work independently  of  the  media  type  and  can  detect
3739       transmission errors.
3740
3741       -check_media [option [option ...]] --
3742              Try  to  read  data blocks from the indev drive, optionally copy
3743              them to a disk file, and finally report  about  the  encountered
3744              quality.  Several  options  may  be  used  to modify the default
3745              behavior.
3746              The parameters given with  this  command  override  the  default
3747              settings    which    may    have   been   changed   by   command
3748              -check_media_defaults. See there for a description of  available
3749              options.
3750              The  result  list  tells  intervals  of  2 KiB blocks with start
3751              address, number of blocks and  quality.  Qualities  which  begin
3752              with  "+" are supposed to be valid readable data. Qualities with
3753              "-" are unreadable or corrupted data.  "0"  indicates  qualities
3754              which  are not covered by the check run or are regularly allowed
3755              to be unreadable (e.g. gaps between tracks).
3756              Alternatively it is possible to report damaged files rather than
3757              blocks.
3758              If  -md5 is "on" then the default mode what=tracks looks out for
3759              libisofs checksum tags for the ISO session data and checks  them
3760              against the checksums computed from the data stream.
3761
3762       -check_media_defaults [option [option ...]] --
3763              Preset  options  for  runs  of  -check_media,  -extract_cut  and
3764              best_effort file extraction.  Options  given  with  -check_media
3765              will  override  the  preset  options. -extract_cut will override
3766              some options automatically.
3767              An option consists of a keyword, a "=" character, and  a  value.
3768              Options may override each other. So their sequence matters.
3769              The default setting at program start is:
3770              use=indev what=tracks min_lba=-1 max_lba=-1 retry=default
3771              time_limit=28800 item_limit=100000 data_to='' event=ALL
3772              abort_file=/var/opt/xorriso/do_abort_check_media
3773              sector_map='' map_with_volid=off patch_lba0=off report=blocks
3774              bad_limit=invalid slow_limit=1.0 chunk_size=0s async_chunks=0
3775              Option "reset=now" restores these startup defaults.
3776              Non-default options are:
3777              report="files"  lists  the  files  which use damaged blocks (not
3778              with  use=outdev).   The  format  is  like   with   find   -exec
3779              report_damage.  Note that a MD5 session mismatch marks all files
3780              of the session as damaged.  If  finer  distinction  is  desired,
3781              perform -md5 off before -check_media.
3782              report="blocks_files"   first  lists  damaged  blocks  and  then
3783              affected files.
3784              use="outdev" reads from the output drive instead  of  the  input
3785              drive. This avoids loading the ISO image tree from media.
3786              use="sector_map"  does  not  read  any  media but loads the file
3787              given by option sector_map= and processes this virtual outcome.
3788              what="disc"  scans  the  payload  range  of  a  medium   without
3789              respecting track gaps.
3790              what="image"  similar  to  "disc", but restricts scanning to the
3791              range of the ISO 9660 image, if present.
3792              min_lba=limit omits all blocks with addresses lower than limit.
3793              max_lba=limit switches to what=disc and omits all  blocks  above
3794              limit.
3795              chunk_size=size  sets  the  number  of  bytes  to be read in one
3796              low-level read operation.  This gets rounded down to full blocks
3797              of 2048 bytes. 0 means automatic size.
3798              retry="on"  forces read retries with minimal senseful chunk size
3799              when the normal read chunk produces a read error. This  size  is
3800              1s  with CD and stdio files, 16s with DVD (1 ECC Block), and 32s
3801              with BD (1 Cluster).  By default, retries are only enabled  with
3802              CD media. "retry=off" forbits retries for all media types.
3803              abort_file=disk_path  gives the path of the file which may abort
3804              a scan run. Abort happens if the file exists and  its  mtime  is
3805              not  older  than  the  start  time of the run. Use shell command
3806              "touch" to trigger this.  Other than  an  aborted  program  run,
3807              this  will  report the tested and untested blocks and go on with
3808              running xorriso.
3809              time_limit=seconds gives the number of seconds after  which  the
3810              scan shall be aborted. This is useful for unattended scanning of
3811              media which may else overwork the drive in its effort to squeeze
3812              out  some  readable  blocks.   Abort may be delayed by the drive
3813              gnawing on the last  single  read  operation.   Value  -1  means
3814              unlimited time.
3815              item_limit=number  gives  the  number of report list items after
3816              which to abort.  Value -1 means unlimited item number.
3817              data_to=disk_path copies the valid blocks to the given file.
3818              event=severity sets the given severity for a problem event which
3819              shall  be  issued  at the end of a check run if data blocks were
3820              unreadable or failed to match recorded MD5  checksums.  Severity
3821              "ALL" disables this event.
3822              sector_map=disk_path  tries  to read the file given by disk_path
3823              as sector bitmap and to store such a map  file  after  the  scan
3824              run.   The bitmap tells which blocks have been read successfully
3825              in previous runs.  It is the persistent memory for several scans
3826              on  the  same  medium, even with intermediate eject, in order to
3827              collect readable blocks whenever the drive is  lucky  enough  to
3828              produce  them.  The stored file contains a human readable TOC of
3829              tracks and their  start  block  addresses,  followed  by  binary
3830              bitmap data.
3831              By  default,  untested blocks are not considered bad, but rather
3832              as  intentionally  unread.  If   you   expect   time_limit=   or
3833              item_limit=   to   abort   the   run,   then   consider  to  use
3834              bad_limit="untested".
3835              map_with_volid="on" examines tracks whether they are ISO  images
3836              and  prints  their  volume  IDs  into  the human readable TOC of
3837              sector_map=.
3838              patch_lba0="on" transfers within the data_to= file a copy of the
3839              currently  loaded  session  head  to  the start of that file and
3840              patches it to be valid at that position.  This makes the  loaded
3841              session  the  last  valid session of the image file when it gets
3842              mounted or loaded as stdio: drive. New sessions will be appended
3843              after  this  last  session and will overwrite any sessions which
3844              have followed it.
3845              patch_lba0="force"  performs  patch_lba0="on"  even  if  xorriso
3846              believes that the copied data are not valid.
3847              patch_lba0=  may also bear a number. If it is 32 or higher it is
3848              taken as start address of the session to be copied. In this case
3849              it  is  not  necessary  to  have  an  -indev and a loaded image.
3850              ":force" may be appended after the number.
3851              bad_limit=threshold sets the  highest  quality  which  shall  be
3852              considered  as  damage.   Choose  one  of  "good",  "md5_match",
3853              "slow", "partial", "valid",  "untested",  "invalid",  "tao_end",
3854              "off_track", "md5_mismatch", "unreadable".
3855              "valid"  and  "invalid" are qualities imported from a sector_map
3856              file.  "tao_end" and "off_track" are intentionally not readable,
3857              but  not  bad  either.   "partial"  are  blocks retrieved from a
3858              partially readable chunk. They are supposed to be  ok  but  stem
3859              from a suspicious neighborhood.
3860              "md5_match"  and  "md5_mismatch" regions overlap with regions of
3861              other quality.
3862              slow_limit=threshold sets the time threshold for a  single  read
3863              chunk  to  be  considered  slow. This may be a fractional number
3864              like 0.1 or 1.5.
3865              async_chunks=number  enables  asynchronous  MD5  processing   if
3866              number  is  2  or larger.  In this case the given number of read
3867              chunks is allocated as fifo buffer.  On  very  fast  MMC  drives
3868              try: chunk_size=64s async_chunks=16.
3869
3870       -check_md5 severity iso_rr_path [***]
3871              Compare  the data content of the given files in the loaded image
3872              with their recorded MD5 checksums, if there are any. In case  of
3873              any  mismatch  an  event of the given severity is issued. It may
3874              then be handled by appropriate settings of commands -abort_on or
3875              -return_with  which  both  can cause non-zero exit values of the
3876              program run. Severity ALL suppresses that event.
3877              This command reports match and mismatch of  data  files  to  the
3878              result  channel.   Non-data  files cause NOTE events. There will
3879              also be UPDATE events from data reading.
3880              If no iso_rr_path is given then  the  whole  loaded  session  is
3881              compared  with  its  MD5 sum. Be aware that this covers only one
3882              session and not the whole image if there are older sessions.
3883
3884       -check_md5_r severity iso_rr_path [***]
3885              Like -check_md5 but checking all data files underneath the given
3886              paths.  Only mismatching data files will be reported.
3887
3888       osirrox ISO-to-disk restore commands:
3889
3890       Normally  xorriso  only writes to disk files which were given as stdio:
3891       pseudo-drives or as log files.  But its alter ego osirrox  is  able  to
3892       extract  file  objects  from  ISO  images  and to create, overwrite, or
3893       delete file objects on disk.
3894       Disk file exclusions by -not_mgt, -not_leaf, -not_paths apply.  If disk
3895       file  objects  already  exist  then  the  settings  of  -overwrite  and
3896       -reassure apply. But -overwrite "on"  only  triggers  the  behavior  of
3897       -overwrite "nondir". I.e. directories cannot be deleted.
3898       Access permissions of files in the ISO image do not restrict restoring.
3899       The directory permissions on disk have to allow rwx.
3900
3901       -osirrox setting[:option:...]
3902              Setting "off" disables disk filesystem  manipulations.  This  is
3903              the  default  unless  the  program  was  started  with  leafname
3904              "osirrox". Elsewise the  capability  to  restore  files  can  be
3905              enabled  explicitly  by  -osirrox  "on".   It can be irrevocably
3906              disabled by -osirrox "banned".
3907              The setting "blocked" is like "off". But it can only be  revoked
3908              by  setting  "unblock", which elsewise is like "on". This can be
3909              used to curb command scripts which might use "on" undesiredly.
3910              To enable  restoring  of  special  files  by  "device_files"  is
3911              potentially  dangerous.   The meaning of the number st_rdev (see
3912              man 2 stat) depends much on the operating  system.  Best  is  to
3913              restore  device  files  only  to the same system from where they
3914              were copied. If not enabled, device files in the ISO  image  are
3915              ignored during restore operations.
3916              Due  to  a  bug of previous versions, device files from previous
3917              sessions might have been altered to major=0,  minor=1.  So  this
3918              combination does not get restored.
3919              Option  "concat_split_on"  is  default.  It enables restoring of
3920              split file directories as data files if the directory contains a
3921              complete   collection   of  -cut_out  part  files.  With  option
3922              "concat_split_off" such directories are handled like  any  other
3923              ISO image directory.
3924              Option  "auto_chmod_off"  is  default. If "auto_chmod_on" is set
3925              then access restrictions for disk directories  get  circumvented
3926              if  those  directories  are owned by the effective user who runs
3927              xorriso. This happens by temporarily granting rwx permission  to
3928              the owner.
3929              Option  "sort_lba_on"  may improve read performance with optical
3930              drives. It can restore  large  numbers  of  hard  links  without
3931              exhausting -temp_mem_limit. It does not preserve directory mtime
3932              and it needs -osirrox option auto_chmod_on in order  to  extract
3933              directories   which   offer  no  write  permission.  Default  is
3934              "sort_lba_off".
3935              Option "o_excl_on" is the default unless the program was started
3936              with  leafname  "osirrox".  On GNU/Linux it tries to avoid using
3937              drives which are mounted or in use by  other  libburn  programs.
3938              Option  "o_excl_off" on GNU/Linux enables access to such drives.
3939              Drives which get acquired while "o_excl_off" will refuse to  get
3940              blanked,  formatted, written, or ejected. But be aware that even
3941              harmless inquiries  can  spoil  ongoing  burns  of  CD-R[W]  and
3942              DVD-R[W].
3943              Option  "strict_acl_off" is default. It tolerates on FreeBSD the
3944              presence of directory "default" ACLs  in  the  ISO  image.  With
3945              "strict_acl_on"  these GNU/Linux ACLs cause on FreeBSD a FAILURE
3946              event during restore with -acl "on".
3947
3948       -extract iso_rr_path disk_path
3949              Copy the file objects at and  underneath  iso_rr_path  to  their
3950              corresponding  addresses  at  and underneath disk_path.  This is
3951              the inverse of -map or -update_r.
3952              If iso_rr_path is a  directory  and  disk_path  is  an  existing
3953              directory  then  both trees will be merged. Directory attributes
3954              get extracted only if the disk directory is newly created by the
3955              copy  operation.   Disk files get removed only if they are to be
3956              replaced by file objects from the ISO image.
3957              As many attributes as possible are copied together with restored
3958              file objects.
3959
3960       -extract_single iso_rr_path disk_path
3961              Like  -extract,  but  if iso_rr_path is a directory then its sub
3962              tree gets not restored.
3963
3964       -extract_l iso_rr_prefix disk_prefix iso_rr_path [***]
3965              Perform  -extract  with  each  of  the  iso_rr_path  parameters.
3966              disk_path   will  be  composed  from  iso_rr_path  by  replacing
3967              iso_rr_prefix by disk_prefix.
3968
3969       -extract_cut iso_rr_path byte_offset byte_count disk_path
3970              Copy a byte interval from a data file out of an ISO image into a
3971              newly  created disk file.  The main purpose for this is to offer
3972              a way of handling large files if they are not supported by mount
3973              -t  iso9660  or if the target disk filesystem cannot store large
3974              files.
3975              If the data bytes of iso_rr_path are stored in  the  loaded  ISO
3976              image,  and  no filter is applied, and byte_offset is a multiple
3977              of 2048, then a special run of -check_media is performed. It may
3978              be quicker and more rugged than the general reading method.
3979
3980       -cpx iso_rr_path [***] disk_path
3981              Copy  single leaf file objects from the ISO image to the address
3982              given by disk_path. If more then one iso_rr_path is  given  then
3983              disk_path  must  be  a  directory or non-existent. In the latter
3984              case it gets created and the extracted files get installed in it
3985              with the same leafnames.
3986              Missing  directory  components in disk_path will get created, if
3987              possible.
3988              Directories  are  allowed  as  iso_rr_path  only  with  -osirrox
3989              "concat_split_on" and only if they actually represent a complete
3990              collection of -cut_out split file parts.
3991
3992       -cpax iso_rr_path [***] disk_path
3993              Like -cpx but restoring mtime, atime as in ISO image and  trying
3994              to set ownership and group as in ISO image.
3995
3996       -cp_rx iso_rr_path [***] disk_path
3997              Like -cpx but also extracting whole directory trees from the ISO
3998              image.
3999              The resulting disk paths are determined as with shell command cp
4000              -r  :  If disk_path is an existing directory then the trees will
4001              be inserted or merged underneath this directory  and  will  keep
4002              their  leaf  names.  The  ISO directory "/" has no leaf name and
4003              thus gets mapped directly to disk_path.
4004
4005       -cp_rax iso_rr_path [***] disk_path
4006              Like -cp_rx but restoring mtime,  atime  as  in  ISO  image  and
4007              trying to set ownership and group as in ISO image.
4008
4009       -paste_in iso_rr_path disk_path byte_offset byte_count
4010              Read  the  content  of  a ISO data file and write it into a data
4011              file on  disk  beginning  at  the  byte_offset.  Write  at  most
4012              byte_count bytes.  This is the inverse of command -cut_out.
4013
4014       -concat mode [target | lim prog [args [...]] lim] iso_rr_path [***]
4015              Copy the data content of one or more data files of the ISO image
4016              into a disk file object, into a  file  descriptor,  or  start  a
4017              program  and  copy the data into its standard input.  The latter
4018              is subject to the security restrictions for external filters.
4019              Modes overwrite and append write into the target which is  given
4020              by  the  second  parameter.  This may be the path to a disk file
4021              object, or "-" which means standard output, or  a  text  of  the
4022              form  /dev/fd/number,  where  number  is an open file descriptor
4023              (e.g. standard error is /dev/fd/2).  An existing target file  is
4024              not  removed  before  writing  begins. If it is not able to take
4025              content data, then this command fails.  Mode overwrite truncates
4026              regular data files to 0 size before writing into them.  Example:
4027               -concat append /home/me/accumulated_text /my/iso/text --
4028
4029              Mode  pipe  expects  as  second parameter a delimiter word which
4030              shall mark the end of  the  program  argument  list.  The  third
4031              argument  is  the  disk_path  to the program. It must contain at
4032              least one '/'. $PATH is not applied.  Further parameters  up  to
4033              the  announced  delimiter  word  are  used as arguments with the
4034              program start. Example:
4035               -iso_rr_pattern on \
4036               -concat pipe + /usr/bin/wc + "/my/iso/files*" --
4037
4038              The further parameters in all modes are the iso_rr_paths of data
4039              files.  Their content gets concatenated in the copy.
4040
4041       -mount drive entity id path
4042              Produce  the  same  line  as  -mount_cmd  and then execute it as
4043              external program run after giving up  the  depicted  drive.  See
4044              also  -mount_opts.   This  demands  -osirrox  to  be enabled and
4045              normally will succeed only for the superuser. For safety reasons
4046              the  mount  program  is  only  executed  if  it  is reachable as
4047              /bin/mount or /sbin/mount.
4048
4049       Command compatibility emulations:
4050
4051       Writing of ISO 9660 on CD is traditionally done by program  mkisofs  as
4052       ISO 9660 image producer and cdrecord as burn program.  xorriso does not
4053       strive for their comprehensive emulation.  Nevertheless it is ready  to
4054       perform  some of its core tasks under control of commands which in said
4055       programs trigger comparable actions.
4056
4057       -as personality option [options] --
4058              Perform the variable length option list as sparse  emulation  of
4059              the program depicted by the personality word.
4060
4061              Personality "mkisofs" accepts the options listed with:
4062                -as mkisofs -help --
4063              Among  them:  -R  (always  on),  -r,  -J, -o, -M, -C, -dir-mode,
4064              -file-mode,  -path-list,  -m,  -exclude-list,  -f,  -print-size,
4065              -pad,    -no-pad,   -V,   -v,   -version,   -graft-points,   -z,
4066              -no-emul-boot,  -b,   -c,   -boot-info-table,   -boot-load-size,
4067              -input-charset,  -G,  -output-charset,  -U, -hide, -hide-joliet,
4068              -hide-list, -hide-joliet-list, file paths and pathspecs.  A  lot
4069              of  options are not supported and lead to failure of the mkisofs
4070              emulation. Some are ignored, but better  do  not  rely  on  this
4071              tolerance.
4072              The supported options are documented in detail in xorrisofs.info
4073              and in man xorrisofs. The description here  is  focused  on  the
4074              effect of mkisofs emulation in the context of a xorriso run.
4075              Other than with the "cdrecord" personality there is no automatic
4076              -commit at  the  end  of  a  "mkisofs"  option  list.  Verbosity
4077              settings  -v  (=  "UPDATE")  and -quiet (= "SORRY") persist. The
4078              output  file  persists  until  things   happen   like   -commit,
4079              -rollback, -dev, or end of xorriso.
4080              Options  which affect all file objects in the ISO image, like -r
4081              or -dir-mode, will be applied only to files which are present in
4082              the  ISO image when the command -as ends. If you use several -as
4083              mkisofs commands in the same run,  then  consider  to  put  such
4084              options into the last -as command.
4085              If  files  are  added  to  the image, then -pacifier gets set to
4086              "mkisofs" and -stdio_sync is  defaulted  to  "off"  if  no  such
4087              setting was made yet.
4088              -graft-points   is   equivalent  to  -pathspecs  on.  Note  that
4089              pathspecs without "="  are  interpreted  differently  than  with
4090              xorriso  command  -add.   Directories  get  merged with the root
4091              directory of the ISO image, other filetypes get mapped into that
4092              root directory.
4093              If  pathspecs  are given and if no output file was chosen before
4094              or during  the  "mkisofs"  option  list,  then  standard  output
4095              (-outdev  "-")  will get into effect.  If -o points to a regular
4096              file, then it will be truncated to 0 bytes when finally  writing
4097              begins.  This  truncation does not happen if the drive is chosen
4098              by xorriso  commands  before  -as  mkisofs  or  after  its  list
4099              delimiter.  Directories  and  symbolic  links  are  no  valid -o
4100              targets.
4101              Writing to stdout is possible only if -as  "mkisofs"  was  among
4102              the  start  arguments  or  if  other start arguments pointed the
4103              output drive to standard output.
4104              -print-size inhibits automatic image production at program  end.
4105              This  ban  is  lifted  only  if  the  pending  image changes get
4106              discarded.
4107              Padding is counted as part  of  the  ISO  image  if  not  option
4108              --emul-toc is given.
4109              If no -iso-level is given, then level 1 is chosen when the first
4110              file or directory is added to the image. At  the  same  occasion
4111              directory   names   get  allowed  to  violate  the  standard  by
4112              -compliance option allow_dir_id_ext.  This  may  be  avoided  by
4113              option -disallow_dir_id_ext.
4114              Option  -root  is  supported. Option -old-root is implemented by
4115              xorriso commands  -mkdir,  -cp_clone,  -find  update_merge,  and
4116              -find  rm_merge.   -root and -old-root set command -disk_dev_ino
4117              to "ino_only" and -md5 to "on", by default.   -disk_dev_ino  can
4118              be   set   to   "off"   by   --old-root-no-ino  or  to  "on"  by
4119              --old-root-devno   .    -md5   can   be   set   to   "off"    by
4120              --old-root-no-md5 .
4121              Not   original   mkisofs   options   are   --quoted_path_list  ,
4122              --hardlinks , --acl , --xattr , --md5  ,  --stdio_sync  .   They
4123              work  like the xorriso commands with the same name and hardcoded
4124              parameter  "on",  e.g.  -acl  "on".   Explicit  parameters   are
4125              expected by --stdio_sync and --scdbackup_tag.
4126              The    capability   to   preserve   multi-session   history   on
4127              overwriteable media gets disabled by default. It can be  enabled
4128              by  using  --emul-toc  with  the  first session. See -compliance
4129              no_emul_toc.
4130              --sort-weight gets as parameters a number  and  an  iso_rr_path.
4131              The  number  becomes  the  LBA  sorting  weight  of regular file
4132              iso_rr_path  or  of  all  regular  files  underneath   directory
4133              iso_rr_path.  (See -find -exec sort_weight).
4134              Adopted  from  grub-mkisofs  are  --protective-msdos-label  (see
4135              -boot_image         grub         partition_table=on)         and
4136              --modification-date=YYYYMMDDhhmmsscc  (see  -volume_date  uuid).
4137              For EFI bootable GRUB boot images use --efi-boot.   It  performs
4138              -boot_image  grub  efi_path= surrounded by two -boot_image "any"
4139              "next".  Alternative option  -e  from  Fedora  genisoimage  sets
4140              bin_path and platform_id for EFI, but performs no "next".
4141              For  MBR  bootable ISOLINUX images there is -isohybrid-mbr FILE,
4142              where FILE is one of the Syslinux files  mbr/isohdp[fp]x*.bin  .
4143              Use  this  instead  of  -G  to  apply  the effect of -boot_image
4144              isolinux partition_table=on.
4145              --boot-catalog-hide is -boot_image any cat_hidden=on.
4146              -mips-boot is the same as -boot_image any mips_path= .
4147              -mipsel-boot leads to mipsel_path= .
4148              -partition_offset      number      is      -boot_image       any
4149              partition_offset=number.
4150              Command -append_partition is supported.
4151              -untranslated_name_len        number        is       -compliance
4152              untranslated_name_len=number.
4153              --old-empty is -compliance old_empty.
4154              The  options  of  genisoimage  Jigdo  Template  Extraction   are
4155              recognized  and  performed  via  xorriso command -jigdo. See the
4156              "Alias:" names there for the meaning of the genisoimage options.
4157
4158              Personalities "xorrisofs",  "genisoimage",  and  "genisofs"  are
4159              aliases for "mkisofs".
4160              If  xorriso  is  started  with one of the leafnames "xorrisofs",
4161              "genisofs",  "mkisofs",  or  "genisoimage",  then  it   performs
4162              -read_mkisofsrc  and  prepends  -as  "genisofs"  to  the program
4163              arguments.  I.e. all arguments will be interpreted mkisofs style
4164              until   "--"  is  encountered.   From  then  on,  arguments  are
4165              interpreted as xorriso commands.
4166              --no_rc as first argument  of  such  a  program  start  prevents
4167              interpretation of startup files. See section FILES below.
4168
4169              Personality "cdrecord" accepts the options listed with:
4170                -as cdrecord -help --
4171              Among  them:  -v,  dev=,  speed=,  blank=,  fs=,  -eject, -atip,
4172              padsize=,      tsize=,      -isosize,      -multi,      -msinfo,
4173              --grow_overwriteable_iso,   write_start_address=,  track  source
4174              file path or "-" for standard input as track source.
4175              It ignores most  other  options  of  cdrecord  and  cdrskin  but
4176              refuses  on  -audio,  -scanbus, and on blanking modes unknown to
4177              xorriso.
4178              The scope is only a single data track per session to be  written
4179              to  blank,  overwriteable,  or appendable media. The medium gets
4180              closed if  closing  is  applicable  and  not  option  -multi  is
4181              present.
4182              If  an  input  drive was acquired, then it is given up.  This is
4183              only allowed if no image changes are pending.
4184              dev= must be given as xorriso  device  address.  Addresses  like
4185              0,0,0 or ATA:1,1,0 are not supported.
4186              If a track source is given, then an automatic -commit happens at
4187              the end of the "cdrecord" option list.
4188              --grow_overwriteable_iso enables emulation of  multi-session  on
4189              overwriteable  media.   To  enable emulation of a TOC, the first
4190              session  needs  -C  0,32  with  -as  mkisofs  (but  no  -M)  and
4191              --grow_overwriteable_iso    write_start_address=32s   with   -as
4192              cdrecord.
4193              A much more elaborate libburn based  cdrecord  emulator  is  the
4194              program cdrskin.
4195              Personalites "xorrecord", "wodim", and "cdrskin" are aliases for
4196              "cdrecord".
4197              If xorriso is started with one  of  the  leafnames  "xorrecord",
4198              "cdrskin",   "cdrecord",   or  "wodim",  then  it  automatically
4199              prepends -as  "cdrskin"  to  the  program  arguments.  I.e.  all
4200              arguments  will  be  interpreted  cdrecord  style  until "--" is
4201              encountered.  From then on, arguments are interpreted as xorriso
4202              commands.
4203              --no_rc  as  first  argument  of  such  a program start prevents
4204              interpretation of xorriso  startup  files.   See  section  FILES
4205              below.
4206
4207       -read_mkisofsrc
4208              Try one by one to open for reading:
4209               ./.mkisofsrc   ,  $MKISOFSRC  ,  $HOME/.mkisofsrc  ,  $(dirname
4210              $0)/.mkisofsrc
4211              On  success  interpret  the  file  content  as  of  man  mkisofs
4212              CONFIGURATION,  and  end this command. Do not try further files.
4213              The last address  is  used  only  if  start  argument  0  has  a
4214              non-trivial dirname.
4215              The  reader currently interprets the following NAME=VALUE pairs:
4216              APPI (-application_id) , PUBL (-publisher) , SYSI (-system_id) ,
4217              VOLI (-volid) , VOLS (-volset_id)
4218              Any other lines will be silently ignored.
4219
4220       -pacifier behavior_code
4221              Control  behavior  of  UPDATE pacifiers during write operations.
4222              The following behavior codes are defined:
4223              "xorriso" is the default format:
4224              Writing: sector XXXXX of YYYYYY  [fifo active, nn% fill]
4225              "cdrecord" looks like:
4226              X of Y MB written (fifo nn%) [buf mmm%]
4227              "mkisofs"
4228              nn% done, estimate finish Tue Jul 15 20:13:28 2008
4229              The frequency of the messages can be adjusted by
4230              "interval=number"
4231              where number gives the seconds between two messages. Permissible
4232              settings are 0.1 to 60.0.
4233
4234       -scdbackup_tag list_path record_name
4235              Set  the  parameter  "name" for a scdbackup checksum record.  It
4236              will be appended in  an  scdbackup  checksum  tag  to  the  -md5
4237              session tag if the image starts at LBA 0. This is the case if it
4238              gets written as first session onto a sequential medium, or piped
4239              into a program, named pipe or character device.
4240              If  list_path is not empty then the record will also be appended
4241              to the data file given by this path.
4242              Program scdbackup_verify will recognize and verify tag and  file
4243              record.
4244              An empty record_name disables this feature.
4245
4246       Scripting, dialog and program control features:
4247
4248       -no_rc
4249              Only  if  used  as  first program argument this command prevents
4250              reading and interpretation of startup files. See  section  FILES
4251              below.
4252
4253       -options_from_file fileaddress
4254              Read  quoted  input  from fileaddress and execute it like dialog
4255              lines.  Empty lines and lines which  begin  by  #  are  ignored.
4256              Normally  one  line  should hold one xorriso command and all its
4257              parameters.   Nevertheless  lines  may  be  concatenated  by   a
4258              trailing backslash.
4259              See also section "Command processing", paragraph "Quoted input".
4260
4261       -help
4262              Print helptext.
4263
4264       -version
4265              Print program name and version, component versions, license.
4266
4267       -list_extras code
4268              Tell  whether  certain  extra  features  were enabled at compile
4269              time.  Code "all" lists all  features  and  a  headline.   Other
4270              codes  pick  a  single  feature.   Code "codes" lists them. They
4271              share names with related commands (see also there):
4272              "acl" tells whether xorriso has an adapter for local filesystems
4273              ACLs.
4274              "xattr"   tells   whether  xorriso  has  an  adapter  for  local
4275              filesystems EA.
4276              "jigdo" tells whether production of Jigdo files is possible.
4277              "zisofs" tells whether zisofs  and  built-in  gzip  filters  are
4278              enabled.
4279              "external_filter"  tells  whether  external filter processes are
4280              allowed and whether  they  are  allowed  if  real  user  id  and
4281              effective user id differ.
4282              "dvd_obs" tells whether 64 kB output to DVD media is default.
4283              "use_readline"  tells  whether readline may be enabled in dialog
4284              mode.
4285
4286       -history textline
4287              Copy textline into libreadline history.
4288
4289       -status mode|filter
4290              Print the current settings of xorriso.  Modes:
4291                short... print only important or altered settings
4292                long ... print all settings including defaults
4293                long_history  like long plus history lines
4294              Filters begin with '-' and are compared  literally  against  the
4295              output  lines of -status:long_history. A line is put out only if
4296              its start matches the filter text. No wildcards.
4297
4298       -status_history_max number
4299              Set maximum number of history lines to be reported with  -status
4300              "long_history".
4301
4302       -list_delimiter word
4303              Set the list delimiter to be used instead of "--".  It has to be
4304              a single word, must not be empty, not longer than 80 characters,
4305              and must not contain quotation marks.
4306              For  brevity  the  list delimiter is referred as "--" throughout
4307              this text.
4308
4309       -sh_style_result "on"|"off"
4310              Make the result output of some  filesystem  inspection  commands
4311              look more like the output of equivalent shell commands. The most
4312              important effect is to prevent the wrapping  of  file  addresses
4313              into quotation marks with commands
4314                -pwd -pwdx -ls -lsd -lsl -lsdl -lsx -lsdx -lslx -lsdlx
4315                -du -dus -dux -dusx -findx -find
4316              This  will make ambiguous the representation of file names which
4317              contain  newline  characters.  On  the  other  hand  it   should
4318              facilitate  integration  of  xorriso  into  shell  scripts which
4319              already use the corresponding shell commands.
4320
4321       -backslash_codes "on"|"off"|mode[:mode]
4322              Enable or disable the interpretation of symbolic representations
4323              of  special  characters  with  quoted  input,  or  with  program
4324              arguments, or with program text output. If enabled the following
4325              translations apply:
4326               \a=bell(007) \b=backspace(010) \e=Escape(033) \f=formfeed(014)
4327               \n=linefeed(012) \r=carriage_return(015) \t=tab(011)
4328               \v=vtab(013) \\=backslash(134) \[0-7][0-7][0-7]=octal_code
4329               \x[0-9a-f][0-9a-f]=hex_code \cC=control-C
4330              Translations can occur with quoted input in 3 modes:
4331               "in_double_quotes" translates only inside " quotation.
4332               "in_quotes" translates inside " and ' quotation.
4333               "with_quoted_input" translates inside and outside quotes.
4334              With the start program arguments there is mode:
4335               "with_program_arguments" translates program arguments.
4336              Mode  "encode_output"  encodes  output  characters.  It combines
4337              "encode_results" with "encode_infos". Inside  single  or  double
4338              quotation  marks  encoding applies to 8-bit characters octal 001
4339              to 037 , 177 to 377 and to  backslash(134).   Outside  quotation
4340              marks  some  harmless  ASCII  control characters stay unencoded:
4341              bell(007),     backspace(010),     tab(011),      linefeed(012),
4342              formfeed(014), carriage_return(015).
4343              Mode  "off"  is default and disables any translation.  Mode "on"
4344              is "with_quoted_input:with_program_arguments:encode_output".
4345
4346       -temp_mem_limit number["k"|"m"]
4347              Set the maximum size of temporary memory to be  used  for  image
4348              dependent   buffering.   Currently   this   applies  to  pattern
4349              expansion, LBA sorting, restoring of hard links.
4350              Default is 16m = 16 MiB, minimum 64k = 64 kiB, maximum 1024m = 1
4351              GiB.
4352
4353       -print  text
4354              Print  a  text  line  to  the result channel which is by default
4355              stdout.
4356
4357       -print_info  text
4358              Print a text line to  the  info  channel  which  is  by  default
4359              stderr.
4360
4361       -print_mark  text
4362              Print  a  text  line  to  the  mark  channel which is by default
4363              directed to both, result and info channel. An  empty  text  will
4364              cause no output at all.
4365
4366       -prompt text
4367              Show  text  at beginning of output line and wait for the user to
4368              hit the Enter key or to send a line via stdin.
4369
4370       -sleep seconds
4371              Wait for the given number of seconds before performing the  next
4372              command.    Expect  coarse  granularity  no  better  than  1/100
4373              seconds.
4374
4375       -errfile_log mode path|channel
4376              If  problem  events  are  related  to  input  files   from   the
4377              filesystem,  then their disk_paths can be logged to a file or to
4378              output channels R or I.
4379              Mode can either be "plain" or "marked". The latter causes marker
4380              lines which give the time of log start, burn session start, burn
4381              session end, log end or program end. In mode "plain",  only  the
4382              file paths are logged.
4383              If  path  is  "-" or "-R" then the log is directed to the result
4384              channel.  Path "-I" directs it to the info message channel.  Any
4385              text  that does not begin with "-" is used as path for a file to
4386              append the log lines.
4387              Problematic files can be  recorded  multiple  times  during  one
4388              program  run.  If the program run aborts then the list might not
4389              be complete  because  some  input  files  might  not  have  been
4390              processed at all.
4391              The  errfile  paths  are  transported  as  messages  of very low
4392              severity  "ERRFILE".   This  transport  becomes   visible   with
4393              -report_about "ALL".
4394
4395       -session_log path
4396              If  path  is not empty it gives the address of a plain text file
4397              where a log record gets appended after each  session.  This  log
4398              can  be  used  to determine the start_lba of a session for mount
4399              options -o sbsector= (on GNU/Linux) or -s (on FreeBSD) from date
4400              or volume ID.
4401              Record format is: timestamp start_lba size volume-id
4402              The  first three items are single words, the rest of the line is
4403              the volume ID.
4404
4405       -scsi_log "on"|"off"
4406              Mode "on" enables very verbous  logging  of  SCSI  commands  and
4407              drive  replies.   Logging messages get printed to stderr, not to
4408              any of the xorriso output channels.
4409              A special property of this command is that the  first  -scsi_log
4410              setting  among the start arguments is in effect already when the
4411              first operations of xorriso begin.  Only "-scsi_log"  with  dash
4412              "-" is recognized that way.
4413
4414       -end
4415              End program after writing pending changes.
4416
4417       -rollback_end
4418              Discard pending changes. End program immediately.
4419
4420       # any text
4421              Only  in  dialog  or  file  execution  mode,  and  only as first
4422              non-whitespace in line: Do not execute the line but store it  in
4423              readline history.
4424
4425       Support for frontend programs via stdin and stdout:
4426
4427       -pkt_output "on"|"off"
4428              Consolidate  text  output  on stdout and classify each line by a
4429              channel indicator:
4430               'R:' for result lines,
4431               'I:' for notes and error messages,
4432               'M:' for -mark texts.
4433              Next is a decimal number of which only bit 0 has a  meaning  for
4434              now.   0  means  no  newline at end of payload, 1 means that the
4435              newline character at the end of the output line belongs  to  the
4436              payload.  After  another  colon  and a blank follows the payload
4437              text.
4438              Example:
4439               I:1: enter option and parameters :
4440
4441       -logfile channel fileaddress
4442              Copy output of a channel to the given file. Channel may  be  one
4443              of:  "." for all channels, "I" for info messages, "R" for result
4444              lines, "M" for -mark texts.
4445
4446       -mark text
4447              If text is not empty it will get put out  on  "M"  channel  each
4448              time xorriso is ready for the next dialog line or before xorriso
4449              performs a command that was entered to the pager prompt.
4450
4451       -msg_op opcode parameter_text
4452              This  command  shall   facilitate   extraction   of   particular
4453              information  from the message output of other commands. It gives
4454              access to the C API function  Xorriso_parse_line()  and  to  the
4455              message  sieve  that  is provided by the C API.  Please refer to
4456              their descriptions in  file  xorriso.h.   Further  it  helps  to
4457              interpret the severity codes of info messages.
4458              Intended  users  are  frontend programs which operate xorriso in
4459              dialog mode.
4460              The result output of this command is not caught by  the  message
4461              sieve.
4462              The following opcodes are defined:
4463              start_sieve
4464              Install  the  message  sieve as of Xorriso_sieve_big() and start
4465              watching program messages. The parameter_text has no meaning.
4466              show_sieve
4467              Show a list of filter rule  names.  The  parameter_text  has  no
4468              meaning.   The  list  begins  by a line with the return value of
4469              Xorriso_sieve_get_result() with flag  bit3.  If  this  value  is
4470              larger than 0, then the next line tells the number of names. The
4471              following lines show one name each.
4472              read_sieve
4473              Use the parameter_text as name of a filter rule and inquire  its
4474              next  recorded  result.   See  Xorriso_sieve_big() for a list of
4475              names and reply strings.
4476              The recorded strings are put out on  result  channel.  They  get
4477              wrapped  into  lines which tell their structure.  The first line
4478              tells the return value of Xorriso_sieve_get_result().  The  next
4479              line  tells  the number of strings. Each string begins by a line
4480              that tells the number of lines of the string. Then follow  these
4481              lines.  They  are  to  be  concatenated with a newline character
4482              between each of them.  Finally the  number  of  still  available
4483              recorded results of the given name is put out.
4484              clear_sieve
4485              Dispose  all  recorded  strings  and  continue  watching program
4486              messages.  The parameter_text has no meaning.
4487              end_sieve
4488              Dispose the sieve  with  its  filter  rules  and  stop  watching
4489              program messages.  The parameter_text has no meaning.
4490              parse
4491              Read   a   text   from   dialog   input   and   submit   it   to
4492              Xorriso_parse_line().  The parameter_text word shall consist  of
4493              several  words separated by blanks.  It will be necessary to use
4494              both kinds of quotation marks.
4495              E.g. "'ISO session  :' '' 0 0 1"
4496              The five parameter words  are:  prefix,  separators,  max_words,
4497              flag, number_of_input_lines.  The former four are handed over to
4498              Xorriso_parse_line(). The number of input lines minus one  tells
4499              xorriso how many newline characters are part of the input text.
4500              The  announced  number  of  text  lines will be read from dialog
4501              input, concatenated with a newline  character  between  each  of
4502              them,  and  submitted to Xorriso_parse_line() as parameter line.
4503              Note that newlines outside of quotation marks are interpreted as
4504              separators if the separators parameter is empty.
4505              The  parsed  strings  are  put  out  on result channel. They get
4506              wrapped into lines which tell their structure.  The  first  line
4507              tells  the  return value of Xorriso_parse_line().  The next line
4508              tells the number of strings. Each string begins by a  line  that
4509              tells  the  number  of  lines  of  the string. Then follow these
4510              lines. They are to be  concatenated  with  a  newline  character
4511              between each of them.
4512              If -backslash_codes "encode_output" is enabled, then the strings
4513              undergo encoding as if they were enclosed in quotes. Escpecially
4514              each string will be put out as a single result line.
4515              parse_bulk
4516              Like   "parse",   but   with  the  fifth  parameter  word  being
4517              number_of_input_texts rather  than  number_of_input_lines.  Each
4518              input   text   has   to   be  preceded  by  a  line  that  tells
4519              number_of_input_lines as with "parse".  Then come the  announced
4520              number of text lines.
4521              All  input  texts  will  be read before printing of result lines
4522              begins.    This   consumes   memory   in   xorriso.    So    the
4523              number_of_input_texts should not be extremely high. On the other
4524              hand, large transactions of command, input  texts,  and  results
4525              are desirable if connection latency is an issue.
4526              parse_silently
4527              Like  "parse"  but not issuing a prompting message. Confusing to
4528              humans.
4529              parse_bulk_silently
4530              Like "parse_bulk" but not issuing a prompting message. Confusing
4531              to humans.
4532              compare_sev
4533              The  parameter_text  should contain two comma separated severity
4534              texts as issued by this program. Like "SORRY,UPDATE".  See  also
4535              paragraph "Exception processing".
4536              These  two severity texts get compared and a number gets printed
4537              to the result channel. This number is 0 if both  severities  are
4538              equal.   It is -1 if the first severity is lower than the second
4539              one.  It is 1 is the first severity is higher  than  the  second
4540              one.
4541              Above example "SORRY,UPDATE" will yield 1.
4542              list_sev
4543              Print  to  the  result  channel  a  blank  separated list of all
4544              severity names.  Sorted from low to high severity.
4545
4546       -named_pipe_loop    mode[:mode]    disk_path_stdin     disk_path_stdout
4547       disk_path_stderr
4548              Temporarily replace standard input, standard output and standard
4549              error by named pipes. Enter dialog mode without readline.
4550              Defined modes are:
4551              "cleanup" removes the submitted pipe files when the loop ends.
4552              "keep" does not delete them. This is the default.
4553              "buffered" reads all lines from the input pipe until EOF  before
4554              it opens the output pipes and processes the input lines.
4555              "direct"  opens  the output pipes after the first input line was
4556              read.  Each line is executed directly after it is read. This  is
4557              the default.
4558              The other three parameters must either be disk paths to existing
4559              named pipes, or be "-"  to  leave  the  according  standard  i/o
4560              channel unreplaced.
4561              xorriso  will open the stdin pipe, read and execute dialog lines
4562              from it until the sender closes the pipe. The output  pipes  get
4563              opened depending on mode "buffered" or "direct". After all lines
4564              are executed, xorriso will close its side of the pipes and enter
4565              a new cycle of opening, reading and executing.
4566              If an input line consists only of the word "end_named_pipe_loop"
4567              then -named_pipe_loop will end and further xorriso commands  may
4568              be executed from other sources.
4569
4570       -launch_frontend program [arguments ...] --
4571              Start  the  program that is given as first parameter. Submit the
4572              other parameters as program  arguments.  Enable  xorriso  dialog
4573              mode.
4574              Two  nameless  pipe  objects are created. xorriso standard input
4575              gets connected to the standard output of  the  started  program.
4576              xorriso  standard output and standard error get connected to the
4577              standard input of that program.
4578              xorriso will abort when the started program ends or if it cannot
4579              be  started at all. In both cases it will return a non-zero exit
4580              value.  The exit value will be zero if the frontend  sends  -end
4581              or -rollback_end before ending itself.
4582              This  command may be totaly banned at compile time. It is banned
4583              by default if xorriso runs under setuid permissions.
4584              The program name will not be searched in the $PATH  directories.
4585              To  make  this  clear, it must contain at least one /-character.
4586              Best is an absolute path.
4587              Example:
4588                xorriso -launch_frontend "$(which xorriso-tcltk)" -stdio --
4589              The frontend program should first send via its standard output:
4590                -mark 0 -pkt_output on -msg_op start_sieve - -reassure off
4591              It should be ready to decode -pkt_output and to react  on  -mark
4592              messages.  Best is to increment the -mark number after each sent
4593              command sequence and then to wait for the new number to show  up
4594              in a mark message:
4595                ...some...commands... -mark <incremented_number>
4596              Further are advised:
4597                -report_about UPDATE -abort_on NEVER
4598                -iso_rr_pattern off -disk_pattern off
4599              A  check of the xorriso version should be done, in order to make
4600              sure that all desired features are present.
4601              Command -launch_frontend will only work once  per  xorriso  run.
4602              If no command parameters are submitted or if program is an empty
4603              text,  then  no  program  will  be  started   but   nevertheless
4604              -launch_frontend will be irrevocably disabled.
4605
4606       -prog text
4607              Use text as name of this program in subsequent messages
4608
4609       -prog_help text
4610              Use text as name of this program and perform -help.
4611

EXAMPLES

4613   Overview of examples:
4614       As superuser learn about available drives
4615       Blank medium and compose a new ISO image as batch run
4616       A dialog session doing about the same
4617       Manipulate an existing ISO image on the same medium
4618       Copy modified ISO image from one medium to another
4619       Bring a prepared ISOLINUX tree onto medium and make it bootable
4620       Change existing file name tree from ISO-8859-1 to UTF-8
4621       Operate on storage facilities other than optical drives
4622       Burn an existing ISO image file to medium
4623       Perform multi-session runs as of cdrtools traditions
4624       Let xorriso work underneath growisofs
4625       Adjust thresholds for verbosity, exit value and program abort
4626       Examples of input timestrings
4627       Incremental backup of a few directory trees
4628       Restore directory trees from a particular ISO session to disk
4629       Try to retrieve blocks from a damaged medium
4630
4631   As superuser learn about available drives
4632       On  Linux,  FreeBSD  or NetBSD consider to give rw-permissions to those
4633       users or groups which shall be able to use the drives with xorriso.  On
4634       Solaris  use  pfexec.  Consider  to  restrict  privileges of xorriso to
4635       "base,sys_devices" and to give r-permission to user or group.
4636       $ xorriso -device_links
4637       1  -dev '/dev/cdrom1' rwrw-- :  'TSSTcorp' 'DVD-ROM SH-D162C
4638       1  -dev '/dev/cdrw'   rwrw-- :  'TSSTcorp' 'CDDVDW SH-S223B'
4639       2  -dev '/dev/cdrw3'  rwrw-- :  'HL-DT-ST' 'BDDVDRW_GGC-H20L'
4640
4641   Blank medium and compose a new ISO image as batch run
4642       Acquire drive /dev/sr2, make medium ready for writing a new image, fill
4643       the image with the files from hard disk directories /home/me/sounds and
4644       /home/me/pictures.
4645       Because no -dialog "on" is given, the program will then end by  writing
4646       the session to the medium.
4647       $ xorriso -outdev /dev/sr2 \
4648        -blank as_needed \
4649        -map /home/me/sounds /sounds \
4650        -map /home/me/pictures /pictures
4651
4652       The ISO image may be shaped in a more elaborate way like the following:
4653       Omit some unwanted stuff by removing it from the image directory  tree.
4654       Reintroduce some wanted stuff.
4655       $ cd /home/me
4656       $ xorriso -outdev /dev/sr2 \
4657        -blank as_needed \
4658        -map /home/me/sounds /sounds \
4659        -map /home/me/pictures /pictures \
4660        -rm_r \
4661          /sounds/indecent \
4662          '/pictures/*private*' \
4663          /pictures/confidential \
4664          -- \
4665        -cd / \
4666        -add pictures/confidential/work* --
4667       Note  that  '/pictures/*private*'  is  a pattern for iso_rr_paths while
4668       pictures/confidential/work* gets expanded by the shell  with  addresses
4669       from  the  hard  disk.  Commands -add and -map have different parameter
4670       rules but finally the same effect: they put files into the image.
4671
4672   A dialog session doing about the same
4673       Some settings are already given as start argument. The other activities
4674       are  done  as  dialog  input.  The  pager  gets  set  to 20 lines of 80
4675       characters.
4676       The drive is acquired by command -dev rather than -outdev in  order  to
4677       see  the  message  about  its  current  content. By command -blank this
4678       content is made ready for being overwritten and the loaded ISO image is
4679       made empty.
4680       In  order  to  be  able  to  eject  the medium, the session needs to be
4681       committed explicitly.
4682       $ xorriso -dialog on -page 20 80 -disk_pattern on
4683       enter option and arguments :
4684       -dev /dev/sr2
4685       enter option and arguments :
4686       -blank as_needed
4687       enter option and arguments :
4688       -map /home/me/sounds /sounds -map /home/me/pictures /pictures
4689       enter option and arguments :
4690       -rm_r /sounds/indecent /pictures/*private* /pictures/confidential
4691       enter option and arguments :
4692       -cdx /home/me/pictures -cd /pictures
4693       enter option and arguments :
4694       -add confidential/office confidential/factory
4695       enter option and arguments :
4696       -du /
4697       enter option and arguments :
4698       -commit_eject all -end
4699
4700   Manipulate an existing ISO image on the same medium
4701       Load image from drive.  Remove (i.e. hide) directory  /sounds  and  its
4702       subordinates.      Rename     directory    /pictures/confidential    to
4703       /pictures/restricted.    Change   access   permissions   of   directory
4704       /pictures/restricted.   Add  new  directory  trees /sounds and /movies.
4705       Burn to the same medium, check whether the  tree  can  be  loaded,  and
4706       eject.
4707       $ xorriso -dev /dev/sr2 \
4708        -rm_r /sounds -- \
4709        -mv \
4710          /pictures/confidential \
4711          /pictures/restricted \
4712          -- \
4713        -chmod go-rwx /pictures/restricted -- \
4714        -map /home/me/prepared_for_dvd/sounds_dummy /sounds \
4715        -map /home/me/prepared_for_dvd/movies /movies \
4716        -commit -eject all
4717
4718   Copy modified ISO image from one medium to another
4719       Load  image  from  input  drive.  Do  the  same manipulations as in the
4720       previous example. Acquire output drive and blank it. Burn the  modified
4721       image as first and only session to the output drive.
4722       $ xorriso -indev /dev/sr2 \
4723        -rm_r /sounds -- \
4724        ...
4725        -outdev /dev/sr0 -blank as_needed \
4726        -commit -eject all
4727
4728   Bring a prepared ISOLINUX tree onto medium and make it bootable
4729       The  user  has  already created a suitable file tree on disk and copied
4730       the ISOLINUX files into subdirectory ./boot/isolinux of that tree.  Now
4731       xorriso can burn an El Torito bootable medium:
4732       $ xorriso -outdev /dev/sr0 -blank as_needed \
4733          -map /home/me/ISOLINUX_prepared_tree / \
4734          -boot_image isolinux dir=/boot/isolinux
4735
4736   Change existing file name tree from ISO-8859-1 to UTF-8
4737       This  example  assumes  that  the  existing  ISO image was written with
4738       character set ISO-8859-1 but that the readers expected UTF-8. Now a new
4739       session gets added with converted file names.  Command -changes_pending
4740       "yes" enables writing despite the lack of any manipulation command.
4741       In order to avoid any weaknesses  of  the  local  character  set,  this
4742       command  pretends  that  it  uses  already  the final target set UTF-8.
4743       Therefore strange file names may appear in messages, which will be made
4744       terminal-safe by command -backslash_codes.
4745       $ xorriso -in_charset ISO-8859-1 -local_charset UTF-8 \
4746          -out_charset UTF-8 -backslash_codes on -dev /dev/sr0 \
4747          -changes_pending yes -commit -eject all
4748
4749   Operate on storage facilities other than optical drives
4750       Full  read-write  operation  is  possible  with regular files and block
4751       devices:
4752       $ xorriso -dev /tmp/regular_file ...
4753       Paths underneath /dev normally need prefix "stdio:"
4754       $ xorriso -dev stdio:/dev/sdb ...
4755       If /dev/sdb is to be used frequently and /dev/sda is the  system  disk,
4756       then  consider  to place the following lines in a xorriso Startup File.
4757       They allow you to use /dev/sdb without prefix and protect disk /dev/sda
4758       from xorriso:
4759         -drive_class banned   /dev/sda*
4760         -drive_class harmless /dev/sdb
4761       Other writeable file types are supported write-only:
4762       $ xorriso -outdev /tmp/named_pipe ...
4763       Among the write-only drives is standard output:
4764       $ xorriso -outdev - \
4765        ...
4766        | gzip >image.iso.gz
4767
4768   Burn an existing ISO image file to medium
4769       Actually this works with any kind of data, not only ISO images:
4770       $ xorriso -as cdrecord -v dev=/dev/sr0 blank=as_needed image.iso
4771
4772   Perform multi-session runs as of cdrtools traditions
4773       Between  both processes there can be performed arbitrary transportation
4774       or filtering.
4775       The first session is written like this:
4776       $ xorriso -as mkisofs prepared_for_iso/tree1 | \
4777        xorriso -as cdrecord -v dev=/dev/sr0 blank=fast -multi -eject -
4778       Follow-up sessions are written like this:
4779       $ dd if=/dev/sr0 count=1 >/dev/null 2>&1
4780       $ m=$(xorriso -as cdrecord dev=/dev/sr0 -msinfo)
4781       $ xorriso -as mkisofs -M /dev/sr0 -C $m prepared_for_iso/tree2 | \
4782        xorriso -as cdrecord -v dev=/dev/sr0 -waiti -multi -eject -
4783       Always eject the drive tray between sessions. The old sessions get read
4784       via  /dev/sr0.  Its  device  driver  might  not be aware of the changed
4785       content before it loads the medium again.  In this  case  the  previous
4786       session  would not be loaded and the new session would contain only the
4787       newly added files.
4788       For the same reason do not let xorriso -as cdrecord  load  the  medium,
4789       but rather do this manually or by a program that reads from /dev/sr0.
4790       This  example  works  for multi-session media only.  Add cdrskin option
4791       --grow_overwriteable_iso to all -as cdrecord runs in  order  to  enable
4792       multi-session emulation on overwriteable media.
4793
4794   Let xorriso work underneath growisofs
4795       growisofs expects an ISO formatter program which understands options -C
4796       and -M. If xorriso gets started by name "xorrisofs" then it is suitable
4797       for that.
4798       $ export MKISOFS="xorrisofs"
4799       $ growisofs -Z /dev/dvd /some/files
4800       $ growisofs -M /dev/dvd /more/files
4801       If  no  "xorrisofs"  is available on your system, then you will have to
4802       create a link pointing to the xorriso binary and tell growisofs to  use
4803       it.  E.g. by:
4804       $ ln -s $(which xorriso) "$HOME/xorrisofs"
4805       $ export MKISOFS="$HOME/xorrisofs"
4806       One  may  quit  mkisofs  emulation by argument "--" and make use of all
4807       xorriso commands. growisofs dislikes options which start with "-o"  but
4808       -outdev must be set to "-".  So use "outdev" instead:
4809       $ growisofs -Z /dev/dvd -- outdev - -update_r /my/files /files
4810       $ growisofs -M /dev/dvd -- outdev - -update_r /my/files /files
4811       growisofs has excellent burn capabilities with DVD and BD.  It does not
4812       emulate session history on overwriteable media, though.
4813
4814   Adjust thresholds for verbosity, exit value and program abort
4815       Be quite verbous, exit 32 if severity "FAILURE" was encountered, do not
4816       abort prematurely but forcibly go on until the end of commands.
4817       $ xorriso ... \
4818        -report_about UPDATE \
4819        -return_with FAILURE 32 \
4820        -abort_on NEVER \
4821        ...
4822
4823   Examples of input timestrings
4824       As printed by program date: 'Thu Nov 8 14:51:13 CET 2007'
4825       The same without ignored parts: 'Nov 8 14:51:13 2007'
4826       The same as expected by date: 110814512007.13
4827       Four weeks in the future: +4w
4828       The current time: +0
4829       Three hours ago: -3h
4830       Seconds since Jan 1 1970: =1194531416
4831
4832   Incremental backup of a few directory trees
4833       This  changes  the  directory trees /projects and /personal_mail in the
4834       ISO image so that they become exact copies of their disk  counterparts.
4835       ISO  file objects get created, deleted or get their attributes adjusted
4836       accordingly.
4837       ACL, xattr, hard links and MD5 checksums will be recorded.  Accelerated
4838       comparison is enabled at the expense of potentially larger backup size.
4839       Only media with the expected volume ID or  blank  media  are  accepted.
4840       Files with names matching *.o or *.swp get excluded explicitly.
4841       When  done  with  writing  the new session gets checked by its recorded
4842       MD5.
4843       $ xorriso \
4844        -abort_on FATAL \
4845        -for_backup -disk_dev_ino on \
4846        -assert_volid 'PROJECTS_MAIL_*' FATAL \
4847        -dev /dev/sr0 \
4848        -volid PROJECTS_MAIL_"$(date '+%Y_%m_%d_%H%M%S')" \
4849        -not_leaf '*.o' -not_leaf '*.swp' \
4850        -update_r /home/thomas/projects /projects \
4851        -update_r /home/thomas/personal_mail /personal_mail \
4852        -commit -toc -check_md5 FAILURE -- -eject all
4853       To be used several times on the same medium, whenever an update of  the
4854       two  disk trees to the medium is desired. Begin with a blank medium and
4855       update it until the run fails gracefully due to lack of remaining space
4856       on the old one.
4857       This  makes  sense  if  the  full  backup  leaves substantial remaining
4858       capacity on media and if the expected changes are much smaller than the
4859       full backup.  To apply zisofs compression to those data files which get
4860       newly  copied  from  the  local  filesystem,  insert   these   commands
4861       immediately before -commit :
4862        -hardlinks perform_update \
4863        -find / -type f -pending_data -exec set_filter --zisofs -- \
4864       Commands  -disk_dev_ino  and  -for_backup  depend  on stable device and
4865       inode numbers on disk. Without them, an update run may use -md5 "on" to
4866       match  recorded MD5 sums against the current file content on hard disk.
4867       This is usually much  faster  than  the  default  which  compares  both
4868       contents directly.
4869       With  mount  option  -o  "sbsector="  on  GNU/Linux or -s on FreeBSD or
4870       NetBSD it is possible to access the session trees which  represent  the
4871       older  backup  versions. With CD media, GNU/Linux mount accepts session
4872       numbers directly by its option "session=".
4873       Multi-session media and most overwriteable media written by xorriso can
4874       tell  the  sbsectors  of  their sessions by xorriso command -toc.  Used
4875       after -commit the following command prints the matching  mount  command
4876       for the newly written session (here for mount point /mnt):
4877        -mount_cmd "indev" "auto" "auto" /mnt
4878       Commands  -mount_cmd  and  -mount  are  also  able to produce the mount
4879       commands for older sessions in the table-of-content. E.g. as superuser:
4880        # osirrox -mount /dev/sr0 "volid" '*2008_12_05*' /mnt
4881
4882       Above example produces a result similar to  -root /  -old-root  /  with
4883       mkisofs.   For  getting  the  session  trees  accumulated  in  the  new
4884       sessions, let all -update commands use a common  parent  directory  and
4885       clone it after updating is done:
4886        -update_r /home/thomas/projects /current/projects \
4887        -update_r /home/thomas/personal_mail /current/personal_mail \
4888        -clone /current /"$(date '+%Y_%m_%d_%H%M%S')" \
4889       The cloned tree will have a name like /2011_02_12_155700.
4890
4891       Sessions  on  multi-session media are separated by several MB of unused
4892       blocks.  So  with  small  sessions  the  payload  capacity  can  become
4893       substantially  lower  than the overall media capacity. If the remaining
4894       space on a medium does not suffice for  the  next  gap,  the  drive  is
4895       supposed to close the medium automatically.
4896
4897       Better  do  not  use your youngest backup for -update_r.  Have at least
4898       two media which you  use  alternatingly.  So  only  older  backups  get
4899       endangered  by  the  new  write  operation,  while the newest backup is
4900       stored safely on a different medium.
4901       Always have a blank medium ready to perform a full backup in  case  the
4902       update  attempt  fails  due  to  insufficient  remaining capacity. This
4903       failure will not spoil the old medium, of course.
4904
4905   Restore directory trees from a particular ISO session to disk
4906       This is an alternative to mounting the medium  and  using  normal  file
4907       operations.
4908       First check which backup sessions are on the medium:
4909       $ xorriso -outdev /dev/sr0 -toc
4910       Then  enable  restoring  of ACL, xattr and hard links. Load the desired
4911       session  and  copy  the  file  trees  to   disk.    Avoid   to   create
4912       /home/thomas/restored without rwx-permission.
4913       $ xorriso -for_backup \
4914        -load volid 'PROJECTS_MAIL_2008_06_19*' \
4915        -indev /dev/sr0 \
4916        -osirrox on:auto_chmod_on \
4917        -chmod u+rwx / -- \
4918        -extract /projects /home/thomas/restored/projects \
4919        -extract /personal_mail /home/thomas/restored/personal_mail \
4920        -rollback_end
4921       The  final  command  -rollback_end  prevents an error message about the
4922       altered image being discarded.
4923
4924   Try to retrieve blocks from a damaged medium
4925       $ xorriso -abort_on NEVER -indev /dev/sr0 \
4926        -check_media time_limit=1800 report=blocks_files \
4927        data_to="$HOME"/dvd_copy sector_map="$HOME"/dvd_copy.map --
4928       This can be repeated several times, if necessary with  -eject  or  with
4929       other    -indev    drives.    See    the   human   readable   part   of
4930       "$HOME"/dvd_copy.map   for   addresses   which   can   be    used    on
4931       "$HOME"/dvd_copy with mount option -o sbsector= or -s.
4932

FILES

4934   Program alias names:
4935       Normal  installation  of xorriso creates three links or copies which by
4936       their program name pre-select certain settings:
4937       xorrisofs starts xorriso with -as mkisofs emulation.
4938       xorrecord starts xorriso with -as cdrecord emulation.
4939       osirrox starts  with  -osirrox  "on:o_excl_off"  which  allows  further
4940       commands  to  copy  files  from  ISO image to disk and to apply command
4941       -mount to one or more of the existing ISO sessions.
4942
4943   Startup files:
4944       If not -no_rc is given as the first argument then xorriso  attempts  on
4945       startup to read and execute lines from the following files:
4946          /etc/default/xorriso
4947          /etc/opt/xorriso/rc
4948          /etc/xorriso/xorriso.conf
4949          $HOME/.xorrisorc
4950       The  files  are  read  in the sequence given above, but none of them is
4951       required  to  exist.  The  line  format  is  described   with   command
4952       -options_from_file.
4953       If   mkisofs   emulation  was  enabled  by  program  name  "xorrisofs",
4954       "mkisofs",    "genisoimage",    or    "genisofs",    then    afterwards
4955       -read_mkisofsrc is performed, which reads .mkisofsrc files. See there.
4956
4957   Runtime control files:
4958       The default setting of -check_media abort_file= is:
4959          /var/opt/xorriso/do_abort_check_media
4960
4961

ENVIRONMENT

4963       The following environment variables influence the program behavior:
4964       HOME is used to find startup files of xorriso and mkisofs.
4965       SOURCE_DATE_EPOCH  belongs to the specs of reproducible-builds.org.  It
4966       is supposed to be either undefined or to contain a decimal number which
4967       tells the seconds since january 1st 1970. If it contains a number, then
4968       it is used as time value to set the default  of  -volume  date  "uuid",
4969       sets  -boot_image  "any"  "gpt_disk_guid="  to  "volume_date_uuid", and
4970       -volume_date "all_file_dates" to "set_to_mtime",
4971       Startup  files  and  program  options  can  override  the   effect   of
4972       SOURCE_DATE_EPOCH.
4973
4974

SEE ALSO

4976       For the mkisofs emulation of xorriso
4977              xorrisofs(1)
4978
4979       For the cdrecord emulation of xorriso
4980              xorrecord(1)
4981
4982       For mounting xorriso generated ISO 9660 images (-t iso9660)
4983              mount(8)
4984
4985       Libreadline, a comfortable input line facility
4986              readline(3)
4987
4988       Other programs which produce ISO 9660 images
4989              mkisofs(8), genisoimage(8)
4990
4991       Other programs which burn sessions to optical media
4992              growisofs(1), cdrecord(1), wodim(1), cdrskin(1)
4993
4994       ACL and xattr
4995              getfacl(1), setfacl(1), getfattr(1), setfattr(1)
4996
4997       MD5 checksums
4998              md5sum(1)
4999
5000       On FreeBSD the commands for xattr and MD5 differ
5001              getextattr(8), setextattr(8), md5(1)
5002

BUGS

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

AUTHOR

5013       Thomas Schmitt <scdbackup@gmx.net>
5014       for libburnia-project.org
5015
5017       Copyright (c) 2007 - 2017 Thomas Schmitt
5018       Permission  is granted to distribute this text freely. It shall only be
5019       modified in sync with the technical properties of xorriso.  If you make
5020       use  of the license to derive modified versions of xorriso then you are
5021       entitled to modify this text under that same license.
5022

CREDITS

5024       xorriso is in part  based  on  work  by  Vreixo  Formoso  who  provides
5025       libisofs  together  with Mario Danic who also leads the libburnia team.
5026       Vladimir Serbinenko contributed the HFS+ filesystem  code  and  related
5027       knowledge.   Thanks  to Andy Polyakov who invented emulated growing, to
5028       Derek Foreman and Ben Jansens who once founded libburn.
5029       Compliments towards Joerg Schilling whose cdrtools served  me  for  ten
5030       years.
5031
5032
5033
5034                          Version 1.4.8, Sep 12, 2017               XORRISO(1)
Impressum