This page permanently redirects to gemini://raumdock.de/admin-gemlog/2015/08/defekte-rpm-datenbank-reparieren/.
2015-08-21
Heute gibt’s mal eine Problemlösung aus der Linux-Welt. Nehmen wir mal an, ihr habt einen SUSE Linux Enterprise Server[1] und nutzt dort das Paketverwaltungswerkzeug zypper. Eurem Server widerfährt eine Widrigkeit wie ein Stromausfall, während gerade auf die Platte geschrieben wurde oder der extern angebundene Storage bricht weg. Erste Maßnahme natürlich: ein fsck über sämtliche Dateisysteme. Aber ihr habt Pech, denn der Dateisystemschaden war derart massiv, dass nach der Reparatur manche Daten trotzdem beschädigt bleiben. Nach dem versuchten Update oder der Installation eines neuen Pakets mittels zypper bekommt ihr nur folgende Fehlermeldung zu sehen:
rpmdb: PANIC: fatal region error detected; run recovery error: db4 error(-30977) from dbenv->close: DB_RUNRECOVERY: Fatal error, run database recovery
Glücklicherweise gibt es einen Weg, die RPM-Datenbank zu reparieren, und der geht so:
Anlegen eines Backup-Verzeichnisses und Kopieren der beschädigten RPM-Datenbank:
mkdir /root/rpmdb_backup cp -avr /var/lib/rpm /root/rpmdb_backup
Löschen der defekten Datenbank-Dateien:
rm -f /var/lib/rpm/__db*
Reparieren/Neuerstellung der Datenbank:
db_verify /var/lib/rpm/Packages rpm --rebuilddb
Leeren des zypper-Caches:
zypper clean
Nun sollten sich wieder Softwarepakete installieren lassen.
(via nixCraft[2])
=> 1: https://de.wikipedia.org/wiki/SUSE_Linux_Enterprise_Server | 2: http://www.cyberciti.biz/faq/centos-rpmdb-panic-fatal-region-error-detected-run-recovery-error-and-solution/ This content has been proxied by September (3851b).Proxy Information
text/gemini; lang=de