Восстановить или заменить /bin/ папку в Linux

После отключения питания на моем сервере CentOS возникла проблема, из-за которой многие системные команды были повреждены. В результате я получаю сообщения о том, что "не могу выполнить двоичный файл" на таких важных командах, как rm или mv. Используя linux rescue cd, мне удалось заменить несколько файлов, чтобы вернуть меня в рабочее состояние, но я все еще сталкиваюсь с проблемами с менее важными командами, такими как sed или tar. Вместо того, чтобы находить и заменять каждый файл, который может быть разбит по отдельности, я хотел бы просто пойти дальше и полностью заменить или восстановить эти системные команды до их состояния по умолчанию. Я попытался запустить процесс обновления с моего диска CentOS, но это вызвало только проблему с моим файлом initrd и не исправило проблему с моими системными командами. Может кто-нибудь предложить, где я могу найти пакет для переустановки этих файлов без переустановки CentOS?

1 ответ

Решение

Как @Ency предлагает:

rpm --verify --all

покажет вам все, что изменилось.

Тем не менее, я предлагаю установить "yum-verify" или, если он еще не установлен, и затем использовать что-то вроде:

yum verify --verify-filenames='*bin/*'

Это очень похоже на "rpm --verify", но вы можете ограничить его определенными каталогами, и по умолчанию он не показывает изменения файла конфигурации.

Вывод на самом деле не говорит вам, из какого пакета что-то происходит, поэтому вам нужно использовать:

rpm -qf /full/path/to/file

или же

yum provides /full/path/to/file

чтобы увидеть, к какому пакету принадлежит этот файл

Тогда вы можете использовать:

yum reinstall packagename

переустановить RPM, даже если это та же версия.

Тем не менее, я рекомендую сделать резервную копию нужных вам файлов (/home, /etc, `/ var / и т. д.) и переустановить все с нуля. Из того, что вы описали, я подозреваю, что вы не найдете всех проблем, скрывающихся в системе.

Другие вопросы по тегам