Восстановление после запуска rm -rf / *

8

Я случайно запустил rm -rf /*Ubuntu 10.10 и быстро отменил команду. Я не был root и не использовал, sudoно многие мои файлы были удалены. Система стала менее отзывчивой, и я не уверен, как это исправить. Например, я переустановил Firefox, и он решил много проблем с Firefox, но щелчок правой кнопкой мыши очень медленный. Deluge продолжает увеличивать загрузку процессора (1 ядро) до 100%. Затвор также немного странный с точки зрения отзывчивости.

Могу ли я что-нибудь сделать, чтобы все починить? Как переустановка каждого установленного пакета и файлов Ubuntu?

Ashfame
источник
4
Я бы предложил сделать резервную копию и установить
заново
3
Как вы вообще случайно запускаете такую ​​команду?
Уорд Мюйлаерт
@shroff Это мое последнее средство! Я пытаюсь избежать этого, поскольку это будет означать, что ГБ данных снова загружаются из Dropbox, и не говоря уже о времени, которое потребуется для новой установки
Ashfame
@Ward Я редактировал путь и случайно запустил его
Ashfame
1
@Alin Андрей rm -rf /*побежал за мной 10.10
Ashfame

Ответы:

10

Я не был root и не использовал, sudoно многие мои файлы были удалены.

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

Если это сценарий, вы можете переместить ваши файлы и not-missing-config-files в новую папку пользователя.

d4n13l
источник
Согласен. Команда, вероятно, удалила файлы в вашем / home каталоге, так как /*расширяется до /bin /boot /dev /etc /file.img /home /initrd.img /initrd.img.old /lib ....
организовать
Да, все настройки и настройки пропали. Я не понимаю, почему это может испортить даже переустановленный Firefox и потоп. В целом системе не хватает быстрого реагирования, как это было до этого инцидента.
Ashfame
@ расположить мои файлы под несколькими каталогами в моем доме, тоже были удалены, и я не помню, был ли у меня параметр -r
Ashfame
6

Вы можете использовать этот скрипт для переустановки всех ваших пакетов, он немного хакерский, так как я не смог найти механизм управления dpkg без взлома в python:

#!/bin/bash

for PACKAGE in `dpkg --get-selections | grep install | awk '{ print $1; }'`; do
  sudo apt-get --reinstall install $PACKAGE
done

Сохраните это в файл reinstall.sh, затем выполните, запустив его bash reinstall.shиз командной строки. Это займет некоторое время, но все переустановит.

Мартин Оуэнс -доктормо-
источник
Я могу установить вещи снова, если я делаю новую установку. Их было не так уж много. Я понимаю вашу идею, хотя.
Ashfame
2

Вы можете сделать резервную копию всех установленных пакетов, затем выполнить чистую установку и затем процесс восстановления.

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

sudo dpkg --get-selections > packages.txt

Чтобы восстановить все приложения из вашего списка, вы должны очень тщательно выполнить трехэтапный процесс.

sudo dpkg --clear-selections 
sudo dpkg --set-selections < packages.txt 
sudo aptitude install

Вам будет предложено установить все новые приложения в списке. Другой пример того, что этот процесс позволяет вам сделать, - это создать базовый уровень всех приложений после чистой установки Ubuntu. Допустим, вы хотите удалить все установленные приложения, поскольку чистая установка выполняется точно так же, и все пакеты, не указанные в этом списке, будут удалены.

sudo dpkg --get-selections > clean-install-package-list.txt
sudo dpkg --clear-selections
sudo dpkg --set-selections < clean-install-package-list.txt 
sudo aptitude install

Самая первая команда --clear-selectionsпомечает все установленные на данный момент пакеты в состояние deinstall. При восстановлении списка приложений, использующих --set-selectionsтолько те пакеты, которые отсутствуют в списке, они останутся в deinstallсостоянии. Aptitude соблюдает состояние удаления и удаляет дополнительные пакеты, оставляя вас только с пакетами из списка.

hhlp
источник
1
Это, наверное, то, что я искал. Если я правильно понимаю, то --clear-selections отмечает, что пакеты не нужны и должны быть удалены, но затем мы импортируем наш список пакетов, поэтому почти та же конфигурация, которая была у нас при экспорте списка, должна быть помечена для установки. Некоторые пакеты уже есть (которые были помечены ранее для удаления, теперь снова помечены на необходимость их наличия), а затем sudo aptitude install наконец делает то, что ожидает, то есть какие новые пакеты необходимы. Правильно?
Ashfame
0

Я исправил проблемы, выполнив новую установку.

Как и предположил @ d4n13l , моя система получила быстрый отклик , и исчезли не только мои файлы.

Я чувствую, что подход @ Martin - это то, что нужно делать после новой установки для установки предыдущих пакетов, которые у вас были. У меня их было очень мало, поэтому я снова установил их из Ubuntu Software Center.

Спасибо всем за внимание. :)

Ashfame
источник
Вы можете пометить свой ответ как принятый ответ, так как это то, что вы в итоге сделали; однако, если ответ Мартина был вам полезен, проголосуйте за него!
Хорхе Кастро
Хорошо, я пометил свой ответ как принятый ответ, потому что в итоге я это сделал. Но ответы Мартина и hhlp будут более полезными для тех, кто в них нуждается.
Ashfame