Multiboot USB

Manjaro ISO

From time to time the question is raised on how an ISO is written to USB – especially large capacity USB.

Why can’t I use the remaining space on my 32GB USB?

This is because Manjaro ISO is a ISO9660 cd-rom file system and such filesystem is immutable – you cannot change it. As such a 2GB ISO makes it impossible to use the excess space for anything – it just sits there unused.

So what can we do?

Manjaro on a stick

One way of doing this is creating a Manjaro installation on USB with an added script for booting ISO directly from Grub.

The next section will describe a stand-alone solution based on the same script used in above article.

Multi Boot USB

With the script it is insanely easy to create a stick that boots a variety of ISOs. And Arch based ISOs work extremely well – including Manjaro.

You can download the collection of scripts as an archive or your can clone from Github – what ever you prefer. This guide uses git.

Install git – if you don’t have it

❯ sudo pacman -Syu git

Clone the repo

❯ git clone https://github.com/aguslr/multibootusb
Cloning into 'multibootusb'...
...

Navigate into the repo folder

❯ cd multibootusb

To get an idea of what the script is doing

❯ ./makeUSB.sh -h
Script to prepare multiboot USB drive
Usage: makeUSB.sh [options] device [fs-type] [data-size]

 device                         Device to modify (e.g. /dev/sdb)
 fs-type                        Filesystem type for the data partition [ext3|ext4|vfat|ntfs]
 data-size                      Data partition size (e.g. 5G)
  -b,  --hybrid                 Create a hybrid MBR
  -c,  --clone                  Clone Git repository on the device
  -e,  --efi                    Enable EFI compatibility
  -i,  --interactive            Launch gdisk to create a hybrid MBR
  -h,  --help                   Display this message
  -s,  --subdirectory     Specify a data subdirectory (default: "boot")

Remove USB and list devices

❯ lsblk -la 

Insert USB and do it again – note the added device and create the USB – using vfat makes the device visible in Windows too.

The following commands will assume your device is /dev/sdl – replace the device name with the device name from your system.

❯ sudo ./makeUSB.sh -b -c -e /dev/sdl vfat

Download a Manjaro ISO, open the device in your file manager and copy a Manjaro ISO to the folder /boot/isos on the USB. Use the eject function of your file manager. You can also do it from terminal.

IMPORTANT: Do not remove the device until all buffers are flushed to disk.

❯ mkdir ~/usb-multiboot
❯ sudo mount /dev/sdl3 ~/usb-multiboot
❯ cp ~/Downloads/manjaro*.iso ~/usb-multiboot/boot/isos
❯ sync
❯ sudo umount ~/usb-multiboot
❯ sync
  • Boot your system from the USB
  • Select Multiboot >
  • Wait while configuration is read
  • The more ISOs the longer read time

Tips

The stick presumably supports more than 100 different distributions – so the stick takes a while to boot – because of the dynamic nature of including the ISOs.

To speed up the initial USB boot – you can remove the folders from /boot/grub/mbusb.d/ you don’t intend to use.

Issues

If you encounter any issues with the script or the configuration files for booting an ISO – please create an issue at the projects Github page.