xorriso: Extras

 
 6 Rock Ridge, POSIX, X/Open, El Torito, ACL, xattr
 **************************************************
 
 *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.
 This is what 'xorriso' uses for a decent representation of the disk
 files within the ISO image.  'xorriso' produces Rock Ridge information
 by default.  It is strongly discouraged to disable this feature.
 
    'xorriso' is not named "porriso" because POSIX only guarantees 14
 characters of filename length.  It is the X/Open System Interface
 standard XSI which demands a file name length of up to 255 characters
 and paths of up to 1024 characters.  Rock Ridge fulfills this demand.
 
    An *El Torito* boot record points the BIOS bootstrapping facility to
 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.
 Most bootable GNU/Linux CDs are equipped with ISOLINUX or GRUB boot
 images.  'xorriso' is able to create or maintain an El Torito object
 which makes such an image bootable.  For details see command
 -boot_image.
 It is possible to make ISO images bootable from USB stick or other
 hard-disk-like media.  Several options install a *MBR* (Master Boot
 Record), It may get adjusted according to the needs of the intended boot
 firmware and the involved boot loaders, e.g.  GRUB2 or ISOLINUX. A MBR
 contains boot code and a partition table.  The new MBR of a follow-up
 session can get in effect only on overwriteable media.
 MBR 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.
 Emulation -as mkisofs 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.
 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.
 There is support for further facilities: MIPS Big Endian (SGI), MIPS
 Little Endian (DEC), SUN SPARC, HP-PA. Those are mutually not combinable
 and also not combinable with MBR, GPT, or APM.
 
    *ACL* are an advanced way of controlling access permissions to file
 objects.  Neither ISO 9660 nor Rock Ridge specify a way to record ACLs.
 So libisofs has introduced a standard conformant extension named AAIP
 for that purpose.  It uses this extension if enabled by command *-acl*.
 AAIP enhanced images are supposed to be mountable normally, but one
 cannot expect that the mounted filesystem will show and respect the
 ACLs.  For now, only 'xorriso' is able to retrieve those ACLs.  It can
 bring them into effect when files get restored to an ACL enabled file
 system or it can print them in a format suitable for tool setfacl.
 Files with ACL show as group permissions the setting of entry "mask::"
 if that entry exists.  Nevertheless the non-listed group members get
 handled according to entry "group::".  When removing ACL from a file,
 'xorriso' brings "group::" into effect.
 Recording and restoring of ACLs from and to local files works currently
 only on GNU/Linux and FreeBSD.
 
    *xattr* (aka EA, or extattr) are pairs of name and value which can be
 attached to file objects.  AAIP is able to represent them and 'xorriso'
 can record and restore pairs which have names out of the user namespace.
 I.e.  those which begin with "user.", like "user.x" or "user.whatever".
 Name has to be a 0 terminated string.  Value may be any array of bytes
 which does not exceed the size of 4095 bytes.  xattr processing happens
 only if it is enabled by command *-xattr*.
 As with ACL, currently only 'xorriso' is able to retrieve xattr from
 AAIP enhanced images, to restore them to xattr capable file systems, or
 to print them.
 Recording and restoring of xattr from and to local files works currently
 only on GNU/Linux and FreeBSD, where they are known as extattr.