Domanda :Alcuni file o directory relativi al sistema sono stati rimossi/eliminati erroneamente. Come recuperarli?
In questo caso, mancano i seguenti file di sistema:
– /etc/nsswitch.conf
– /lib64/libc.so.6
Identifica quali file/directory di sistema sono stati rimossi
Il passaggio seguente si basa sul database RPM (rpmdb) per identificare i file e le directory mancanti. Pertanto, la procedura è applicabile solo per file/directory installati tramite un pacchetto RPM.
Esegui le seguenti operazioni per identificare quali file/directory sono stati rimossi erroneamente:
# for i in `rpm -qa | sort` do echo "### $i: 'rpm -Vv $i' >> 'hostname'-'date %+F-%T'-rpm-Vv.txt done
Il comando precedente esegue un inventario di tutti i file/directory in base al set di pacchetti attualmente installato. La revisione del file risultante produce un output come il seguente:
# 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
Dall'output sopra, è evidente che il file /lib64/libc.so.6 installato dal pacchetto glibc-2.12-1.212.0.3.el6_10.3.x86_64 manca dal sistema. Esaminare l'intero registro per identificare tutti i file/directory mancanti e i relativi pacchetti di origine. Fare riferimento alla pagina man di rpm per le definizioni degli attributi del file di convalida rpm.
# man rpm
Reinstalla/ripristina i file/le directory mancanti
Dopo aver identificato l'elenco dei pacchetti per i quali mancano file/directory, reinstallare le versioni esatte del pacchetto sul sistema interessato. Ad esempio:
# yum reinstall glibc-2.12-1.212.0.3.el6_10.3.x86_64
Una volta completato, esegui nuovamente il passaggio 1 per confermare che i file/directory rimossi in precedenza non siano più mancanti, ad esempio:
### 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 ...