~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/translations/zh_CN/admin-guide/init.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. include:: ../disclaimer-zh_CN.rst
  2 
  3 :Original: :doc:`../../../admin-guide/init`
  4 
  5 :译者:
  6 
  7  吴想成 Wu XiangCheng <bobwxc@email.cn>
  8 
  9 解释“No working init found.”启动挂起消息
 10 =========================================
 11 
 12 :作者:
 13 
 14  Andreas Mohr <andi at lisas period de>
 15 
 16  Cristian Souza <cristianmsbr at gmail period com>
 17 
 18 本文档提供了加载初始化二进制(init binary)失败的一些高层级原因(大致按执行
 19 顺序列出)。
 20 
 21 1) **无法挂载根文件系统Unable to mount root FS** :请设置“debug”内核参数(在
 22    引导加载程序bootloader配置文件或CONFIG_CMDLINE)以获取更详细的内核消息。
 23 
 24 2) **初始化二进制不存在于根文件系统上init binary doesn't exist on rootfs** :
 25    确保您的根文件系统类型正确(并且 ``root=`` 内核参数指向正确的分区);拥有
 26    所需的驱动程序,例如SCSI或USB等存储硬件;文件系统(ext3、jffs2等)是内建的
 27    (或者作为模块由initrd预加载)。
 28 
 29 3) **控制台设备损坏Broken console device** : ``console= setup`` 中可能存在
 30    冲突 --> 初始控制台不可用(initial console unavailable)。例如,由于串行
 31    IRQ问题(如缺少基于中断的配置)导致的某些串行控制台不可靠。尝试使用不同的
 32    ``console= device`` 或像 ``netconsole=`` 。
 33 
 34 4) **二进制存在但依赖项不可用Binary exists but dependencies not available** :
 35    例如初始化二进制的必需库依赖项,像 ``/lib/ld-linux.so.2`` 丢失或损坏。使用
 36    ``readelf -d <INIT>|grep NEEDED`` 找出需要哪些库。
 37 
 38 5) **无法加载二进制Binary cannot be loaded** :请确保二进制的体系结构与您的
 39    硬件匹配。例如i386不匹配x86_64,或者尝试在ARM硬件上加载x86。如果您尝试在
 40    此处加载非二进制文件(shell脚本?),您应该确保脚本在其工作头(shebang
 41    header)行 ``#!/...`` 中指定能正常工作的解释器(包括其库依赖项)。在处理
 42    脚本之前,最好先测试一个简单的非脚本二进制文件,比如 ``/bin/sh`` ,并确认
 43    它能成功执行。要了解更多信息,请将代码添加到 ``init/main.c`` 以显示
 44    kernel_execve()的返回值。
 45 
 46 当您发现新的失败原因时,请扩展本解释(毕竟加载初始化二进制是一个 **关键** 且
 47 艰难的过渡步骤,需要尽可能无痛地进行),然后向LKML提交一个补丁。
 48 
 49 待办事项:
 50 
 51 - 通过一个可以存储 ``kernel_execve()`` 结果值的结构体数组实现各种
 52   ``run_init_process()`` 调用,并在失败时通过迭代 **所有** 结果来记录一切
 53   (非常重要的可用性修复)。
 54 - 试着使实现本身在一般情况下更有帮助,例如在受影响的地方提供额外的错误消息。

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php