Вопрос: Некоторые системные файлы или каталоги были удалены по ошибке.
Как их восстановить?
В этом случае отсутствуют следующие системные файлы:
- – /etc/nsswitch.conf
- – /lib64/libc.so.6
Определим, какие системные файлы / каталоги были удалены
Следующий шаг использует базу данных RPM (rpmdb) для определения отсутствующих файлов и каталогов.
Следовательно, процедура применима только к файлам/каталогам, установленным с помощью пакетов RPM.
Выполните следующие действия, чтобы определить, какие файлы / каталоги были удалены по ошибке:
# for i in `rpm -qa | sort`
do
echo "### $i: 'rpm -Vv $i' >> 'hostname'-'date %+F-%T'-rpm-Vv.txt
done
Приведенная выше команда выполняет инвентаризацию всех файлов/каталогов на основе текущего установленного набора пакетов.
Просмотр результирующего файла дает следующий результат:
# cat localhost-2020-12-11-11:45:27-rpm-Vv.txt
### glibc-2.12-1.212.0.3.el6_10.3.x86_64: ......... c /etc/gai.conf
......... c /etc/ld.so.conf
......... /etc/ld.so.conf.d
missing c /etc/nsswitch.conf
......... c /etc/rpc
......... /lib64/ld-2.12.so
......... /lib64/ld-linux-x86-64.so.2
......... /lib64/libBrokenLocale-2.12.so
......... /lib64/libBrokenLocale.so.1
......... /lib64/libSegFault.so
......... /lib64/libanl-2.12.so
......... /lib64/libanl.so.1
......... /lib64/libc-2.12.so
missing /lib64/libc.so.6
......... /lib64/libcidn-2.12.so
......... /lib64/libcidn.so.1
......... /lib64/libcrypt-2.12.so
......... /lib64/libcrypt.so.1
......... /lib64/libdl-2.12.so
......... /lib64/libdl.so.2
......... /lib64/libm-2.12.so
......... /lib64/libm.so.6
...
......... /usr/sbin/iconvconfig.x86_64
......... /usr/share/doc/glibc-2.12
......... d /usr/share/doc/glibc-2.12/BUGS
......... d /usr/share/doc/glibc-2.12/CONFORMANCE
......... d /usr/share/doc/glibc-2.12/COPYING
......... d /usr/share/doc/glibc-2.12/COPYING.LIB
......... d /usr/share/doc/glibc-2.12/FAQ
......... d /usr/share/doc/glibc-2.12/INSTALL
......... d /usr/share/doc/glibc-2.12/LICENSES
......... d /usr/share/doc/glibc-2.12/NEWS
......... d /usr/share/doc/glibc-2.12/NOTES
......... d /usr/share/doc/glibc-2.12/PROJECTS
......... d /usr/share/doc/glibc-2.12/README
......... d /usr/share/doc/glibc-2.12/README.hesiod
......... d /usr/share/doc/glibc-2.12/README.libm
......... /var/cache/ldconfig
Из вышеприведенного вывода очевидно, что файл /lib64/libc.so.6, установленный из пакета glibc-2.12-1.212.0.3.el6_10.3.x86_64, отсутствует в системе.
Просмотрите весь журнал, чтобы определить все отсутствующие файлы / каталоги и их исходные пакеты.
Обратитесь к странице руководства rpm для определения атрибутов файла проверки rpm.
Переустановим / восстановим недостающие файлы / каталоги
Определив список пакетов, для которых отсутствуют файлы / каталоги, переустановите эти точные версии пакетов в вашей системе.
Например:
# yum reinstall glibc-2.12-1.212.0.3.el6_10.3.x86_64
После завершения повторите шаг 1, чтобы убедиться, что ранее удаленные файлы / каталоги больше не отсутствуют, например:
### glibc-2.12-1.212.0.3.el6_10.3.x86_64: ......... c /etc/gai.conf
......... c /etc/ld.so.conf
......... /etc/ld.so.conf.d
......... c /etc/nsswitch.conf
......... c /etc/rpc
......... /lib64/ld-2.12.so
......... /lib64/ld-linux-x86-64.so.2
......... /lib64/libBrokenLocale-2.12.so
......... /lib64/libBrokenLocale.so.1
......... /lib64/libSegFault.so
......... /lib64/libanl-2.12.so
......... /lib64/libanl.so.1
......... /lib64/libc-2.12.so
......... /lib64/libc.so.6
......... /lib64/libcidn-2.12.so
......... /lib64/libcidn.so.1
......... /lib64/libcrypt-2.12.so
......... /lib64/libcrypt.so.1
......... /lib64/libdl-2.12.so
......... /lib64/libdl.so.2
......... /lib64/libm-2.12.so
......... /lib64/libm.so.6
...
......... /usr/sbin/iconvconfig.x86_64
......... /usr/share/doc/glibc-2.12
......... d /usr/share/doc/glibc-2.12/BUGS
......... d /usr/share/doc/glibc-2.12/CONFORMANCE
......... d /usr/share/doc/glibc-2.12/COPYING
......... d /usr/share/doc/glibc-2.12/COPYING.LIB
......... d /usr/share/doc/glibc-2.12/FAQ
......... d /usr/share/doc/glibc-2.12/INSTALL
......... d /usr/share/doc/glibc-2.12/LICENSES
......... d /usr/share/doc/glibc-2.12/NEWS
......... d /usr/share/doc/glibc-2.12/NOTES
......... d /usr/share/doc/glibc-2.12/PROJECTS
......... d /usr/share/doc/glibc-2.12/README
......... d /usr/share/doc/glibc-2.12/README.hesiod
......... d /usr/share/doc/glibc-2.12/README.libm
......... /var/cache/ldconfig
...