суббота, 15 августа 2015 г.

[Solved] dconf: invalid gvdb problem (mate)

Вступление

Сегодня я наконец-то решил одну противную проблему, с которой начал регулярно сталкиваться после замены "второгнома" на mate.

Описание проблемы

Компьютер у меня старенький, медленный, а я наоборот, молодой и горячий нетерпеливый. Эти два фактора регулярно приводят к тому, что у меня некоторые приложения "задымываются" и подвешивают "столешницу" (mate у меня).

Результат - грязная перезагрузка, после которой у меня и слетает стол. Выглядит это как прыгающие значки на фоне по умолчанию и дергающаяся верхняя панель при отсутствии нижней. При этом, пользоваться ничем практически невозможно: тормозит как электричка с включенным стоп-краном, а индикатор активности жестких дисков горит непрерывно. При этом marco и mate-panel сваливаются в корки. При этом, однако, с горем пополам, мне удалось создать на рабочем столе кнопку запуска xterm и, с помощью нее, запустить эмулятор терминала.

Симптоматика

Прежде чем пытаться "лечить" свой компьютер моим методом, убедитесь, что у Вас реально такая же проблема, как у меня. Если визуально все выглядит примерно как я описал, это еще ничего не значит. Убедиться, что у вас проблема та же можно, как минимум, двумя способами.

Первый способ проверки

Запустите эмулятор терминала (обязательно) из "раздолбанной" сессии mate (как я умудрился это сделать написано в описании проблемы). В эмуляторе терминала выполните следующую команду.
% mate-panel --reset
Если ничего не произойдет, а в эмулятор вывалятся предупреждения о том, что-де invalid gvdb header, можете приступать к "лечению".

Второй способ проверки

Посмотрите не пуст ли файл ~/.config/dconf/user, используя следующую команду.
% $PAGER ~/.config/dconf/user
Если файл окажется пустым или не бинарным, можете закрывать свой pager и приступать к "лечению".
В принципе, вы можете применять мой способ восстановления базы данных даже если ни первый, ни второй "анализы" не были положительными. В любом случае, Вы действуете на свой страх и риск.

Третий способ проверки

Если следующая команда не выведет ничего, это тоже значит что база ваших конфигурационных данных, как минимум пуста, что необычно и заставляет подозревать ее в том, что она повреждена.
% dconf list /

Исправление

Итак, слёт настроек после грязной перезагрузки вызывается повреждением файла базой конфигурационной данных. К счастью, создаются регулярные копии этой базы. Мой способ исправления заключается в банальном восстановлении предыдущей (неповрежденной) версии файла базы. Итак, три волшебные команды.
% cd ~/.config/dconf
% mv user user.old
% mv user.8CWQ2X user
Файл user.8CWQ2X является файлом резервной копии базы данных, которую надо восстановить. Понятное дело, что буквы и цифры после точки в имени бэкапа у Вас будут совершенно другими. Также, вполне вероятно, что у Вас будет несколько таких файлов. Вам, понятное дело, следует использовать самый "свежий" из них.

Результат

В результате выполнения данной операции, ваша конфигурационная база данных будет восстановлена. Разумеется, существует вероятность, что изменения конфигурации, сделанные после создания использованного бэкапа пропадут. Но, согласитесь, это лучше чем конфигурировать всю систему заново, не правда ли?

Комментариев нет:

Отправить комментарий