bootable-iso
bootable-iso copied to clipboard
Bootable USB disk that lets you choose an ISO image
Bootable USB disk that lets you choose an ISO image
This is basically a newer iteration on https://mg.pov.lt/blog/booting-iso-from-usb.html
Creating a bootable USB disk that lets you boot any Ubuntu ISO image:
-
Mount a USB disk with a sufficient amount of free space. Note the device name (e.g.
/dev/sdb
) and the mount point (e.g./media/mg/MG-FLASH
). -
Install GRUB:
sudo grub-install --target=i386-pc \ --root-directory=/media/mg/MG-FLASH /dev/sdb
(you may have to also use
--force
) -
Perhaps also install an UEFI bootloader
sudo grub-install --target=x86_64-efi --removable \ --root-directory=/media/mg/MG-FLASH \ --efi-directory=/media/mg/MG-FLASH /dev/sdb
(be very careful not to forget
--removable
, or it'll overwrite your EFI boot variables and your host machine will fail to boot!) -
Download Ubuntu ISO images you want
cd /media/mg/MG-FLASH git clone https://github.com/mgedmin/ubuntu-images ubuntu cd ubuntu # maybe edit the Makefile to pick what Ubuntu versions and variants you want make verify-all
-
Check out this repository (this is tricky because git doesn't want to check out things into an existing non-empty directory)
git clone https://github.com/mgedmin/bootable-iso /tmp/bootable-iso mv /tmp/bootable-iso/.git /media/mg/MG-FLASH/boot/grub/ mv /tmp/bootable-iso/* /media/mg/MG-FLASH/boot/grub/
-
Run
make -C /media/mg/MG-FLASH/boot/grub/
to build agrub.cfg
that matches your Ubuntu images -
Test that things work
Testing with KVM
-
Find the device name
udisksctl status
-
Run
sh kvmboot /dev/sdb1
-
Record the test results in mkgrubcfg.py
Other resources
-
https://help.ubuntu.com/community/Grub2/ISOBoot
-
You may be interested in Ventoy, which seems a much more polished and capable solution for this kind of thing.