无法执行:符号链接层数过多

无法执行:符号链接层数过多

我错误地执行了以下命令:

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 无法运行。

任何帮助是极大的赞赏

答案1

我想你最终还是

sh -> bash
bash -> bash

当系统第一次尝试运行 shell 时,它将进入一个循环解析bash,根据符号链接,与
相同bash,与 相同bash,与 相同bash,与 相同bash......,直到允许的内存用尽。


要修复此问题,我们需要知道/bin/sh之前的内容,通常它指向bashdash。您使用哪个 Linux 发行版?

通常还会安装其他 shell,例如dashzsh,但是由于系统sh在启动时会寻找它们,所以我认为如果没有外部帮助就无法使用这些 shell。

我认为您需要从 CD 启动实时系统,或将硬盘连接到另一台计算机;
然后从那里安装根磁盘并修复链接。
如果 shell 确实被 中的“强制”删除ls -sf,则需要从某处获取 shell 二进制文件。

也可以链接/bin/sh到类似的shell,而不是它指向的那个-(但这似乎是你最后做的。)


sudo ln -sf bash /bin/bash

可以删除/bin/bash- 但是当我尝试类似操作时,出现错误:

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

您确定这些命令吗?您在哪个目录中运行它们?

相关内容