我在我的一个 init.d 脚本中犯了一个愚蠢的错误,它在启动过程中陷入无限循环并阻止完成。因此我无法进入 shell 并修复它。我怎样才能启动而不执行所有启动脚本?如果需要,我有 root 权限。
答案1
在引导加载程序中传递1
内核行应该以单用户模式启动它,这应该除非 initscript 严重损坏,否则不要启动它。如果引导到单一模式不起作用,则需要获取安装光盘并使用它引导到救援模式。
答案2
正如 Ignacio 所建议的,最简单的解决方案是启动到单用户模式。为此,请在启动到内核之前按下倒计时启动屏幕上的任意键。从这里突出显示正确的内核并按 e。再次按 e 编辑命令行,最后按 S、s、single 或 1。按回车键,然后按 b 启动。除非您明确将其配置为单用户模式的一部分(这种情况不太可能发生),否则这不会运行您的 init 脚本。
但是,如果你现在仍然有问题,你不需要安装盘。您可以将以下内容添加到内核命令行:
init=/bin/bash
这将导致内核/bin/bash
以 pid 1 启动,而不是 init。此时没有任何系统初始化脚本已经运行,因此您应该能够处理好这些事情。请注意,您可能有一个只读根文件系统,您应该能够像这样处理它:
mount -o remount,rw /
...或者您可以ro
从内核命令行中删除该选项。