Восстановить или заменить /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 / и т. д.) и переустановить все с нуля. Из того, что вы описали, я подозреваю, что вы не найдете всех проблем, скрывающихся в системе.