chroot 中带有 binfmt 的 Qemu

chroot 中带有 binfmt 的 Qemu

我已经下载了一些固件,我想在其中运行一些命令。我已经提取了固件,安装了 qemu 并配置了 binfmts。问题是 binfmt 在 chroot 中不起作用。

Mipsel 文件由 qemu-mipsel-static 自动执行:

firmware$ bin/ls
/lib/ld-uClibc.so.0: No such file or directory

命令 qemu-mipsel-static 在 chroot 中可用:

firmware$ sudo chroot . /usr/bin/qemu-mipsel-static /bin/ls
webroot     tmp         sbin        media       home        dev

当两者结合时,它不再起作用:

firmware$ sudo chroot . /bin/ls
chroot: failed to run command ‘/bin/ls’: No such file or directory

它说“没有这样的文件或目录”。有什么方法可以获取更多相关信息,例如找不到哪个文件?这确实是 binfmt 的问题吗?

我的 binfmt 配置如下所示:

$ cat /proc/sys/fs/binfmt_misc/qemu-mipsel 
enabled
interpreter /usr/lib/binfmt-support/run-detectors
flags: 
offset 0
magic 7f454c4601010100000000000000000002000800
mask ffffffffffffff00fffffffffffffffffeffffff

chroot 中 /usr/lib/binfmt-support/run- detectors 不可用是一个问题吗?

答案1

chroot 中 /usr/lib/binfmt-support/run- detectors 不可用是一个问题吗?

是的,您需要将解释器(及其所需的一切)放在 chroot 中。在我的系统上,/proc/sys/fs/binfmt_misc/qemu-mipsel包含

enabled
interpreter /usr/bin/qemu-mipsel-static
flags: OC
offset 0
magic 7f454c4601010100000000000000000002000800
mask ffffffffffffff00fefffffffffffffffeffffff

您应该尝试run-detectors在 chroot 中添加所需的所有内容,或者重新配置binfmt-misc以直接使用qemu-mips-static

相关内容