Provided by: xorriso_1.5.6-1.1ubuntu3_amd64 bug

NAME

       xorrisofs -  Emulation of ISO 9660 program mkisofs by program xorriso

SYNOPSIS

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

DESCRIPTION

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

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

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

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

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

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

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

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

OPTIONS

       Image loading:

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

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

       -prev-session disk_path
              Alias of -M.

       -dev disk_path
              Alias of -M.

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

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

       Settings for file insertion:

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

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

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

       -follow-links
              Alias of -f.

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

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

       -exclude
              Alias of -m.

       -x
              Alias of -m.

       -old-exclude
              Alias of -m.

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

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

       -transparent-compression
              Alias of -z.

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

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

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

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

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

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

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

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

       Settings for image production:

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

       -output disk_path
              Alias of -o.

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

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

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

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

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

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

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

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

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

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

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

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

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

       Settings for standards compliance:

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

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

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

       -untranslated-filenames
              Alias of -U.

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

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

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

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

       -omit-period
              Alias of -d.

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

       -full-iso9660-filenames
              Alias of -l.

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

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

       -omit-version-number
              Alias of -N.

       Settings for standards extensions:

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

       -rock
              Alias of -R.

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

       -rational-rock
              Alias of -r.

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

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

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

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

       -disable-deep-relocation
              Alias of -D.

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

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

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

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

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

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

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

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

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

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

       -joliet
              Alias of -J.

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

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

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

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

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

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

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

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

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

       Settings for file hiding:

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

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

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

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

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

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

       ISO image ID strings:

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

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

       -volid text
              Alias of -V.

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

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

       -publisher text
              Alias of -P.

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

       -appid text
              Alias of -A.

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

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

       -preparer text
              Alias of -p.

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

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

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

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

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

       El Torito Bootable ISO images:

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

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

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

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

       -eltorito-boot iso_rr_path
              Alias of -b.

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

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

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

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

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

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

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

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

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

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

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

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

       -eltorito-catalog iso_rr_path
              Alias of -c.

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

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

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

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

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

       -generic-boot disk_path
              Alias of -G.

       --embedded-boot disk_path
              Alias of -G.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Character sets:

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

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

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

       Jigdo Template Extraction:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Miscellaneous options:

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

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

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

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

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

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

       -v
              Enable the output of informational program messages.

       -verbose
              Alias of -v.

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

EXAMPLES

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FILES

   Startup files:
       If  not  --no_rc  is  given  as the first argument then xorrisofs attempts on startup to read and execute
       lines from the following files:
          /etc/default/xorriso
          /etc/opt/xorriso/rc
          /etc/xorriso/xorriso.conf
          $HOME/.xorrisorc
       The files are read in the sequence given here, but none of them is required to exist. The lines  are  not
       interpreted as xorrisofs options but as generic xorriso commands. See man xorriso.

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

ENVIRONMENT

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

SEE ALSO

       For generic xorriso command mode
              xorriso(1)

       For the cdrecord emulation of xorriso
              xorrecord(1)

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

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

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

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

       MD5 checksums
              md5sum(1)

       On FreeBSD the commands for xattr and MD5 differ
              getextattr(8), setextattr(8), md5(1)

BUGS

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

AUTHOR

       Thomas Schmitt <scdbackup@gmx.net>
       for libburnia-project.org

COPYRIGHT

       Copyright (c) 2011 - 2023 Thomas Schmitt
       Permission is granted to distribute this text freely.  It  shall  only  be  modified  in  sync  with  the
       technical  properties  of  xorriso. If you make use of the license to derive modified versions of xorriso
       then you are entitled to modify this text under that same license.

CREDITS

       xorrisofs is in part based on work by Vreixo Formoso who provides libisofs together with Mario Danic  who
       also  leads  the  libburnia  team.   Vladimir Serbinenko contributed the HFS+ filesystem code and related
       knowledge.
       Compliments towards Joerg Schilling whose cdrtools served me for ten years.

                                           Version 1.5.6, Jun 07, 2023                              XORRISOFS(1)