The following patchset adds El Torito virtual image listing and extraction support in a manner similar to what 7-zip does, by creating a virtual "[BOOT]/" directory under root, and listing a bunch of "#-Boot-NoEmul.img" virtual images there.
The motivation for this stems from Rufus recently needing to perform El Torito image extraction through libcdio, due to Linux Mint 21.3 using a broken Rock Ridge symlink for their /EFI/Boot/bootx64.efi bootloaders on the ISO-9660 file system, whereas a working bootx64.efi could be found in the El Torito images (for more on this see https://github.com/linuxmint/linuxmint/issues/622). Note that because I don't have the scope to cover the full El Torito specs, we limit ourselves to listing a maximum of 8 virtual images, and only ones that have type Bootable and No Emulation. I did however add the capablity to enable/ disable virtual image support through a new ISO_EXTENSION_EL_TORITO extension bit and added the relevant El Torito testing to the test suite. You can also find a repository with these patches at: https://github.com/pbatard/libcdio/commits/eltorito/ The tests were validated against MinGW and Linux/gcc. Regards, /Pete Pete Batard (4): Add case insensitive _cdio_stricmp and _cdio_strnicmp function calls Add El Torito virtual boot image support Add --no-el-torito option to iso-info Add El Torito tests include/cdio/iso9660.h | 40 ++++++++++++++-- include/cdio/util.h | 6 +++ lib/driver/libcdio.sym | 2 + lib/driver/util.c | 29 ++++++++++++ lib/iso9660/iso9660_fs.c | 99 ++++++++++++++++++++++++++++++++++++++- src/iso-info.c | 14 ++++-- test/Makefile.am | 10 ++-- test/check_eltorito.sh | 57 ++++++++++++++++++++++ test/data/eltorito.iso | Bin 0 -> 55296 bytes test/data/eltorito_file | Bin 0 -> 512 bytes test/eltorito.right | 12 +++++ test/no_eltorito.right | 8 ++++ 12 files changed, 264 insertions(+), 13 deletions(-) create mode 100755 test/check_eltorito.sh create mode 100644 test/data/eltorito.iso create mode 100644 test/data/eltorito_file create mode 100644 test/eltorito.right create mode 100644 test/no_eltorito.right -- 2.43.0.windows.1