Skip to content

Using the MH-USB Disk

Organisation of the MH-USB Disk

The files on the MH-USB disk are arranged as follows:

MH-USB/
       /OS/      <-- Contains OS Images
       /Tools/   <-- Contains some tools and software
       /RPi/     <-- OS Images for the Raspberry Pi
       /ventoy/  <-- Config files for the Ventoy/Grub2 bootloader

The MH-USB partition of the USB disk is formatted with exFAT. This enables universal access to the data on any operating system that supports exFAT.

Booting on physical computer

You boot the USB disk on a physical computer (dekstop, laptop, single-board computer or laptop) by simply plugging it in and choosing it as a boot device.

The MH-USB runs the GRUB2 boot loader and will boot just fine with a "legacy" BIOS or UEFI BIOS.

The USB make would show up as a USB disk called "Generic Flash Drive":

Just choose it as the boot device and you will be greeted by the MH-USB boot screen.

Booting on a virtual machine

You can also boot the USB using a virtual machine. On a GNU/Linux system, one can use QEMU to boot the USB.

First check the device name assigned to the USB disk. A quick way to check it out would be to use the lsblk command like this:

$ lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d" " -f1
NAME="sdb"  

The command above will list out all the USB disks attached to your computer. (Actually, all "HOTPLUG" storage devices - which includes USB storage.)

Booting a virtual machine with SeaBIOS

To boot the USB disk using QEMU + SeaBIOS, install the qemu package from your GNU/Linux OS repository and then run:

$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2`
$ sudo qemu-system-x86_64 \
    -enable-kvm -rtc base=localtime -m 2G -vga std \
    -drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio

This will boot the USB via QEMU and show you the boot screen in a popup window.

Booting a virtual machine with a UEFI BIOS

If you want to try booting the USB with QEMU with the tianocore UEFI BIOS, first install the OVMF (Open Virtual Machine Firmware) packages.

On Debian and Debian-based distributions run:

# apt-get install ovmf
$ BIOS="/usr/share/qemu/OVMF.fd"

On Archlinux-based distributions run:

# pacman -S edk2-ovmf
$ BIOS="/usr/share/edk2-ovmf/x64/OVMF.fd"
$ DEVICE=`lsblk -o NAME,SIZE,HOTPLUG -P -d | grep "HOTPLUG=\"1\"" | cut -d"\"" -f2`
$ sudo qemu-system-x86_64 \
    -bios $BIOS \
    -enable-kvm -rtc base=localtime -m 2G -vga std \
    -drive file=/dev/$DEVICE,readonly=on,cache=none,format=raw,if=virtio

Writing an image to another USB drive

While a multi-boot USB is nice, there might be times when you want to write an OS image to another USB disk. The MH-USB includes the "RaspberryPi Imager" (rpi-imager) tool to help you write an OS image to a USB disk safely and quickly.

You can run the the rpi-imager directly from the USB. Insert the MH-USB into a GNU/Linux (or Windows) computer and mount it. In the Tools/ directory on the USB, you will see binaries for the Raspberry Pi imager. You can use it to write any of the bootable operating system images to another USB.

[TODO: Include more details and screenshots!]

Working with Raspberry Pi images

[TODO: Include details with screenshots]