Some operating systems (for example Windows) “don’t like” being installed to a USB device.

Even when installing Linux to a USB device there may be complications in excluding the internal hard disks from being used by the installer, and getting the bootloader installed on the right disk.

A simple method of installing a portable system onto a USB disk is to use virtualisation but with the USB device as a “raw” disk.

Example command

qemu-system-x86_64 -machine accel=kvm \
    -m 4096                           \
    -drive format=raw,file=/dev/sdf   \
    -bios /tmp/ovmf-x86_64.bin        \
    -cdrom Win10_2004_English_x64.iso \
    -boot d

Here /tmp/ovmf-x86_64.bin is the TianoCore firmware
[In openSUSE this is provided by the package qemu-ovmf-x86_64.]
for virtual machines.

The USB disk in this example is /dev/sdf (care needed), and the command needs to be run as root or by a user that is a member of the group disk.

OpenBSD install example

This uses the install67.fs USB image because the current iso images do not have EFI support.

qemu-system-x86_64 -machine accel=kvm \
    -m 4096                           \
    -drive format=raw,file=/dev/sdf   \
    -bios /tmp/ovmf-x86_64.bin        \
    -drive file=install67.fs          \
    -boot menu=on