невозможно выполнить: слишком много уровней символьных ссылок

по ошибке я выполнил следующие команды:

sudo ln -sf bash /bin/sh 
sudo ln -sf bash /bin/bash

когда я перезагрузил сервер Linux в режиме восстановления я получил это сообщение:

init : Failed to spawn friendly-recovry pre-start process: unable to execute: Too many levels of symbolic links

и Linux не работает.

любая помощь очень ценится

5
задан Ellouze Anis
источник

1 ответов

я думаю, вы как-то закончили с

sh -> bash
bash -> bash

когда система впервые пытается запустить оболочку, она перейдет в цикл resolving bash, что, по ссылке

то же самое, что bash, то же самое, что и bash, то же самое, что и bash, то же самое, что и bash... пока память для этого не иссякнет.


чтобы решить эту проблему, мы должны знать, что /bin/sh было раньше, обычно это указывает на bash или dash. Какой дистрибутив Linux вы используете?

есть другие оболочки, установленные нормально, как dash или zsh, но как система ищет sh при запуске я не вижу способа использовать их без внешней помощи.

я думаю, что вам нужно будет загрузить живую систему с компакт-диска или подключить жесткий диск к другому компьютеру;

И оттуда смонтируйте корневой диск и исправьте ссылку.

Если раковина была действительно удален "силой" в ls -sf, вам нужно откуда-то получить двоичный файл оболочки.

может также работать, чтобы связать /bin/sh к подобной оболочке, а не к той, на которую она указывала - (но это, похоже, то, что вы делали в последний раз.)


на

sudo ln -sf bash /bin/bash

мог бы удалить /bin/bash - но когда я пробую что-то подобное, я получаю ошибку:

ln: bash and /bin/bash are the same file

вы уверены насчет команды? В каком каталоге ты их?

2
отвечен Volker Siegel 2014-09-25 18:31:38
источник

Другие вопросы bash linux sh symbolic-link