I often found myself needing to create a bootable USB stick with some Linux distro, either to install and try it, or to use it live for specific purpose, like using Tails Linux to generate/restore a PGP key and install it on the smart card, or using ParrotSec for testing or HTB challenges.
I know it was possible to create a hard drive with multiple OS in different partitions, so I thought, it has to be possible to do the same thing using a USB drive.
How to create multi-distro bootable Linux stick
Unless you are into GRUB, and want to learn more about it and feel more comfortable fixing GRUB issues by yourself.
Don’t.
After spending days, looking into the grub configurations for running Rocky Linux and Proxmox (to no avail). I’m going to save you some deep rabbit hole dive.
Short answer, if you will only work with images less than 4GB, then it can* work, but if you are going to work with bigger images that you need live (Parrot Security 6+GB) it won’t work.
Long answer, I didn’t find a lot of info online on how to create a multi-partition multi-boot USB stick,
with the efi
“boot” partition formatted as fat32
and the “data/iso” partition formatted to anything else.
Tools like glim (which is amazing btw), and uGRUB only work with a single fat32
partition.
Tutorials like this (which is amazing btw and mentioning how to work with multi-partition USB sticks,
including with ext4
), works too. But never stable enough.
I have seen the same setup randomly failing while being used in live mode. I have seen the same image work on only one of my machines (the old one that have HDD) and fails on the others machines.
To quote the documentation:
If you have any problem to boot, for instance stuck at the GRUB prompt before the menu, try re-installing. If you have other exotic GRUB errors, such as garbage text read instead of the configuration directives, try re-formatting your USB memory from scratch. I’ve seen weird things happen…
Why?
At this point, I can’t tell you why an image would work or not. I can’t tell you how to boot Rocky Linux, or what is the required parameters to run proxmox linux.
All I can tell you, is that it took me way too long to figure out, that it’s not stable enough to run reliably. There might be a reason why it fails on the machine with the SSD, and why it couldn’t insert `thinkpad_acpi’ module, but for the original purpose of having a convinient way of setting up linux and updating images, I will stick with having to run
$ diskutil list
$ diskutil eraseDisk JHFS+ Untitled /dev/diskX
$ diskutil unmountDisk /dev/diskX
$ sudo dd bs=4M if=path/to/image.iso of=/dev/diskX status=progress oflag=sync
and waiting for few minutes, for now.