background(skip to header=problem if you're expert on LiveUSBs, ISOs, GRUB2, etc)I'm setting up a multiboot/multiISO Linux LiveUSB as detailed here, which I intend for use on multiple hosts (I.e., any arbitrary PC I decide I need to boot). The process seems straightforward:Setup your development host: I.e., the box you'll use to create your LiveUSB, not that you'll boot with the LiveUSB.Get/make a USB drive thatis sufficiently large for all the ISOs you want to bootis bootablehas GRUB2 installedPut desired ISOs on it, in an easily-specified location.Edit /boot/grub/grub.cfg:Set global variables @ top (i.e., above the menuentrys), esp rootCreate one or more menuentrys for each ISO.The main problem is, for each ISO, creating one or more menuentrys that appropriately boots it. This seems straightforward:Mount the ISO:Inspect the ISO's structure. Get its paths to its grub.cfg, initrd*, vmlinuz (or whatever it calls its GRUB config, initial RAMdisk image, and kernel image)Copy from the ISO's grub.cfg to your menuentry(s)Make each menuentryset the boottime path to the ISOcreate a loopback device using the ISOuse a path to the loopback device instead of the path given in the ISO's grub.cfg, e.g.,initrd /casper/initrd.lz -> initrd (loop)/casper/initrd.lzlinux /live/vmlinuz -> linux (loop)/live/vmlinuzTest your LiveUSB:While still mounted on your development host: grub-script-check for mental health :-)umount from your development hostfor each test host:attach to powered-down test hostboot!problemMany ISOs have grub.cfgs that want to configure video before doing the real boot. They all do it slightly differently, so I put each ISO's video code inside its menuentry(s). However the ISO grub.cfgs I've worked with so far seem to do it more-or-less like this:if loadfont /path/to/font/file ; then  set gfxmode=auto  insmod efi_gop  insmod efi_uga  insmod gfxterm  terminal_output gfxtermfi# usually followed by more menu and background tweakingThe good news is, I can determine the boottime path to the fontfile--i.e., I can make loadfont happy. The bad news is, once inside the if block,only 1 of the modules loads.I get the same problem with ISOs that use Casper (e.g., Ubuntu-based Mint, LMDE1) or Debian Live (e.g., Clonezilla, LMDE2).How do I make GRUB find all the modules?example codeNote that Clonezilla's in-ISO /boot/grub/grub.cfg just forwards to its /EFI/boot/grub.cfg:# This file is for compatibility to Ubuntu Linux's uEFI secure boot. # The real config file for grub is /EFI/boot/grub.cfg.configfile /EFI/boot/grub.cfgMy LiveUSB's /boot/grub/grub.cfg (outside of all the ISOs) contains code like# isofile_abspath==path to the ISO from the root of my LiveUSB.set isofile_abspath='/ISOs/clonezilla-live-2.4.2-10-amd64.iso'set root=(hd0,1)loopback loop ($root)$isofile_abspath...set clonezilla_prefix='(loop)/EFI/boot'...set loadfont_fp=$clonezilla_prefix/unicode.pf2echo -e About to 'loadfont $loadfont_fp' ...if loadfont $loadfont_fp ; then  set gfxmode=auto  echo -e 'about to `insmod efi_gop` ...'  insmod efi_gop  echo -e 'about to `insmod efi_uga` ...'  insmod efi_uga  echo -e 'about to `insmod gfxterm` ...'  insmod gfxterm  echo -e 'about to `terminal_output gfxterm` ...'  terminal_output gfxtermfiecho -e 'Done loadfont.'Results at boottime:About to 'loadfont (loop)/EFI/boot/unicode.pf2' ...about to `insmod efi_gop` ...error: file not found.about to `insmod efi_uga` ...error: file not found.about to `insmod gfxterm` ...about to `terminal_output gfxterm` ...error: no suitable mode foundDone loadfont.
how to make GRUB find modules on multiboot Linux LiveUSB?
boot;grub2;usb drive;live usb