Увы, но рецепт с db_dump не работает.
Попробуйте воспользоваться рецептом полной переинсталляции пакетов:
RPM Database Recoveryhttps://rpm.org/user_doc/db_recovery.htmlПакет rpm, в /var/lib/rpm/* содержит пустые файлы.
Скорее всего 'rpm -qa | sort' работать не будет по причине повреждённого Packages.
rpm хранит лог установки пакетов в /var/log/rpm* в формате:
<имя-инсталлированного-пакета>-<версия>-<индекс.архитектура>.rpm
Установка пакетов из списка, описана здесь:
https://forum.altlinux.org/index.php?topic=32361.msg234696#msg234696Бэкапить и содержимое /var/lib/rpm/* и лог /var/log/rpm*. Т.е. всё что будет изменяться.
Лог rpm содержит и имена пакетов не из репозитория.
Также содержит и все инсталлированные ядра с модулями. И это тоже нужно учитывать.
Из лога rpm, имена пакетов, парсить проще реверсом:
В имени rpm-пакета, минус - разделитель полей. Счёт полей с конца имени файла. Поэтому проще реверс:
Реверс - парсить третье поле и дальше - реверс.
Т.е. сделать так, как будто система устанавливается с нуля. Возможно потребуется воспользоваться архивом репозитория, по дате последнего выполненного dist-upgrade.
Если ядро будет устанавливаться/переустанавливаться списком через apt-get, а не через update-kernel, то при необходимости сгенерировать ram-диск инициализации для этого ядра.