summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorWu XiangCheng <bobwxc@email.cn>2021-03-18 15:20:48 +0800
committerJonathan Corbet <corbet@lwn.net>2021-03-25 11:53:39 -0600
commit33282cc7cf3debac63eb7bc33f04922ec4da9297 (patch)
treebbe77e4b555d32bf75d1ddc8851b24ba9380fbae /Documentation
parente54882ff38c5a68fe95781286a799eb755c6d2ca (diff)
docs/zh_CN: Add zh_CN/admin-guide/init.rst
Add translation zh_CN/admin-guide/init.rst, and link it to zh_CN/admin-guide/index.rst while clean its todo entry. Signed-off-by: Wu XiangCheng <bobwxc@email.cn> Reviewed-by: Alex Shi <alex.shi@linux.alibaba.com> Link: https://lore.kernel.org/r/cd2fd8d0ea2ad50afc6bd2abe15eba73b6c7940c.1616050069.git.bobwxc@email.cn Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/translations/zh_CN/admin-guide/index.rst2
-rw-r--r--Documentation/translations/zh_CN/admin-guide/init.rst54
2 files changed, 55 insertions, 1 deletions
diff --git a/Documentation/translations/zh_CN/admin-guide/index.rst b/Documentation/translations/zh_CN/admin-guide/index.rst
index a671d16710f3..be835ec8e632 100644
--- a/Documentation/translations/zh_CN/admin-guide/index.rst
+++ b/Documentation/translations/zh_CN/admin-guide/index.rst
@@ -40,13 +40,13 @@ Todolist:
bug-hunting
bug-bisect
tainted-kernels
+ init
Todolist:
reporting-bugs
ramoops
dynamic-debug-howto
- init
kdump/index
perf/index
diff --git a/Documentation/translations/zh_CN/admin-guide/init.rst b/Documentation/translations/zh_CN/admin-guide/init.rst
new file mode 100644
index 000000000000..fbaf6d97f86c
--- /dev/null
+++ b/Documentation/translations/zh_CN/admin-guide/init.rst
@@ -0,0 +1,54 @@
+.. include:: ../disclaimer-zh_CN.rst
+
+:Original: :doc:`../../../admin-guide/init`
+
+:译者:
+
+ 吴想成 Wu XiangCheng <bobwxc@email.cn>
+
+解释“No working init found.”启动挂起消息
+=========================================
+
+:作者:
+
+ Andreas Mohr <andi at lisas period de>
+
+ Cristian Souza <cristianmsbr at gmail period com>
+
+本文档提供了加载初始化二进制(init binary)失败的一些高层级原因(大致按执行
+顺序列出)。
+
+1) **无法挂载根文件系统Unable to mount root FS** :请设置“debug”内核参数(在
+ 引导加载程序bootloader配置文件或CONFIG_CMDLINE)以获取更详细的内核消息。
+
+2) **初始化二进制不存在于根文件系统上init binary doesn't exist on rootfs** :
+ 确保您的根文件系统类型正确(并且 ``root=`` 内核参数指向正确的分区);拥有
+ 所需的驱动程序,例如SCSI或USB等存储硬件;文件系统(ext3、jffs2等)是内建的
+ (或者作为模块由initrd预加载)。
+
+3) **控制台设备损坏Broken console device** : ``console= setup`` 中可能存在
+ 冲突 --> 初始控制台不可用(initial console unavailable)。例如,由于串行
+ IRQ问题(如缺少基于中断的配置)导致的某些串行控制台不可靠。尝试使用不同的
+ ``console= device`` 或像 ``netconsole=`` 。
+
+4) **二进制存在但依赖项不可用Binary exists but dependencies not available** :
+ 例如初始化二进制的必需库依赖项,像 ``/lib/ld-linux.so.2`` 丢失或损坏。使用
+ ``readelf -d <INIT>|grep NEEDED`` 找出需要哪些库。
+
+5) **无法加载二进制Binary cannot be loaded** :请确保二进制的体系结构与您的
+ 硬件匹配。例如i386不匹配x86_64,或者尝试在ARM硬件上加载x86。如果您尝试在
+ 此处加载非二进制文件(shell脚本?),您应该确保脚本在其工作头(shebang
+ header)行 ``#!/...`` 中指定能正常工作的解释器(包括其库依赖项)。在处理
+ 脚本之前,最好先测试一个简单的非脚本二进制文件,比如 ``/bin/sh`` ,并确认
+ 它能成功执行。要了解更多信息,请将代码添加到 ``init/main.c`` 以显示
+ kernel_execve()的返回值。
+
+当您发现新的失败原因时,请扩展本解释(毕竟加载初始化二进制是一个 **关键** 且
+艰难的过渡步骤,需要尽可能无痛地进行),然后向LKML提交一个补丁。
+
+待办事项:
+
+- 通过一个可以存储 ``kernel_execve()`` 结果值的结构体数组实现各种
+ ``run_init_process()`` 调用,并在失败时通过迭代 **所有** 结果来记录一切
+ (非常重要的可用性修复)。
+- 试着使实现本身在一般情况下更有帮助,例如在受影响的地方提供额外的错误消息。