/bin/sh、/bin/bash 和 /bin/dash 全部损坏,我该如何重新安装它们

/bin/sh、/bin/bash 和 /bin/dash 全部损坏,我该如何重新安装它们

删除了所有/bin/sh/bin/bash/bin/dash。我无法安装它们,因为dpkgapt-get需要 shell 来安装,而没有可用的 shell。我仍然登录并且我的 Ubuntu 仍在运行。有没有办法从这种情况中恢复。顺便说一句,我现在没有 Live CD。

答案1

破折号处理程序:

sudo apt-get download dash #download dash *.deb file
sudo dpkg-deb -x dash*.deb #extract deb file, a bin directory will be created
sudo cp ./bin/dash /bin/ #copy binary file to /bin directory
sudo ln -s /bin/dash /bin/sh #create a symbolic link from sh to dash

现在 dash 二进制文件已恢复并且一切都应该正常,但为了确保万无一失,请运行以下命令:

sudo apt-get install --reinstall dash

对于 bash 来说步骤相同,但这次不需要创建符号链接:

sudo apt-get download bash
sudo dpk-deb -x bash*.deb
sudo cp ./bin/bash /bin/

只想确认一下:

sudo apt-get install --reinstall bash

答案2

由于您当前有一个正常工作的系统:

  1. 下载软件包。通常我建议运行apt-get download bash dash,但如果你有浏览器,你可以手动从http://packages.ubuntu.com/只需确保您获得适合您的发行版本和架构的版本即可。

  2. 提取您需要的文件并将它们放在正确的位置。您可能需要Alt+F2运行pkexec nautilus才能获得 root 权限进行写入。

    /bin/sh实际上是 的符号链接/bin/dash。我不确定这是如何管理的(这是一种“转移”,但我不确定是由哪个包管理的),所以你可能需要手动创建符号链接。再次从Alt+开始F2

    pkexec ln -s /bin/dash /bin/sh
    

但是我现在也会下载 LiveCD 并将其刻录到 USB 上。如果您忘记了任何东西,重新启动时您将需要它。

相关内容