Intereting Posts
Как включить все установленные среды рабочего стола в Fedora 23? Почему SCP не работает, когда включена опция «RequestTTY force»? (EE) EQ переполнен -> заморозить Как использовать графический интерфейс для удаленного сервера CentOS 6 через ssh? Разница между Kali Linux 2.0 mini и Light Каков наиболее эффективный / безопасный способ пользователя для входа на серверы Linux с использованием SSH-ключей? Autoexpect зависает в конце скрипта Чтение последовательного порта с помощью кота не дает мне ничего, но экран работает? Получить идентификатор и установленное местоположение USB Помощь с доступом к сайту apache Отказ "/ opt /" доступа для пользователей SFTP, отличных от определенного каталога перечислить все файлы, более новые, чем заданные временные метки, и отсортировать их как заставить службу сети использовать обновленный файл интерфейса при запуске системы Как изменить цель ссылки / dev / rtc? LDAP: просмотр структуры DIT из терминала

Что делать после отмены «rm -rf / usr /» на Arch?

Поэтому я просто сделал это на моей современной системе Arch:

[anna@home ~]$ sudo rm -rf /usr/ ^C[anna@home ~]$ ^C [anna@home ~]$ ^C 

Я быстро разорвал rm . Я не могу найти ничего плохого в /usr/ eye.

Какие существуют варианты, чтобы увидеть, был ли нанесен какой-либо ущерб? Есть ли проверка целостности pacman, которую я должен запустить? Любые конкретные файлы, которые я должен проверить, чтобы убедиться, что система может начать снова?

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

Я думаю, что Деннис Каарсемейкер написал правильную вещь: переустановите все пакеты.

Несколько минут googling раскрыли эту статью Arch wiki с разделом по переустановке всех пакетов. Поскольку вы не удаляли /var/cache/pacman/pkg , процесс должен происходить локально. Команда выглядит так:

 pacman -Qenq | pacman -S - 

pacamn -Qeng только списки «явно установленных», «родных» пакетов по группам. Он может пропустить некоторые пакеты из «дополнительных» или «общинных» репозиториев или любых пакетов AUR, которые вы установили. Я лично боюсь попробовать это, потому что мои установки Arch работают, но

 pacman -Qn | awk '{print $1}' | pacman -S - 

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

Если вам удастся удалить pacman , я думаю, что процесс просто может включать частичную «новую установку» с использованием Arch install ISO, но я боюсь рекомендовать это.

Если вы не хотите (повторно) устанавливать все пакеты, вы можете сделать трюк: подкаталоги check /var/lib/pacman/local и их files , содержащие все установленные файлы на пакет.

Итак, простой, не проверенный (и не идеальный) скрипт:

 cd /var/lib/pacman for package in *; do for file in $(grep ^usr ${package}/files); do [ -e "/${file}" ] || echo Bad package: ${package} done done 

Вы можете улучшить этот скрипт (возможно, если ${file} не существует, запустите pacman -S ${package} и продолжите), но я думаю, что основная идея не так уж плоха 🙂