我在一个init.d脚本中犯了一个头痛的错误,在启动过程中,这个脚本陷入了无限循环,并阻止了完成。 因此,我无法进入shell并修复它。 我怎样才能启动,而不是执行所有的启动脚本? 如果有必要,我有根。
在引导加载程序的内核行上传递1应该以单用户模式启动它,除非它严重中断,否则不应启动initscript。 如果启动到单一模式不起作用,那么您将需要安装光盘并使用它进入救援模式。
正如Ignacio所build议的,最简单的解决scheme是启动到单用户模式。 在启动进入内核之前,按倒计时启动屏幕上的任意键即可。 从这里突出显示正确的内核并按下e。 再次按e编辑cmdline,最后按s,s,single或1.按return,然后按b启动。 这将不会运行你的初始化脚本,除非你明确地将它configuration成单用户模式的一部分,这是不太可能的。
但是,如果此时仍然有问题, 则不需要安装磁盘。 您可以将以下内容添加到您的内核命令行中:
init=/bin/bash
这将导致内核启动/bin/bash为pid 1,而不是init。 在这一点上,系统初始化脚本都没有运行,所以你应该可以照顾好事情。 请注意,你可能会有一个只读的根文件系统,你应该能够像这样处理:
mount -o remount,rw /
…或者你可以从内核命令行中删除ro选项。