我有一个Fedora 26工作站和一个Ubuntu 16.04服务器。在前者上,我可以在安装docker run -it --rm arm32v7/python:3.6.2-slim /bin/sh
的情况下运行qemu-user-static
但是当我尝试在Ubuntu上运行时,我得到:
standard_init_linux.go:178: exec user process caused "no such file or directory"
我可以通过添加-v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static
来解决这个问题。令我感到困惑的是,我不需要用Fedora做这件事。这是为什么?有什么方法可以用Ubuntu实现同样的目标吗?
答案 0 :(得分:0)
为了本地执行手臂代码,您应该在binfmt_misc中有一个活动条目
$ cat /proc/sys/fs/binfmt_misc/qemu-arm
enabled
interpreter /usr/bin/qemu-arm-static
flags: OC
offset 0
magic 7f454c4601010100000000000000000002002800
mask ffffffffffffff00fffffffffffffffffeffffff
检查您的Fedora和Ubuntu配置是否不同
答案 1 :(得分:0)
此功能在Ubuntu(16.04或18.04)上不起作用的主要原因是,这些发行版默认情况下在binfmt支持文件中未启用“固定二进制”标志。此外,Ubuntu 16.04需要从新的硬件支持堆栈中获得更新的内核。
This repository帮助我轻松地在Ubuntu上修复binfmt配置。