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
我为 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