/bin/sh, /bin/bash и /bin/dash все сломано, как я могу установить их снова

Удалено все /bin/sh, /bin/bash а также /bin/dash, Я не могу установить их, потому что dpkg а также apt-get нужна оболочка для установки и нет доступной оболочки. Я все еще вошел в систему, и моя Ubuntu все еще работает. Есть ли способ выйти из этой ситуации. Кстати, у меня сейчас нет Live CD.

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-накопитель. Если вы что-то забыли, вам это понадобится при перезагрузке.

Процедура для тире:

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

Теперь бинарный файл восстановлен, и все должно быть в порядке, но чтобы просто убедиться, запустите это:

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
Другие вопросы по тегам