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.cfgthat 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.