libisofs is a library to create an ISO-9660 filesystem with extensions like Rock Ridge or Joliet. It is also a full featured ISO-9660 editor, allowing you to modify an ISO image or multisession disc, including file addition/removal, change of file names and attributes, etc.
ISO-9660 images can be made bootable from CD, DVD, or BD via an El Torito boot record and appropriate boot image files from boot managers like GRUB, ISOLINUX, or system specific boot loaders. It is also possible to install a Master Boot Record and a GUID Partition Table for hard-disk-like media, e.g. USB memory sticks. Additional to PC BIOS and UEFI, some other more exotic boot sector types are supported. For an overview of boot record combinations see wiki page about xorriso -report_system_area.
If desired,the MBR can bear a first partition with non-zero start address. In this case, the image bears a second superblock and file tree which can be used to mount the image from the device file of the first partition. See Partition Offset.
libisofs supports the extension AAIP which can store ACLs and xattr in ISO-9660 filesystems. If linked with zlib then it supports zisofs compression which is transparently uncompressed by some Linux kernels. It is possible to have data file content compressed to gzip format or to have it filtered by an external process.
The code is maintained in a git repository at Lovely HQ. You can download it with:
git clone https://dev.lovelyhq.com/libburnia/libisofs.git
libisoburn: emulates ISO 9660 multi-session on overwriteable media, coordinates libisofs and libburn.
xorriso: creates, loads, manipulates and writes ISO 9660 filesystem images with Rock Ridge extensions.
xfburn: is an easy to use burning software for the Xfce desktop environment (but will work with others).