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