Linux kernel 什么是;无法执行/init(错误-7)";什么意思?

Linux kernel 什么是;无法执行/init(错误-7)";什么意思?,linux-kernel,Linux Kernel,Linux内核版本:4.18.0-17 我正在将一些4.15内核定制移植到4.18,但我的4.18内核无法启动。stock 4.18内核(即合并4.15修改之前的起点)启动并运行 错误消息是: 无法执行/init(错误-7) 开始初始化:/bin/sh存在,但无法执行(错误-7) “errno 7”是“E2BIG 7参数列表太长” 在内核启动init进程的上下文中,这意味着什么?如果内核命令行和根文件系统与您提供给确实启动的内核版本的命令行和根文件系统完全相同,那么最可能的原因是get_user

Linux内核版本:4.18.0-17

我正在将一些4.15内核定制移植到4.18,但我的4.18内核无法启动。stock 4.18内核(即合并4.15修改之前的起点)启动并运行

错误消息是:

无法执行/init(错误-7) 开始初始化:/bin/sh存在,但无法执行(错误-7)

“errno 7”是“E2BIG 7参数列表太长”


在内核启动init进程的上下文中,这意味着什么?

如果内核命令行和根文件系统与您提供给确实启动的内核版本的命令行和根文件系统完全相同,那么最可能的原因是get_user_pages_remote()在此失败: 这意味着您的一个更改破坏了内存管理

要到达这里,只需跟踪从try_到运行init的\u run_init_process(),再到从中调用的所有函数,这些函数可以返回E2BIG。这是唯一不依赖于init参数列表或环境大小的调用站点-


话虽如此,我首先要确保内核命令行和根文件系统是相同的。

您是否能够启动您构建的stock 4.18内核(无需更改)?