Назад | Перейти на главную страницу

Я только что удалил «/ bin». Как лучше всего восстановиться?

Я просто сбежал (не специально!) rm -rf /bin.

Я загрузил компьютер и использую Finnix, чтобы попытаться восстановить его. Мне удалось установить привод, и я подтвердил, что да, весь /bin папка удалена.

Можно ли от этого вылечиться без переустановки ОС?

Я думаю, что могу настроить виртуальную машину с той же ОС и архитектурой (альфа-выпуск Ubuntu Server 11.10, x86) и установить все пакеты, которые я установил на сервере, а затем просто скопировать /bin папка.

Это сработает? Мне лучше начать все сначала?

В общем, я бы склонялся к переустановке (из резервных копий, которые вам абсолютно необходимы). Но я чувствую себя хакером, поэтому вот другой способ (при условии, что ваша система смонтирована под /target):

  1. Получите список всех установленных пакетов, в которых есть файлы /bin:

    grep ^/bin/ /target/var/lib/dpkg/info/*.list | sed 's%^.*/\([^/\.]*\).list%\1%' >/tmp/pkglist
    

    (В моей системе Debian Squeeze всего 34 пакета, почти все из которых являются основными)

  2. Загрузите каждый из этих пакетов (я не стал беспокоиться о том, чтобы написать этот бит, поэтому просто зайдите на packages.ubuntu.com и загрузите их где-нибудь под /target). Если вам повезет, некоторые из пакетов могут все еще плавать в /target/var/cache/apt/archives.

  3. Для каждого пакета запустите /target/usr/bin/dpkg -x <package> /target. Я почти уверен dpkg в наши дни самодостаточен и не должен ни к чему призывать /bin сам.

После того, как вы снова поставите систему на ноги, убедитесь, что apt-get --reinstall install <all the packages from step 1>, потому что (поскольку вы используете предварительный выпуск, который, по словам системного администратора Cat, запрещен для производственных систем), версии только что извлеченных пакетов, вероятно, будут отличаться от тех, которые были в системе раньше, и вы я хочу убедиться, что система точно знает, что к чему.

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

Если бы это случилось со мной, я бы переустановил и восстановил из ежедневной резервной копии. У вас есть ежедневная резервная копия - план аварийного восстановления, не так ли?

Если у вас не было плана аварийного восстановления, я бы предложил сделать резервную копию всех файлов конфигурации и данных, которые вы хотите сохранить, и продолжить переустановку. Таким образом, вы будете уверены, что снова получите стабильный сервер.

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

dpkg --get-selections  | awk '{print $1}' | xargs -l1 aptitude reinstall

который должен переустановить все пакеты, которые были в вашей системе.

Самый простой способ, если у вас есть доступ к машине, - это смонтировать файловую систему, сделать резервную копию всех ваших данных (в качестве меры предосторожности).

Затем вы можете переустановить ubuntu как обычную установку; в принципе, все ваши данные (домашний каталог и т. д. и var) должны оставаться там.

Есть способ переустановить все пакеты, чтобы / bin был повторно заполнен, но это довольно сложно.

Файлы ушли. Хотя вы можете попытаться восстановить файлы, я бы не рекомендовал это делать.

Примечание: я не запускаю Ubuntu (и какое-то время не использовал дистрибутивы Debian). Однако в прошлом я выполнял восстановление различных дистрибутивов по аналогичному сценарию.

Ваш лучший курс действий:

  • загрузка с liveCD
  • используя liveCD, смонтируйте вашу систему где-нибудь (скажем, /mnt/mint)
  • используя запрос dpkg все установленные пакеты:
# dpkg --admindir=/mnt/mint/var/lib/dpkg -l
  • установите все эти пакеты в место назначения / mnt / mint, используя apt-get, используя:
# apt-get -o RootDir=/mnt/mint .... 
  • (альтернатива №1) Возможно, вам придется отменить /mnt/mint - Точно сказать не могу
  • (альтернатива № 2) Вы можете скопировать /bin содержимое liveCD на /mnt/mint/bin но я не знаю, использует ли liveCD для монетного двора busybox, что может усложнить ситуацию - альтернатива №1 в этом случае кажется более безопасной.

обычно это должно вернуть ваши файлы путем "грубой переустановки" всего, что у вас есть. Вы можете проделать немного более «умных» трюков и запросить все пакеты, которые сбрасывают двоичные файлы в / bin.