#!/bin/sh # # Unregister any stale qemu-*-static binfmt handlers and (re-)register the ones # shipped by this image via systemd-binfmt, so the host always uses the recent # qemu-user-static built into this image (registered with the "F" fix-binary # flag from /usr/lib/binfmt.d). # # Based on https://www.itix.fr/blog/qemu-user-static-with-podman/ set -Eeuo pipefail if [ ! -d /proc/sys/fs/binfmt_misc ]; then echo "No binfmt support in the kernel." echo " Try: '/sbin/modprobe binfmt_misc' from the host" exit 1 fi if [ ! -f /proc/sys/fs/binfmt_misc/register ]; then echo "Mounting /proc/sys/fs/binfmt_misc..." mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc fi echo "Cleaning up..." find /proc/sys/fs/binfmt_misc -type f -name 'qemu-*' -exec sh -c 'echo -1 > {}' \; echo "Registering..." exec /usr/lib/systemd/systemd-binfmt