Skip to content

Instantly share code, notes, and snippets.

@okurz
Created January 17, 2023 10:58
Show Gist options
  • Save okurz/294f2dbd274e9ab3d2b944dba605f2fb to your computer and use it in GitHub Desktop.
Save okurz/294f2dbd274e9ab3d2b944dba605f2fb to your computer and use it in GitHub Desktop.

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.

@Martchus
Copy link

Similar to a setup I once created using https://github.com/ventoy/Ventoy (which I haven't extensively tested, though).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment