BeagleBone Black从SquashFS启动报Kernel panic: No working init found问题
BeagleBone Black SquashFS根文件系统启动Kernel Panic问题排查与解决
环境信息
- 硬件:BeagleBone Black
- 存储配置:microSD卡分为3个分区
- FAT格式启动分区:存放U-boot镜像与内核镜像
- SquashFS格式根文件系统分区
- 数据分区
- 软件版本:
- 内核:6.1.55(稳定版)
- U-boot:2023.04
- 根文件系统:基于BusyBox 1.36.1构建
- 前置状态:NFS根文件系统启动完全正常(支持TFTP加载内核或本地SD卡加载内核)
问题现象
修改U-boot环境中的内核命令行,将根文件系统指定为SquashFS分区/dev/mmcblk0p2,其余参数与NFS启动时保持一致。
从NFS根目录生成SquashFS镜像后,在开发工作站挂载验证时,/sbin/init等核心文件均存在且正常,但板卡启动时:
- 内核加载完成
- SquashFS根文件系统成功挂载
- 触发Kernel Panic,提示找不到可用的init程序,日志显示内核依次尝试
/sbin/init、/etc/init等路径均执行失败
排查结论
为减小SquashFS镜像体积,生成镜像时遗漏了包含动态链接库的lib目录;由于BusyBox是动态编译的,缺少依赖的动态链接库导致init程序无法正常执行,进而触发Kernel Panic。
解决方法
重新生成SquashFS镜像,确保完整包含根文件系统中的lib目录(所有动态链接库文件),重新写入SD卡后启动即可正常进入系统。
内容的提问来源于stack exchange,提问作者ahzahraee
相关产品推荐
相关产品推荐

