💾 Archived View for raumdock.de › admin-gemlog › 2015 › 08 › defekte-rpm-datenbank-reparieren captured on 2021-12-04 at 18:04:22. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-12-03)
-=-=-=-=-=-=-
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