这段打印信息目前来自内核文件init/main.c,可能有如下几种原因:
1、不能挂载根文件系统
2、根文件系统中没有init二进制文件
3、错误的console设备
4、二进制文件存在,但init依赖的程序不存在
5、二进制文件不能被加载
上述解释如下:
1、对于根文件系统不能加载,可以在内核启动命令行中增加“debug”查看更详细的信息
2、需要确认是否指向正确的根文件系统(root=是否是正确的分区),根文件系统存在的存储介质(SCSI、USB等)和文件系统类型(ext2、jffs2等)是否编译进内核。
3、console=指定的终端是否可用,可以尝试换成另外的终端
4、二进制所需要的库文件是否存在或者被破坏,使用 readelf -d <INIT>|grep NEEDED
可以查看依赖的库
5、确保二进制文件是本架构可执行的。特别是嵌入式交叉环境,例如arm架构执行程序放到了powerpc架构文件系统中。对于脚本,需要确保环境有有可用的脚本解析器,例如执行 /bin/sh,看看它是否能够工作