如何处理损坏的 bin/sh?

如何处理损坏的 bin/sh?

我弄乱了我的 bin/sh 文件,用 Virtualmin 中的数据库文件覆盖了它。重新启动后,Ubuntu Server 将无法再正常启动。我遇到的错误是:

init:无法生成普利茅斯主进程:无法执行:没有此文件或目录。

我这里有一张实时 CD,但我真的不知道如何使用它来覆盖损坏的 bin/sh。

有人能帮我解决这个问题吗?

答案1

非常感谢 sergey!:) 设法解决了。似乎我昨天已经通过盲目地遵循某个论坛上的类似情况安装了它。只是不确定在“/dev”后面放什么。再次感谢您的帮助。:D

对于那些可能遇到同样问题的人(以及像我这样的新手),请采取以下步骤:

  1. 使用实时 CD/磁盘启动到混乱的操作系统/计算机。(对于实时磁盘,请使用 unetbootin)。选择“无需安装即可试用 Ubuntu”。

  2. 打开终端。输入 检查要挂载的分区的名称(带有混乱的 sh)sudo fdisk -l。注意:l 是字母。

  3. 将分区挂载到任何 live cd 文件夹。例如sudo mount /dev/sda /media。其中 sda 是分区的名称。

  4. 然后使用 cd 导航到 /media。

cd /bin
sudo rm sh
sudo ln -s bash sh
sudo apt-get update
sudo apt-get install --reinstall dash

这些对我有用。:D

再次感谢谢尔盖。

答案2

我的机器上/bin/sh有一个指向 的符号链接dash。您需要做的就是恢复该符号链接。

从 LiveCD 启动时,将根分区挂载到某处(例如/media/disk),然后

cd /media/disk/bin
sudo rm ./sh
sudo ln -s dash ./sh

类似这样的。

更新:关于“将根分区挂载到某处” - 如果您从 LiveCD 启动并具有完整的 GUI,最简单的方法是打开文件浏览器,在左侧窗格中将有几个条目,其中一个对应于安装 Ubuntu 的硬盘分区(又称“根”分区)。只需单击该条目即可挂载分区并显示其内容。如果您在那里看到、、、、... 目录,则可以知道它bin是根分区。bootdevetcvar

当你点击文件浏览器左侧窗格中的条目时,后台发生的事情是文件系统正在获取安装通常作为某个目录内的子树/media。您也可以使用文件浏览器进行检查。

弄清楚分区的安装位置后,打开终端并重新创建符号链接。

相关内容