Назад | Перейти на главную страницу

В RHEL 5.6 у меня есть сценарий init.d, который застревает в бесконечном цикле. Как загрузиться без загрузки?

Я допустил грубую ошибку в одном из моих сценариев init.d, который застревает в бесконечном цикле во время процесса загрузки и блокирует завершение. Поэтому я не могу добраться до оболочки и исправить ее. Как я могу загрузиться и не выполнять все сценарии загрузки? При необходимости рут имею.

Как предложил Игнасио, самым простым решением является загрузка в однопользовательском режиме. Для этого нажмите любую клавишу на заставке обратного отсчета перед загрузкой ядра. Отсюда выделите нужное ядро ​​и нажмите e. Снова нажмите e, чтобы отредактировать cmdline, а в конце - S, s, single или 1. Нажмите return, а затем b для загрузки. Это не запустит ваш сценарий инициализации, если вы явно не настроили его как часть однопользовательского режима, что маловероятно.

Однако, если у вас все еще есть проблемы на этом этапе, вы не нужен установочный диск. Вы можете добавить в командную строку ядра следующее:

init=/bin/bash

Это заставит ядро ​​запуститься /bin/bash как pid 1, а не init. С этой точки зрения никто сценариев инициализации системы будут запущены, так что вы сможете позаботиться обо всем. Обратите внимание, что у вас, вероятно, будет корневая файловая система только для чтения, о которой вы можете позаботиться следующим образом:

mount -o remount,rw /

... или вы можете удалить ro параметр из командной строки ядра.

Проходящий 1 в строке ядра в загрузчике следует запустить его в однопользовательском режиме, который должен не запускайте сценарий инициализации, если он не поврежден. Если загрузка в одиночном режиме не работает, вам нужно будет получить установочный диск и загрузиться в режиме восстановления с его помощью.