You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

aarch64架构Termux下chroot amd64 Ubuntu执行命令报Exec format error

解决方案

出现该问题是因为系统未配置binfmt_misc规则,无法自动识别x86_64架构ELF二进制并调用对应qemu静态仿真程序执行,因此需要手动添加规则。所有操作需在Termux宿主环境的root权限下执行,无需提前进入chroot。

操作步骤

  • 挂载binfmt_misc文件系统
    执行命令:
    mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
    如果系统提示already mounted可直接跳过该步骤。

  • 注册x86_64 ELF识别规则
    执行命令:
    echo ':qemu-x86_64:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x3e\x00:\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/bin/qemu-x86_64-static:OCF' > /proc/sys/fs/binfmt_misc/register

  • 验证规则生效
    执行命令:
    cat /proc/sys/fs/binfmt_misc/qemu-x86_64
    输出内容包含enabled字样即说明规则注册成功。

  • 正常chroot进入目标系统
    执行你之前的chroot命令即可:
    sudo chroot ubuntu /bin/qemu-x86_64-static /bin/bash --login
    进入系统后直接执行ls等x86_64原生命令即可正常运行,无需额外添加qemu前缀。

注意事项

  • 上述binfmt_misc规则为临时生效,设备重启后会丢失,如需持久化可将挂载、注册规则的命令添加到Termux的开机启动脚本中(如/data/data/com.termux/files/usr/etc/profile)。
  • 需确保chroot目标目录下/bin/qemu-x86_64-static文件存在且权限正常,路径与注册规则中填写的路径完全一致,否则仍会出现执行报错。
  • 如需删除已注册的规则,执行echo -1 > /proc/sys/fs/binfmt_misc/qemu-x86_64即可。

内容的提问来源于stack exchange,提问作者Rajmani Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:51:03