binfmt_misc 的设置在重启后消失了

Setting of binfmt_misc is gone after rebooting

我为 x64 机器上的 i386 二进制文件设置 binfmt_misc 以使用自定义加载程序 (qemu-i386-static) 加载 32 位二进制文​​件。

我按照这里的程序: https://github.com/torvalds/linux/blob/master/Documentation/admin-guide/binfmt-misc.rst

基本上就是一行命令:

echo ':qemu-i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386-static:' > /proc/sys/fs/binfmt_misc/register

执行此操作后,我可以看到 /proc/sys/fs/binfmt_misc/qemu-i386 的新条目,它适用于加载 32 位二进制文​​件。

但是,重启机器后,这个条目就不见了。我需要重做程序。

如何保持持久性?

如果你有 systemd,你可以使用 systemd-binfmt 服务。请参阅 man systemd-binfmt 以获得帮助。

在我的 Ubuntu 18.04 中,systemd-binfmt 服务的文件位于 /etc/binfmt.d/ 文件夹中。所以尝试这样做:

sudo echo ':qemu-i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/bin/qemu-i386-static:' > /etc/binfmt.d/qemu.conf