我将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位二进制文件。
但是,重新启动计算机后,此条目丢失。我需要重做该程序。
如何保持持久性?
答案 0 :(得分:0)
如果已使用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