Need help creating a multiboot Linux USB, with the grub.cfg file

coderlen

Member
Joined
Jul 23, 2020
Messages
49
Reaction score
26
Credits
474
I am creating a multiboot USB to contain 10 to 15 Linux distros I would like to try, before installing. I have looked at a number of websites and tried their suggestions. My USB does boot to a menu, and some of the options do work. Others do not.

I have looked at Ventoy, Multiboot, and a few other tools. They all have limitations and do not support some of the distros I would like to have on my multiboot USB.

There is of necessity quite a bit of difference in the manner of coding entries in the USB's grub.cfg file. I got a couple of them right, but the others are not coded correctly.

I have done a little reading, and I know that you are not supposed to edit the grub.cfg file, you are supposed to do update-grub and let it take care of all the details. However, this is not for my installed systems on the laptop, it's for the USB drive.

Here is the grub.cfg file currently on my multiboot USB:

Code:
Code:
# Multiboot USB drive GRUB configuration file

# By:~ https://www.pcsuggest.com

set timeout=10
set default=0
insmod loopback

#menuentry "Start Linux Mint 20 Cinnamon 64-bit" {
# set gfxpayload=keep
# linux /casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=${iso_path} quiet splash --
# initrd /casper/initrd.lz
#}

#menuentry "Start Linux Mint 20 Cinnamon 64-bit" {
##set iso_file=/iso_boot/linuxmint-20-cinnamon-64bit.iso
# set gfxpayload=keep
# linux /casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=${iso_path} quiet splash --
# initrd /casper/initrd.lz
#}

# Mint
for isofile in $isopath/linuxmint/linuxmint-*.iso; do
if [ ! -e "$isofile" ]; then break; fi
regexp \
--set 1:isoname \
--set 2:version \
--set 3:variant \
--set 4:arch \
"^${isopath}/linuxmint/(linuxmint-([^-]+)-([^-]+)-([^-]+)\.iso)\$" "${isofile}"
menuentry "Linux Mint ${version} ${arch} ${variant}" "${isofile}" "${isoname}" --class linuxmint {
set isofile=$2
set isoname=$3
echo "Using ${isoname}..."
loopback loop $isofile
linux (loop)/casper/vmlinuz file=/cdrom/preseed/linuxmint.seed boot=casper iso-scan/filename=${isofile} quiet splash --
initrd (loop)/casper/initrd.lz
}
done

menuentry "Debian GNU/Linux Live (kernel 4.19.0-10-amd64)" {
linux /live/vmlinuz-4.19.0-10-amd64 boot=live components splash quiet "${loopback}"
initrd /live/initrd.img-4.19.0-10-amd64

menuentry "neon-user-20200806-1119" {
loopback loop /iso_boot/neon-user-20200806-1119.iso
set gfxpayload=keep
linux (loop)/casper/vmlinuz boot=casper apparmor=0 quiet splash iso-scan/filename=/iso_boot/neon-user-20200806-1119.iso noeject noprompt --
initrd (loop)/casper/initrd.lz
}

menuentry "Debian GNU/Linux Live (kernel 4.19.0-10-amd64)" {
linux /live/vmlinuz-4.19.0-10-amd64 boot=live components splash quiet "${loopback}"
initrd /live/initrd.img-4.19.0-10-amd64
}

## For booting GNU/Linux on /dev/sda1 (U.S.B. flash drive partition)
#title Puppy Linux
#rootnotify (hd0,0)
#kernel (hd0,0)/vmlinuz pmedia=usbflash
#initrd (hd0,0)/initrd.gz

#UUID="E0E2-D141"

#menuentry "bionicpup64-8.2.0-uefi" {
#set iso_file=/iso_boot/bionicpup64-8.2.0-uefi.iso
#loopback loop $iso_file
#linux (loop) (hd0,0)/vmlinuz boot=live pmedia=usbflash noconfig=sudo username=root noswap noautomount iso-scan/filename=/iso_boot/bionicpup64-8.2.0-uefi.iso
#initrd (loop) (hd0,0)/initrd.gz
#}

#menuentry 'Tahr Puppy 6.0' {
#search --no-floppy --fs-uuid --set 3ffc6bc0-4379-4449-bbdf-4ae47c1cfdb5
#linux /tahr6.0frugal/vmlinuz pmedia=atahd psubdir=tahr6.0frugal
#initrd /tahr6.0frugal/initrd.gz
#}

#title Puppy Linux 6.0 frugal in sda5 dir tahr6.0frugal
#rootnoverify (hd0,4)
#kernel /tahr6.0frugal/vmlinuz pmedia=atahd psubdir=tahr6.0frugal
#initrd /tahr6.0frugal/initrd.gz

#linux /boot/puppy-boot-files/vmlinuz pmedia=usbflash noconfig=sudo username=root noswap noautomount iso-scan/filename=/iso_boot/bionicpup64-8.2.0-uefi.iso
menuentry "bionicpup64-8.2.0-uefi" {
set iso_file=/iso_boot/bionicpup64-8.2.0-uefi.iso
loopback loop $iso_file search
linux /boot/puppy-boot-files/vmlinuz pmedia=usbflash noconfig=sudo username=root noswap noautomount iso-scan/filename=/boot/puppy-boot-files/puppy_bionicpup64_8.0.sfs
initrd /boot/puppy-boot-files/initrd.gz
}

menuentry "debian-live-10.5.0-amd64-kde" {
set iso_file=/iso_boot/debian-live-10.5.0-amd64-kde.iso
loopback loop $iso_file
linux (loop)/d-i/vmlinuz boot=live components splash quiet
initrd (loop)/d-i/initrd.gz
}
A lot of the code is commented out. You'll see some dumb stuff in there, because I don't have a solid understanding of grub entries.

What I need is some coaching to get one or two of the non-working entries working. That involves not only grub entry coding, but analyzing and collecting grub entries to enter for each individual distro. I think this is why I can't get a tool which can boot the distros I want, because they are so diverse and hard to find.

Here is a summary of the grub.cfg entries, and the result of choosing each option.

neon-user ------------- works perfectly, brings up KDE Neon from the live USB, and I can even connect wirelessly to the Internet and print documents

Debian GNU/Linux Live --- Fails with an error: file '/live/vmlinuz-4.19.0-10-amd64' not found.

bionicpup (Bionic Puppy) - Fails with an error: sdb /puppy_bionicpup64_8.0.sfs not found.

debian-live-10.5.0-amd64-kde --- Successful, but an install screen appears. Obviously, this is not what I really want. I want to try debian off a live USB and not install it yet. So this entry works, it just doesn't work in the way I want it to.

I am attaching screen prints of the Grub boot entries from the USB, with the corresponding screen prints of each entry, so that you can see what is happening.

I would appreciate any advice and assistance you can give me, so that I can be skilled enough to edit the USB's grub.cfg file to live-boot any Linux distro I choose. Thanks so much!
 

Attachments

  • IMG_20200816_184120160 (1).jpg
    IMG_20200816_184120160 (1).jpg
    280.2 KB · Views: 282
  • IMG_20200816_184315060 (1).jpg
    IMG_20200816_184315060 (1).jpg
    331.4 KB · Views: 308
  • IMG_20200816_184353179 (1).jpg
    IMG_20200816_184353179 (1).jpg
    270.5 KB · Views: 296
  • IMG_20200816_184400856 (1).jpg
    IMG_20200816_184400856 (1).jpg
    203.5 KB · Views: 307
  • IMG_20200816_184408765 (1).jpg
    IMG_20200816_184408765 (1).jpg
    297.3 KB · Views: 333
  • IMG_20200816_184427747 (1).jpg
    IMG_20200816_184427747 (1).jpg
    409.7 KB · Views: 295
  • IMG_20200816_184446530 (1).jpg
    IMG_20200816_184446530 (1).jpg
    312.3 KB · Views: 303
  • IMG_20200816_184501066 (1).jpg
    IMG_20200816_184501066 (1).jpg
    367.8 KB · Views: 312
Last edited:

Members online


Top