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

QEMU搭配BusyBox启动最小Linux内核出现Kernel Panic求助

问题根因定位

你的panic日志里明确给出了错误信息:Failed to execute /init (error -13),错误码-13对应Linux标准错误EACCES(权限被拒绝),可按以下顺序排查解决:

  • 优先检查init文件的可执行权限:打包initramfs之前,必须给根目录下的init文件赋予执行权限,执行命令chmod 755 init即可,不管是shell脚本还是二进制程序都需要执行权限才能被内核启动,这是这类场景下最常见的疏漏,和你描述的报错完全匹配。
  • 确认BusyBox编译配置正确:BusyBox 1.34.1编译时需要在menuconfig中勾选Settings -> Build static binary (no shared libs),编译出纯静态的二进制文件,避免动态链接依赖缺失导致的执行失败;同时busybox本体也需要赋予755执行权限。
  • 检查initramfs打包参数:必须使用newc格式打包initramfs,参考命令如下:
find . | cpio -o -H newc | gzip > ../initramfs.cpio.gz

其他cpio格式内核无法正确识别,会导致解压后文件属性异常,出现权限不足的错误。

  • 确认内核配置开启必要选项:确保你的内核编译时开启了CONFIG_DEVTMPFS、CONFIG_TMPFS、CONFIG_BINFMT_ELF、CONFIG_BINFMT_SCRIPT,这几个是initramfs运行、ELF二进制执行、shell脚本执行的必要依赖。
  • 如果使用shell脚本作为init,必须在文件开头添加正确的shebang行#!/bin/sh,同时确认initramfs内/bin/sh是指向busybox的有效软链接。

内容的提问来源于stack exchange,提问作者Michael Hoefler

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:36:06