ЗдравствуйтеИзначально веб-сервер (apache24 + mysql + php) под FreeBSD 11.1-RELEASE, ядро GENERIC, виртуальная машина (под Hyper-V), внутри вертится десяток сайтов-сервисов.
Месяц назад было заполнение дисковой c повисанием mysql, вследствие чего сервер был остановлен на расширение дискового пространства и раздела ufs.
Расширение прошло успешно, раздел ufs и mysql базы проверены на целостность, визуально ничего не пострадало, все веб-сервисы отработали месяц.
gpart show:
=> 40 266338224 da0 GPT (127G)
40 409600 1 efi (200M)
409640 257540088 2 freebsd-ufs (123G)
257949728 8388535 3 freebsd-swap (4.0G)
266338263 1 - free - (512B)
Разработчики попросили обновить ряд пакетов - решил заодно перейти на FreeBSD 11.2-RELEASE.
После успешного перевода на 11.2 перед обновлением пакетов прогнал pkg info и получил ошибку БД pkg:
pkg info:
ImageMagick-nox11-6.9.9.28,1 Image processing tools (legacy version)
apache24-2.4.33 Version 2.4.x of Apache web server
apr-1.6.3.1.6.1_1 Apache Portability Library
avahi-app-0.6.31_6 Service discovery on a local network
pkg: sqlite error while executing iterator in file pkgdb_iterator.c:1035: database disk image is malformed
Попробовал откатить БД sqlite с последней копии в /var/backups - после восстановления БД получил тот же результат.
Самая старая копия стандартной недельной давности, с аналогичным результатом.
local.sqlite визуально целый, простейшие запросы вручную в нем видят все установленные пакеты.
repo-FreeBSD.sqlite целый, pkg search прекрасно находит в нем произвольные пакеты
Подозреваю, что каким-то образом local.sqlite запоролась при исчерпании свободного места на разделе.
На всякий случай есть бекап всех рабочих конфигов системы и софта вместе с дампом вывода pkg info (есть такая привычка его делать каждый раз при обновлении/установке пакетов).
В теории конечно можно переставить все пакеты (159 шт.) с перезаливкой конфигов и БД, но по времени наверно уже проще будет сформировать эту виртуалку заново.
Вопрос. Существуют ли инструменты автоматического поиска установленных пакетов либо ремонта БД pkg?
Из известных Гуглю подобных проблем все датируется седыми годами и в основном связано с проблемами перехода на pkg/pkg2ng.