Question :Certains fichiers ou répertoires liés au système ont été supprimés/supprimés par erreur. Comment les récupérer ?
Dans ce cas, les fichiers système suivants sont manquants :
– /etc/nsswitch.conf
– /lib64/libc.so.6
Identifiez les fichiers/répertoires système qui ont été supprimés
L'étape suivante s'appuie sur la base de données RPM (rpmdb) pour identifier les fichiers et répertoires manquants. Par conséquent, la procédure s'applique uniquement aux fichiers/répertoires installés via un package RPM.
Procédez comme suit pour identifier les fichiers/répertoires supprimés par erreur :
# for i in `rpm -qa | sort` do echo "### $i: 'rpm -Vv $i' >> 'hostname'-'date %+F-%T'-rpm-Vv.txt done
La commande ci-dessus effectue un inventaire de tous les fichiers/répertoires en fonction de l'ensemble de packages actuellement installé. L'examen du fichier résultant produit une sortie telle que la suivante :
# 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
D'après la sortie ci-dessus, il est évident que le fichier /lib64/libc.so.6 installé à partir du package glibc-2.12-1.212.0.3.el6_10.3.x86_64 est absent du système. Passez en revue l'intégralité du journal pour identifier tous les fichiers/répertoires manquants et leurs packages d'origine. Reportez-vous à la page de manuel rpm pour les définitions des attributs du fichier de validation rpm.
# man rpm
Réinstaller/restaurer les fichiers/répertoires manquants
Après avoir identifié la liste des packages pour lesquels des fichiers/répertoires sont manquants, réinstallez ces versions exactes de packages sur le système concerné. Par exemple :
# yum reinstall glibc-2.12-1.212.0.3.el6_10.3.x86_64
Une fois terminé, répétez l'étape 1 pour confirmer que les fichiers/répertoires précédemment supprimés ne manquent plus, par exemple :
### 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 ...