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.