Eine Neuinstallation sollte definitiv nicht notwendig sein.
Ich sehe auch - soweit ich pacman kenne - keine "Datenbank", so wie ihr sie seht.
(Das mag auch ein Grund sein, warum pacman so "langsam" ist).
Die Daten zu einem Paket liegen unter /var/lib/pacman. Dort nach Reposirtory (core,
extra,...) unterteilt. Das core-Repo darin z.B. ist nicht mehr als das ausgepackte
core.deb.tar.gz was man jeweils bei -Sy vom Mirror holt/bzw. abgleicht.
Eine Sonderrolle hat lediglich das Dir local. Einträge dort sind installierte Pakete, die man
z.B. mit -Q abfrägt. Das sind Kopien der "Original-Dirs" z.B aus core, erweitert um
lokale Einträge (wann installiert, Abhängigkeiten). Lediglich dieses Verzeichniss hat
einen Sicherungswert, da die Informationen nicht einfach wiederherstellbar sind.
Ein Fehler war ja z.B.:
"error: could not open file /var/lib/pacman/community//perl-crypt-blowfish-2.10-2/desc: No such file or directory"
Frage ist jetzt: gibt es das File wirklich nicht? Oder ist es nur kaputt (Dateisystemfehler?)
Ich würe folgendes machen:
von
ftp.archlinux.org die jeweiligen Repo-Quellen runterladen, also core.db.tar.gz,
extra.db.tar.gz, usw.
Dann entweder selektiv angemeckerte Paket-Verzeichnisse daraus wiederherstellen,
oder einfach alle *.db.tar.gz nach /var/lib/pacman auspacken.
Somit solltest du wieder ein sauberes Repo-pacman-Dir bekommen.
Und dann nochmal ein pacman -Su anstossen, bzw. auch mal nur einzelne Pakete
versuchen zu updaten.
Wenn noch Fehler kommen, diese posten.
Ggf. pacman auch mal mit Debugging starten:
pacman --debug -Su
und mal die letzten 10-15 Zeilen vor dem Abbruch/Fehler posten.