A solution tested from Ubuntu 20.04 and later is to use Ventoy. Directly from the tool description:
Ventoy is an open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files.
With ventoy, you don't need to format the disk over and over, you just need to copy the image files to the USB drive and boot it. You can copy many iso files at a time and ventoy will give you a boot menu to select them.
Both Legacy BIOS and UEFI are supported in the same way.
Both MBR and GPT partition style are supported in the same way.
I have created a bootable USB where I have copied my ISO files simply with a copy/paste procedure, so that they are shown in a menu when the USB stick is used as a bootable drive. At the same time, I can use this USB also to store my personal data (they do not appear in the Ventoy Menu).
This means that when I use this USB stick as a bootable drive I have a menu like this (screenshot taken from the official website):

When I open it via Nautilus, it is like a normal USB stick where you can put your files (screenshot taken from my Ubuntu 20.04):

Ventoy does not come in a deb format or with an installation script, so you need to download Ventoy from the release page. If you download the .tar.gz
version (I'll refer to version 1.0.61 in the following examples), you can extract it by issuing in the terminal:
sudo tar xzf ventoy-1.0.61-linux.tar.gz -C /opt
Considering the meaning of /opt folder, I think that /opt
is the best choice in terms of destination folder.
Now, you need to give permissions to at least Ventoy2Disk.sh
and VentoyGUI.x86_64
:
sudo chmod +x /opt/ventoy-1.0.61/Ventoy2Disk.sh /opt/ventoy-1.0.61/VentoyGUI.x86_64
Now you are ready to use it. To create a bootable USB mapped as /dev/usb
(always use lsblk
to identify correctly your USB disk!) with a GPT partitioning, you can run
sudo bash /opt/ventoy-1.0.61/Ventoy2Disk.sh -I -g /dev/sdb
Following, the list of parameters provided by Ventoy2Disk.sh
:
Ventoy2Disk.sh CMD [ OPTION ] /dev/sdX
CMD:
-i install ventoy to sdX (fail if disk already installed with ventoy)
-I force install ventoy to sdX (no matter installed or not)
-u update ventoy in sdX
OPTION: (optional)
-r SIZE_MB preserve some space at the bottom of the disk (only for install)
-s enable secure boot support (default is disabled)
-g use GPT partition style, default is MBR style (only for install)
Otherwise, you can run Ventoy with a graphical interface using:
sudo /opt/ventoy-1.0.61/VentoyGUI.x86_64
Further details are available in Ventoy Installation.
Another interesting source is this article from RedHat.com: Creating a multi-boot Linux desktop system