As a work colleague asked me about how I setup my "multi-live-system-thumbdrive": As a base I installed https://grml.org/ but I am sure another system using grub2 would also work. This installed grub on my USB thumbdrive with a rather simple main grub.cfg:
## grub2 configuration
source /boot/grub/header.cfg
insmod regexp
for config in /boot/grub/*_default.cfg ; do source "$config" ; done
for config in /boot/grub/*_options.cfg ; do source "$config" ; done
if [ -f /boot/grub/addons.cfg ] ; then
source "/boot/grub/addons.cfg"
fi
source /boot/grub/footer.cfg
# EOF
After line 13 I added:
if [ -f /live/custom.cfg ] ; then
source "/live/custom.cfg"
fi
then I put ISO images of other live systems into the folder /live, for example containing:
NetbootCD-11.1.4.iso systemrescue-9.06-amd64.iso
with my custom.cfg:
menuentry "NetbootCD 11.1.4.iso" {
set isofile="/live/NetbootCD-11.1.4.iso"
loopback loop $isofile
linux (loop)/boot/vmlinuz boot=isolinux iso-scan $isofile base norestore nolocal --
initrd (loop)/boot/nbinit4.gz
}
menuentry "SystemRescue 9.06 amd64.iso" {
set isofile="/live/systemrescue-9.06-amd64.iso"
loopback loop $isofile
linux (loop)/isolinux/rescue64 isoloop=$isofile docache
initrd (loop)/isolinux/initram.igz
}
How to get the right parameters for the "linux command"? Well, those depend on the individual systems you want to boot. But searching in the web for each usually finds some documentation, howto, blog posts, forum entries, etc. If all that fails then one can mount or extract the iso files and look at the boot system the live system uses.
Similar to a setup I once created using https://github.com/ventoy/Ventoy (which I haven't extensively tested, though).