QEMUにはuser modeというものがあり、仮想マシン全体をエミュレートするのではなく、必要最小限をエミュレートすることができる。 これにより、dockerやchrootなどで、他アーキのイメージに入ってコマンドを実行できる。 Raspberry Piのエミュレートで検索すると、仮想マシンでやるものばかりヒットするが、多くの場合User modeで十分なのではなかろうか?(dockerもchrootで十分な場合も多いのだが、その件はいまは触れない) WSL2でも実行できる。
# qemu-user-staticのインストール sudo apt install qemu-user-static # イメージのループバックマウント sudo losetup -P --show /dev/loop0 /path/to/raspios.img # ファイルシステムのマウント udisksctl mount -b /dev/loop0p2 # マウントポイントに移動 cd /path/to/mountpoint # /sysなどをbind mount sudo mount --bind /sys ./sys sudo mount --bind /proc ./proc sudo mount --bind /dev ./dev sudo mount --bind /dev/pts ./dev/pts # user mode emulateのためのバイナリをコピー sudo cp /usr/bin/qemu-arm-static ./usr/bin/ # chrootする sudo chroot . /usr/bin/qemu-arm-static /bin/bash --login -i