-8

Я крутился в корневом терминале и случайно удалил всю папку /bin . Это опасно? Что я должен сделать, чтобы это исправить?

root@laptop:/# ls -l /
total 80
drwxr-xr-x   3 root root  4096 Oct 11 19:10 boot
drwxr-xr-x  16 root root  3360 Oct 11 20:21 dev
drwxr-xr-x 123 root root  4096 Oct 12 10:08 etc
drwxr-xr-x   3 root root  4096 Dec 14  2012 home
lrwxrwxrwx   1 root root    29 Oct 11 19:10 initrd.img -> boot/initrd.img-3.2.0-4-amd64
lrwxrwxrwx   1 root root    30 Oct 11 18:48 initrd.img.old -> /boot/initrd.img-3.2.0-4-amd64
drwxr-xr-x  15 root root  4096 Oct 11 18:54 lib
drwxr-xr-x   2 root root  4096 Oct 11 18:48 lib64
drwx------   2 root root 16384 Oct 11 18:47 lost+found
drwxr-xr-x   3 root root  4096 Oct 11 20:21 media
drwxr-xr-x   2 root root  4096 Dec 14  2012 mnt
drwxr-xr-x   2 root root  4096 May  6 05:27 opt
dr-xr-xr-x 150 root root     0 Oct 11 18:54 proc
drwx------   4 root root  4096 Oct 11 20:40 root
drwxr-xr-x  17 root root   680 Oct 12 10:06 run
drwxr-xr-x   2 root root  4096 Oct 11 19:09 sbin
drwxr-xr-x   2 root root  4096 Jun 10  2012 selinux
drwxr-xr-x   2 root root  4096 May  6 05:27 srv
drwxr-xr-x  13 root root     0 Oct 11 18:54 sys
drwxrwxrwt  11 root root  4096 Oct 12 11:31 tmp
drwxr-xr-x  10 root root  4096 Oct 11 18:51 usr
drwxr-xr-x  11 root root  4096 Oct 11 18:55 var
lrwxrwxrwx   1 root root    26 Oct 11 19:10 vmlinuz -> boot/vmlinuz-3.2.0-4-amd64
lrwxrwxrwx   1 root root    26 Oct 11 18:51 vmlinuz.old -> boot/vmlinuz-3.2.0-4-amd64

3 ответа3

6

Опасные? Больше нет - ты уже сделал опасную вещь.

Вы только что удалили ту часть системы, в которой есть важные вещи, которые нужны каждой системе. Согласно статье в Википедии, FHS /bin содержит «Основные двоичные файлы команд, которые должны быть доступны в однопользовательском режиме; для всех пользователей, например, cat, ls, cp.» Это очень важно в некоторых контекстах.

Предполагая, что вы хотите это исправить, вы можете скопировать /bin из работающей системы - возможно, из livecd той же версии вашего дистрибутива. Я не совсем уверен, что это сработает.

Тем не менее, пока вы пытаетесь это сделать, создайте резервные копии всех необходимых файлов на случай, если что-то пойдет не так. /etc / / home и / var могут быть хорошими идеями, как и / srv в дистрибутивах, которые его используют

3

Да, то, что вы только что сделали, является довольно существенной ошибкой, возможно, сравнимой с удалением программных файлов в Windows (если это возможно).

Если у вас есть другая (виртуальная) машина, вы можете попробовать это довольно приличное и быстрое решение этой распространенной проблемы:

Что нам нужно?

  • ssh, rsync, sudo все еще должны быть доступны
  • у вас должна быть похожая система, доступная из вашей сети (с coreutils)

Процесс:

  1. Скопируйте каталог bin:

Знак «#» означает, что вы должны быть пользователем root. Подстановка «#» с "sudo" подойдет для большинства систем. На других используйте "su".

# rsync -rv <remote-login>@<remote-server>:/bin /

или же

# scp -rv <remote-login>@<remote-server>:/bin /
  1. Затем 'cd' в каталог /bin (который теперь должен снова работать)
# ln -s bash sh

Это важно, так как большинство программ на самом деле ссылаются на /bin /sh, и многие сценарии имеют его в шебанге (#!) линия. Вы должны сделать ссылку на bash (для большинства людей) или на оболочку, которую вы используете (для тех, кто, вероятно, не удалит каталог /bin в любом случае).

  1. Обновление и обновление из вашего репозитория (в Ubuntu и Debian)
# aptitude update && sudo aptitude upgrade

или же

# apt-get update && sudo apt-get upgrade

По крайней мере, это должно заставить вас работать. Возможно, вам следует переустановить coreutils и вообще решить любые проблемы. Вы должны сделать резервную копию ваших данных и быть осторожным.

0

Я сделал следующее и смог восстановить полностью работоспособную Ubuntu в течение 5 минут.

  1. Установите копию вашего Ubuntu (та же версия, которая упала) в Pen-Drive.

  2. Запустите Ubuntu Live Mode с Pendrive на вашей больной машине

  3. Найдите свой разбитый диск и установите его на вкладке "места" в самом верхнем левом углу вашей машины.

  4. Откройте терминал с помощью Ctrl+Alt+T "и создайте папку bin на подключенном диске с помощью sudo , т.е. sudo mkdir /media/bin

  5. Скопируйте все файлы bin из вашего сеанса в реальном времени на устройство-жертву с помощью sudo , т.е. sudo cp /bin/* /media/bin

  6. При перезапуске может отображаться какое-то сообщение об обновлении прошивки (или другие сообщения), просто игнорируйте время и войдите в систему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .