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

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

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

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

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

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

2 Solutions collect form web for “Что делать после отмены «rm -rf / usr /» на Arch?”

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

Несколько минут 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} и продолжите), но я думаю, что основная идея не так уж плоха 🙂

  • Как удалить файлы в одной папке, которая старше 60 дней в UNIX?
  • Удаление определенных типов файлов, кроме папки
  • У меня есть файл, который я не могу удалить после того, как файл mv был прерван
  • Удалить все, кроме нескольких расширений
  • Как удалить папки, созданные с именами дат 2016-04-03 до 2016-10-4
  • Как удалить tmp-файлы с грязными именами?
  • Каков наилучший способ форматирования жесткого диска в Linux, чтобы не оставлять следов?
  • du не может получить доступ к файлу - нет такой ошибки файла или каталога
  • rm -fr не работает
  • Не удалось удалить файл в Fedora
  • Как рекурсивно удалить все файлы и папки, кроме нескольких определенных папок?
  • Interesting Posts

    Как найти секунды с полуночи?

    загрузка файла в массив, обработка второго файла с использованием данных в aray

    Как создать список элементов под определенными заголовками в текстовом документе? (Linux / Bash)

    Неполадка с помощью правила ebtables, которое не работает: разрешение только локального сетевого трафика

    Ubuntu 16.04 su может требовать USB-устройства, но другие пользователи не могут

    Как проверить работоспособность системы с определенным номером

    rsync over ssh без ввода пароля каждый раз

    Что означает число на странице руководства?

    как правильно планировать задачу, которая планирует задачу с помощью «at» (atd)? или как правильно указывать / бежать в bash

    найти и скопировать файлы, изменить измененную дату на 1980-1-1

    Получение неполного результата в netstat

    Не показывать первую строку с общими привязками клавиш в меню мутта

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

    iptables ограничивает входящие подключения к контейнеру Docker

    Как написать сценарий bash, который регистрируется на другой машине, чтобы делать что-то?

    Linux и Unix - лучшая ОС в мире.