xorrisofs: SystemArea

 
 5.9 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 partiton 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
      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 of type 0xef in MBR. 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.
 --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.
 --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.
 -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". This code matters only
      with MBR, not with GPT.
      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.