Boot Multiple ISO Files directly from USB using GRUB2 from Linux. Here is one way to create a Multiboot USB Flash Drive (Multiboot ISOs) from a running Linux environment. Eventually, you will want to pick up a larger external storage device in order to include every bootable ISO entry. Here are some of the Fastest USB Flash Drives we have tried and personally use.
More Grub2 Bootable ISO files will be added to the grub.cfg file as I find time to test them. Contact me to submit your working Bootable Linux ISO grub.cfg entries for inclusion.
How to Multi Boot ISO Files from USB using GRUB2
I. Format your USB Flash Drive to use a Single Partition
The following assumes you’re already up and running from a Linux desktop with your flash drive plugged in. Ubuntu was used for this tutorial. Most Debian based systems will also work.
1. First you’ll need to open a terminal. To do this press ctrl+alt+t
2. To gain root access, type the following and then press Enter.
3. Next, to find out which device belongs to your usb, type
4. Note which device belongs to your usb flash drive.
5. Now you’ll need to allow fdisk to access the device.
WARNING any data on the partition will be wiped clean in step 6.
To allow fdisk access to modify the device, type the following (making sure to replace x with your actual usb device).
6. Next, type
d (to delete the existing partition)
7. Then, type
n (to create a new partition)
p (for primary partition)
1 (to create the first partition)
Press Enter (to use the first cylinder)
Press Enter again (to use the default value as the last cylinder)
a (to mark the first partition active “bootable”)
t (for partition type)
c (to use fat32 partition)
w (to write the changes and close fdisk)
II. Create a Fat32 Filesystem on the USB Flash Drive
For the following steps, replace x with your usb device.
1. First, you might need to unmount the mounted partition (it may or may not be mounted).
To unmount, type the following and press Enter.
2. Then to format the partition as fat32, type
mkfs.vfat -F 32 -n MULTIBOOT /dev/sdx1
III. Install Grub2 on the USB Flash Drive
Old versions of grub used
while current versions use
If you use the wrong syntax, you will receive an error stating “Installation is impossible. Aborting”
Again, for the following steps replace x with your actual usb device.
1. First, you need to remount your usb device partition to make it accessible to Grub for install.
To remount the partition, type
mkdir /mnt/USB && mount /dev/sdx1 /mnt/USB
2. Next, use ONE of the steps below to install Grub2 on the USB device.
a.) If Grub2 64 bit UEFI x86_64-efi is used on the Linux host, then type
grub-install --force --removable --no-floppy --target=x86_64-efi --boot-directory=/mnt/USB/boot --efi-directory=/mnt/USB
b.) If Grub2 32 bit UEFI i386-efi is used on the Linux host, then type
grub-install --force --removable --no-floppy --target=i386-efi --boot-directory=/mnt/USB/boot --efi-directory=/mnt/USB
c.) If Grub2 BIOS i386-pc is used on the Linux host, then type
grub-install --force --removable --no-floppy --target=i386-pc --boot-directory=/mnt/USB/boot /dev/sdx
3. Then you’ll want to change to the grub directory so that you can add a configuration file.
To change to the grub directory, type
4. Finally, to download a Multiboot ISO grub2 configuration file, type
This example configuration uses grub2 loopback mounting for the ISO files.↑
IV. Adding the Bootable ISO files
1. First, you’ll want to change to the root directory of your USB.
This step assumes your USB is still mounted… else repeat section III. (part 1)
To change to the root directory of the mounted USB, type
2. Next, from the tabs below, simply follow the instructions for each ISO Distro you would like to add.
wget "http://releases.ubuntu.com/groovy/ubuntu-20.10-desktop-amd64.iso" -O ubuntu.iso
Alternately you can rename an existing ISO to ubuntu.iso and copy it to the USB device.
wget "https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/debian-live-10.6.0-amd64-gnome.iso" -O debian.iso
wget "http://mirrors.gigenet.com/linuxmint/iso/stable/20/linuxmint-20-cinnamon-64bit.iso" -O linuxmint.iso
Or rename your existing ISO to linuxmint.iso and copy it to your drive.
wget "downloads.sourceforge.net/project/dban/dban/dban-2.3.0/dban-2.3.0_i586.iso" -O dban.iso
Or rename your existing ISO to dban.iso and copy it to your flashdrive.
wget "distro.ibiblio.org/pub/linux/distributions/tinycorelinux/2.x/release/tinycore-current.iso" -O tinycore.iso
Or rename your existing ISO to tinycore.iso and copy it to your external drive.
To unzip, type the following in the terminal, and press Enter.
Then to copy, type the following in the terminal, and press Enter.
cp memtest86+-5.31b.bin memtest86+.bin
Or extract the contents of your existing memtest86+ zip file. Rename the bin to memtest86+.bin and copy it to your USB device
Adding an Unlisted ISO: To try ISO Files that are not yet listed, use the existing menuentry examples in
/boot/grub/grub.cfg and append any options normally found in the distributions syslinux.cfg file on the “append” line to the “linux” line of the menu entry.
Please inform me of entries you get to work and I will add them to the list, so that others may benefit as well.
V. Last Step… Test to ensure your USB Device Boots into Grub2
Reboot your Computer, and enter your BIOS or Boot Menu. Set the Boot Order to boot from the USB Device. Save your changes and Reboot. If all goes well, you should be presented with a Grub2 Boot Menu.