Вопрос или проблема
После дальнейшего расследования с помощью
journalctl -xeu snapd.failure.service
я подал отчет о баге с результатами:
https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/2081579
У меня есть настольный компьютер с установленным Ubuntu 24.04 LTS. Я использовал вариант установки TPM FDE на основе образа ядра из snap.
Я заметил, что команда go
не отвечает и перезагрузил систему, надеясь, что проблема будет решена, но этого не произошло. Ubuntu 24.04 направляет пользователей на установку golang в виде классического snap, чтобы использовать последнюю версию. Поэтому я хотел проверить, есть ли что-то не так со snapd. Оказалось, да, с snapd снова есть проблема. См. “Наблюдение и резюме” ниже.
Вопрос: Как мы можем исправить эту ситуацию, не сломав систему?
Примечание: Snap-версия golang меня вполне устраивала, я хотел позже ознакомиться с mise. Я это сделал сейчас с помощью eval "$(~/.local/bin/mise activate bash)"; mise use -g go
после того, как уже установил бинарный файл. Таким образом, эта проблема решена, у snapd стало на одну ответственность меньше.
Наблюдение и резюме ниже:
-
Система была установлена менее 3 месяцев назад, и это вторая критическая проблема. Это не похоже на то, что я устанавливаю много пакетов, делаю много настроек и занимаюсь другими странными вещами.
-
Выполнение
snap list
теперь занимает 5 секунд (2024-08-27T17:58:00+02:00 – 2024-08-27T17:58:05+02:00), ранее это было практически мгновенно. Я могу подтвердить, что на другой системе это занимает не более 2 секунд. -
snapd.socket
кажется, отключает сам себя после выполнения первого вызова snapd.Сообщение об ошибке:
error: cannot list snaps: cannot communicate with server: Get "http://localhost/v2/snaps": dial unix /run/snapd.socket: connect: connection refused
Сообщение об ошибке появляется через 2 минуты (2024-08-27T17:58:13+02:00 –
2024-08-27T18:00:13+02:00) -
Это влияет не только на вызовы
snap list
илиgo
, но и на Firefox.- Это не особо беспокоит меня, так как я оценил snap и snap-версию Firefox как ненадежное программное обеспечение и потратил время на настройку и использование Firefox из Flathub после первых проблем, с которыми я столкнулся с snap-версией Firefox много лет назад. Кстати, Firefox из Flathub работает совершенно нормально.
- Эта проблема, похоже, возникает снова и снова. Снова и снова, от релиза к релизу я действительно хочу дать snap шанс, и он всегда ломается! Canonical, вам действительно нужно починить ваше токсичное сломанное программное обеспечение!
-
Ранее пользователи прибегали к команде
sudo apt autoremove --purge snapd
и переустанавливали snap. Поскольку snap теперь держит ключи для ядра и шифрования диска, делать это, не будучи на 100% уверенным, что система останется загрузочной, – это очень плохая идея. Меня не беспокоит содержимое моего корневого раздела и домашнего каталога, я могу разблокировать том LUKS с помощью пароля, так как я предпринял дополнительные шаги, но в наихудшем случае система может стать незагрузочной и потребовать переустановки. -
В конце концов, я смог выполнить
sudo snap remove go
, запустивwhile true; do sleep 10; [[ $(systemctl is-active snapd.socket) == inactive ]] && sudo systemctl start snapd.socket; done
в другом терминале. Таким образом, snapd показывает некоторые признаки жизни, но это выходит за пределы того, что обычные пользователи будут терпеть. -
Кто-то предложил проверить с помощью
systemctl status snapd.apparmor
. Он включен и выполняется, однако сокет все еще отключается, если я не использую цикл.
bt@za31:~$ snap list
error: cannot list snaps: cannot communicate with server: Get "http://localhost/v2/snaps": dial unix /run/snapd.socket: connect: connection refused
bt@za31:~$ sudo systemctl status snapd.socket
○ snapd.socket - Socket activation for snappy daemon
Loaded: loaded (/usr/lib/systemd/system/snapd.socket; enabled; preset: enabled)
Active: inactive (dead) since Tue 2024-08-27 17:49:43 CEST; 3min 52s ago
Duration: 34.415s
Triggers: ● snapd.service
Listen: /run/snapd.socket (Stream)
/run/snapd-snap.socket (Stream)
CPU: 718us
Aug 27 17:49:08 za31 systemd[1]: Starting snapd.socket - Socket activation for snappy daemon...
Aug 27 17:49:08 za31 systemd[1]: Listening on snapd.socket - Socket activation for snappy daemon.
Aug 27 17:49:43 za31 systemd[1]: snapd.socket: Deactivated successfully.
Aug 27 17:49:43 za31 systemd[1]: Closed snapd.socket - Socket activation for snappy daemon.
bt@za31:~$ sudo systemctl start snapd.socket
bt@za31:~$ sudo systemctl status snapd.socket
● snapd.socket - Socket activation for snappy daemon
Loaded: loaded (/usr/lib/systemd/system/snapd.socket; enabled; preset: enabled)
Active: active (listening) since Tue 2024-08-27 17:53:49 CEST; 9s ago
Triggers: ● snapd.service
Listen: /run/snapd.socket (Stream)
/run/snapd-snap.socket (Stream)
Tasks: 0 (limit: 231600)
Memory: 0B (peak: 0B)
CPU: 756us
CGroup: /system.slice/snapd.socket
Aug 27 17:53:49 za31 systemd[1]: Starting snapd.socket - Socket activation for snappy daemon...
Aug 27 17:53:49 za31 systemd[1]: Listening on snapd.socket - Socket activation for snappy daemon.
bt@za31:~$ date -Isec; snap list; date -Isec
2024-08-27T17:58:00+02:00
Name Version Rev Tracking Publisher Notes
bare 1.0 5 latest/stable canonical✓ base
canonical-livepatch 10.8.3 282 latest/stable canonical✓ -
core22 20240731 1564 latest/stable canonical✓ base
firefox 129.0.2-1 4793 latest/stable/… mozilla✓ -
firmware-updater 0+git.5007558 127 latest/stable/… canonical✓ -
gnome-42-2204 0+git.510a601 176 latest/stable/… canonical✓ -
go 1.23.0 10698 latest/stable canonical✓ classic
gtk-common-themes 0.1-81-g442e511 1535 latest/stable/… canonical✓ -
pc 23.10-1 161 classic-24.04/stable canonical✓ gadget,disabled
pc-kernel 6.8.0-40.40 1938 24/stable canonical✓ kernel
snap-store 0+git.e3dd562 1173 latest/stable/… canonical✓ -
snapd 2.63 21759 latest/stable canonical✓ snapd
snapd-desktop-integration 0.9 178 latest/stable/… canonical✓ -
2024-08-27T17:58:05+02:00
bt@za31:~$ date -Isec; snap list; date -Isec
2024-08-27T17:58:13+02:00
error: cannot list snaps: cannot communicate with server: Get "http://localhost/v2/snaps": dial unix /run/snapd.socket: connect: connection refused
2024-08-27T18:00:13+02:00
bt@za31:~$ sudo systemctl status snapd.socket
○ snapd.socket - Socket activation for snappy daemon
Loaded: loaded (/usr/lib/systemd/system/snapd.socket; enabled; preset: enabled)
Active: inactive (dead) since Tue 2024-08-27 17:57:49 CEST; 2min 38s ago
Duration: 3min 59.843s
Triggers: ● snapd.service
Listen: /run/snapd.socket (Stream)
/run/snapd-snap.socket (Stream)
CPU: 756us
Aug 27 17:53:49 za31 systemd[1]: Starting snapd.socket - Socket activation for snappy daemon...
Aug 27 17:53:49 za31 systemd[1]: Listening on snapd.socket - Socket activation for snappy daemon.
Aug 27 17:57:49 za31 systemd[1]: snapd.socket: Deactivated successfully.
Aug 27 17:57:49 za31 systemd[1]: Closed snapd.socket - Socket activation for snappy daemon.
bt@za31:~$ systemctl status snapd.apparmor
● snapd.apparmor.service - Загрузка профилей AppArmor, управляемых внутренне snapd
Loaded: loaded (/usr/lib/systemd/system/snapd.apparmor.service; enabled; preset: enabled)
Active: active (exited) since Tue 2024-08-27 17:22:52 CEST; 1h 27min ago
Main PID: 1516 (code=exited, status=0/SUCCESS)
CPU: 203ms
Aug 27 17:22:52 za31 systemd[1]: Starting snapd.apparmor.service - Загрузка профилей AppArmor, управляемых внутренне snapd...
Aug 27 17:22:52 za31 snapd-apparmor[1516]: main.go:124: Загрузка профилей [/var/lib/snapd/apparmor/profiles/snap-confine.snapd.21465 /var/lib/snapd/apparmor/profiles/snap-confine.snapd.21>
Aug 27 17:22:52 za31 systemd[1]: Завершено snapd.apparmor.service - Загрузка профилей AppArmor, управляемых внутренне snapd.
Редактировать 2024-08-28
Сегодня я взял ноутбук с той же установкой Ubuntu TPM FDE, которую могу принести в жертву и переустановить, если это необходимо, без значительного влияния на мою производительность.
Наблюдения:
-
sudo apt remove snapd
&sudo apt install firefox gnome-software-plugin-snap snapd
можно выполнить без особого риска. другая система все еще была загрузочной. Проблема с snapd не была решена на пораженной машине, однако. -
sudo apt autoremove --purge snapd
завершается с сообщением об ошибке, что некоторые файлы hunspell из Firefox не могут быть удалены, и поэтому snapd не может быть полностью удален. Результат после переустановки пакетов: проблема с snapd не была решена на пораженной машине.- Я сам пытался удалить файлы с помощью
sudo rm -v ...
и получил ту же ошибку. Я пыталсяsudo touch /test.txt
иsudo touch /var/snap/test.txt
, потому что не был уверен, что просто сделал что-то плохое с файловой системой. Похоже, все в порядке, жертвенный ноутбук загрузился, надеюсь, что и рабочая станция станет позже. - Хорошо, вы используете настольный компьютер с Ubuntu, вы практически полагаетесь на snapd, так на что бы вам когда-либо захотелось его удалить когда он работает нормально. Я понимаю это.
- Примечание: У нас нет таких проблем с Flatpak!
- Я сам пытался удалить файлы с помощью
-
Я спросил Gemini, которая в основном дала мне ту же процедуру устранения неполадок и упомянула что-то вроде “Сокет snapd не создан или поврежден”. Это интересная формулировка, судя по тому, что я могу видеть и выводить, служба, которая запускает сокет и должна поддерживать его работоспособность, имеет проблему.
Тестовая система:
bt@za28:~$ sudo apt remove snapd
[sudo] пароль для bt:
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты будут УДАЛЕНЫ:
firefox gnome-software-plugin-snap snapd
0 обновлено, 0 нового установлено, 3 удалено и 1 не обновлено.
После этой операции будет освобождено 111 МБ дискового пространства.
Вы хотите продолжить? [Y/n]
(Чтение базы данных ... 120027 файлов и директорий в настоящее время установлено.)
Удаление firefox (1:1snap1-0ubuntu5) ...
Удаление gnome-software-plugin-snap (46.0-1ubuntu2) ...
Удаление snapd (2.63.1+24.04) ...
Остановка 'snapd.service', но его триггерные единицы все еще активны:
snapd.socket
Обработка триггеров для hicolor-icon-theme (0.17-2) ...
Обработка триггеров для gnome-menus (3.36.0-1.1ubuntu3) ...
Обработка триггеров для man-db (2.12.0-4build2) ...
Обработка триггеров для dbus (1.14.10-4ubuntu4.1) ...
Обработка триггеров для desktop-file-utils (0.27-2build1) ...
bt@za28:~$ sudo apt install firefox gnome-software-plugin-snap snapd
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие НОВЫЕ пакеты будут установлены:
firefox gnome-software-plugin-snap snapd
0 обновлено, 3 новые установлены, 0 удалено и 1 не обновлено.
Необходимо загрузить 28.2 МБ архивов.
После этой операции будет использовано 111 МБ дополнительного дискового пространства.
Получено:1 http://de.archive.ubuntu.com/ubuntu noble-updates/main amd64 snapd amd64 2.63.1+24.04 [28.0 МБ]
Получено:2 http://de.archive.ubuntu.com/ubuntu noble/main amd64 firefox amd64 1:1snap1-0ubuntu5 [77.3 кБ]
Получено:3 http://de.archive.ubuntu.com/ubuntu noble/universe amd64 gnome-software-plugin-snap amd64 46.0-1ubuntu2 [31.1 кБ]
Загружено 28.2 МБ за 2с (18.5 МБ/с)
Предварительная конфигурация пакетов ...
Выбор ранее не выбранного пакета snapd.
(Чтение базы данных ... 119923 файлов и каталогов в настоящее время установлено.)
Подготовка к распаковке .../snapd_2.63.1+24.04_amd64.deb ...
Распаковка snapd (2.63.1+24.04) ...
Настройка snapd (2.63.1+24.04) ...
snapd.failure.service - отключена или статическая единица не запускается, не запускаем ее.
snapd.snap-repair.service - отключена или статическая единица не запускается, не запускаем ее.
Не удалось перезапустить snapd.mounts-pre.target: Операция отклонена, единица snapd.mounts-pre.target может быть запрошена только зависимостью (она настроена на отклонение ручного запуска/остановки).
Смотрите системные журналы и 'systemctl status snapd.mounts-pre.target' для подробностей.
Не удалось выполнить systemctl: в строке /usr/bin/deb-systemd-invoke 148.
Выбор ранее не выбранного пакета firefox.
(Чтение базы данных ... 120009 файлов и каталогов в настоящее время установлено.)
Подготовка к распаковке .../firefox_1%3a1snap1-0ubuntu5_amd64.deb ...
=> Установка snap-версии firefox
==> Проверка подключения к snap store
==> Установка snap-версии firefox
snap "firefox" уже установлен, смотрите 'snap help refresh'
=> Установка snap завершена
Распаковка firefox (1:1snap1-0ubuntu5) ...
Выбор ранее не выбранного пакета gnome-software-plugin-snap.
Подготовка к распаковке .../gnome-software-plugin-snap_46.0-1ubuntu2_amd64.deb ...
Распаковка gnome-software-plugin-snap (46.0-1ubuntu2) ...
Настройка firefox (1:1snap1-0ubuntu5) ...
update-alternatives: используется /usr/bin/firefox для обеспечения /usr/bin/gnome-www-browser (gnome-www-browser) в автоматическом режиме
update-alternatives: используется /usr/bin/firefox для обеспечения /usr/bin/x-www-browser (x-www-browser) в автоматическом режиме
Настройка gnome-software-plugin-snap (46.0-1ubuntu2) ...
Обработка триггеров для hicolor-icon-theme (0.17-2) ...
Обработка триггеров для gnome-menus (3.36.0-1.1ubuntu3) ...
Обработка триггеров для man-db (2.12.0-4build2) ...
Обработка триггеров для dbus (1.14.10-4ubuntu4.1) ...
Обработка триггеров для desktop-file-utils (0.27-2build1) ...
# ---
bt@za28:~$ sudo apt autoremove --purge snapd
[sudo] пароль для bt:
Извините, попробуйте снова.
[sudo] пароль для bt:
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты будут УДАЛЕНЫ:
firefox* gnome-software-plugin-snap* snapd*
0 обновлено, 0 новых установлено, 3 удалено и 1 не обновлено.
После этой операции будет освобождено 111 МБ дискового пространства.
Вы хотите продолжить? [Y/n]
(Чтение базы данных ... 120027 файлов и директорий в настоящее время установлено.)
Удаление firefox (1:1snap1-0ubuntu5) ...
Удаление gnome-software-plugin-snap (46.0-1ubuntu2) ...
Удаление snapd (2.63.1+24.04) ...
Остановка snap-bare-5.mount
Остановка единицы snap-bare-5.mount
Ожидание, пока единица snap-bare-5.mount остановится [попытка 1]
snap-bare-5.mount остановлена.
Удаление snap bare и ревизии 5
Удаление snap-bare-5.mount
Остановка snap-core22-1439.mount
Остановка единицы snap-core22-1439.mount
Ожидание, пока единица snap-core22-1439.mount остановится [попытка 1]
snap-core22-1439.mount остановлена.
Удаление snap core22 и ревизии 1439
Удаление snap-core22-1439.mount
Остановка snap-core22-1564.mount
Остановка единицы snap-core22-1564.mount
Ожидание, пока единица snap-core22-1564.mount остановится [попытка 1]
snap-core22-1564.mount остановлена.
Удаление snap core22 и ревизии 1564
Удаление snap-core22-1564.mount
Остановка snap-firefox-4209.mount
Остановка единицы snap-firefox-4209.mount
Ожидание, пока единица snap-firefox-4209.mount остановится [попытка 1]
snap-firefox-4209.mount остановлена.
Удаление snap firefox и ревизии 4209
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_DE.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_DE.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_BE.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_LU.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/en_US.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/en_US.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_LU.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_BE.dic': Файловая система только для чтения
dpkg: ошибка при обработке пакета snapd (--purge):
установленный пакет snapd вызвал ошибку при выполнении post-removal скрипта с кодом выхода 1
Удаление файлов конфигурации для firefox (1:1snap1-0ubuntu5) ...
Возникли ошибки при обработке:
snapd
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Пораженная система:
bt@za31:~$ sudo apt autoremove --purge snapd
[sudo] пароль для bt:
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты будут УДАЛЕНЫ:
firefox* gnome-software-plugin-snap* snapd*
0 обновлено, 0 новых установлено, 3 удалено и 0 не обновлено.
После этой операции будет освобождено 111 МБ дискового пространства.
Вы хотите продолжить? [Y/n]
(Чтение базы данных ... 131140 файлов и директорий в настоящее время установлено.)
Удаление firefox (1:1snap1-0ubuntu5) ...
Удаление gnome-software-plugin-snap (46.0-1ubuntu2) ...
Удаление snapd (2.63.1+24.04) ...
Остановка snap.canonical-livepatch.canonical-livepatchd.service
Остановка единицы snap.canonical-livepatch.canonical-livepatchd.service
Ожидание, пока единица snap.canonical-livepatch.canonical-livepatchd.service остановится [попытка 1]
snap.canonical-livepatch.canonical-livepatchd.service остановлена.
Обработка триггеров для hicolor-icon-theme (0.17-2) ...
Обработка триггеров для gnome-menus (3.36.0-1.1ubuntu3) ...
Обработка триггеров для man-db (2.12.0-4build2) ...
Обработка триггеров для dbus (1.14.10-4ubuntu4.1) ...
Обработка триггеров для desktop-file-utils (0.27-2build1) ...
(Чтение базы данных ... 131035 файлов и директорий в настоящее время установлено.)
Удаление файлов конфигурации для snapd (2.63.1+24.04) ...
Остановка snap.canonical-livepatch.canonical-livepatchd.service
Остановка единицы snap.canonical-livepatch.canonical-livepatchd.service
Ожидание, пока единица snap.canonical-livepatch.canonical-livepatchd.service остановится [попытка 1]
snap.canonical-livepatch.canonical-livepatchd.service остановлена.
Удаление snap.canonical-livepatch.canonical-livepatchd.service
Остановка snap-bare-5.mount
Остановка единицы snap-bare-5.mount
Ожидание, пока единица snap-bare-5.mount остановится [попытка 1]
snap-bare-5.mount остановлена.
Удаление snap bare и ревизии 5
Удаление snap-bare-5.mount
Остановка snap-canonical\x2dlivepatch-278.mount
Остановка единицы snap-canonical\x2dlivepatch-278.mount
Ожидание, пока единица snap-canonical\x2dlivepatch-278.mount остановится [попытка 1]
snap-canonical\x2dlivepatch-278.mount остановлена.
Удаление snap canonical-livepatch и ревизии 278
Удаление snap-canonical\x2dlivepatch-278.mount
Остановка snap-canonical\x2dlivepatch-282.mount
Остановка единицы snap-canonical\x2dlivepatch-282.mount
Ожидание, пока единица snap-canonical\x2dlivepatch-282.mount остановится [попытка 1]
snap-canonical\x2dlivepatch-282.mount остановлена.
Удаление snap canonical-livepatch и ревизии 282
Удаление snap-canonical\x2dlivepatch-282.mount
Остановка snap-core22-1439.mount
Остановка единицы snap-core22-1439.mount
Ожидание, пока единица snap-core22-1439.mount остановится [попытка 1]
snap-core22-1439.mount остановлена.
Удаление snap core22 и ревизии 1439
Удаление snap-core22-1439.mount
Остановка snap-core22-1564.mount
Остановка единицы snap-core22-1564.mount
Ожидание, пока единица snap-core22-1564.mount остановится [попытка 1]
snap-core22-1564.mount остановлена.
Удаление snap core22 и ревизии 1564
Удаление snap-core22-1564.mount
Остановка snap-firefox-4757.mount
Остановка единицы snap-firefox-4757.mount
Ожидание, пока единица snap-firefox-4757.mount остановится [попытка 1]
snap-firefox-4757.mount остановлена.
Удаление snap firefox и ревизии 4757
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_LU.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_BE.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/en_US.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_BE.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/en_US.dic': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_LU.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_DE.aff': Файловая система только для чтения
rm: невозможно удалить '/var/snap/firefox/common/host-hunspell/de_DE.dic': Файловая система только для чтения
dpkg: ошибка при обработке пакета snapd (--purge):
установленный пакет snapd вызвал ошибку при выполнении post-removal скрипта с кодом выхода 1
Удаление файлов конфигурации для firefox (1:1snap1-0ubuntu5) ...
Возникли ошибки при обработке:
snapd
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Редактировать 2024-09-28:
Файл /var/lib/snapd/device/disk-mapping.json
содержит имя устройства, которое может потребоваться обновить после изменений, которые влияют на нумерацию устройств. Изменение nvme2
на nvme4
или любое другое, которое может быть определено как диск Ubuntu FDE в lsblk
или Gnome Disks, за которым следует systemctl start snapd.socket
, должно восстановить работу snapd. Перезапуск сокета может даже не понадобиться, так как snapd.failure.service
вскоре попытается решить проблему, которую можно проверить с помощью journalctl -e --unit snapd.failure.service
. Я выполнил sudo snap refresh pc-kernel; snap list
и смог перезагрузиться успешно. Пораженные пользователи должны проверить свои машины таким образом перед перезагрузкой, в противном случае они загрузятся в указанный режим, где сетевое соединение недоступно. Мне удалось восстановиться из этой ситуации, но мне еще не ясно, что кроме изменения имени устройства вернуло систему обратно в обычное состояние. Простое изменение имени устройства не было достаточным во время нескольких попыток.
Редактировать 2024-09-06:
-
Как я писал, я пытался переустановить пакет
snapd
, что не решило проблему. Несколько дней и перезагрузок (обновления?) спустя я обнаружил, что моя система загрузилась в некий ограниченный режим. Работал только один дисплей с низким разрешением, сеть и многие накопители отсутствовали. Без всякого знания о том, как устранять неполадки в snap-установке pc-kernel в этих обстоятельствах, переустановка была неизбежной. USB-накопители не распознавались, поэтому для создания резервной копии последнего состояния пришлось использовать загрузочные медиа. На положительной стороне: ZFS работает в среде загрузочных медиа сразу из коробки! - Сообщение об ошибке от snap-failure о “Нет такого устройства” больше не появлялось или не приводило к критическому сбою snapd. У меня пока нет времени проверить подробнее.
Думая о ситуации в данном конкретном случае, временным обходным решением могло бы быть одно из следующих:
- Переустановить Ubuntu и избегать изменения какой-либо перенастройки оборудования, которая могла бы изменить порядок накопителей при использовании установки TPM FDE. Это просто для пользователей ноутбуков, но для пользователей настольных компьютеров и рабочих станций это немного противоречит самой идее иметь машину, в которой можно менять и перенастраивать детали.
- Запустить скрипт, например
while true; do sleep 10; sudo systemctl start snapd.socket; done
илиwhile true; do sleep 10; [[ $(systemctl is-active snapd.socket) == inactive ]] && sudo systemctl start snapd.socket; done
в фоновом режиме. Второй требует настройки sudoers, первый кажется немного более громоздким. Ну, оба решения не оптимальны.
Для долгосрочного решения Ubuntu должна:
-
Исправить логику, которая, по-видимому, жестко кодирует загрузочное устройство, что приводит к сообщению об ошибке, подобному этому:
Aug 28 15:52:25 za31 snap-failure[650745]: logger.go:93: DEBUG: Running task 723 on Doing: Update assets from gadget "pc" (184) Aug 28 15:52:25 za31 snap-failure[650745]: logger.go:93: DEBUG: cannot locate disk for volume pc with method device path because err: Aug 28 15:52:25 za31 snap-failure[650745]: ----- Aug 28 15:52:25 za31 snap-failure[650745]: stderr: Aug 28 15:52:25 za31 snap-failure[650745]: Unknown device "/sys/devices/pci0000:20/0000:20:01.2/0000:2d:00.0/nvme/nvme2/nvme2n1": No such device Aug 28 15:52:25 za31 snap-failure[650745]: ----- Aug 28 15:52:25 za31 snap-failure[650745]: logger.go:93: DEBUG: OnDiskStructureFromPartition: p.FilesystemType "", p.FilesystemLabel ""
-
Пересмотреть конфигурацию snapd и предоставить четкие инструкции по устранению неполадок для таких случаев.
Ответ или решение
Проблема с медленной работой и некорректным функционированием snapd
в Ubuntu 24.04 LTS действительно может быть связана с разнообразными факторами, особенно в случаях использования TPM FDE (шаблон полной дисковой шифрования). На основании вашего описания и проведённого вами анализа, я выделю ряд рекомендаций, которые помогут устранить текущие проблемы без риска для системы.
Анализ проблемы
Основные симптомы включают:
- Долгое время отклика команд, таких как
snap list
, что занимает до 5 секунд, тогда как обычно это происходит мгновенно. - Ошибка при попытке взаимодействовать с
snapd.socket
: сообщения об отказе в подключении. - Неактивность
snapd.socket
, который сам себя деактивирует.
Рекомендации по устранению
-
Проверка состояния и перезапуск служб:
Выполните следующие команды для мониторинга статусаsnapd
и его сокета:systemctl status snapd.service systemctl status snapd.socket
Если сокет неактивен, вы можете попробовать вручную его запустить:
sudo systemctl start snapd.socket
-
Исправление конфигурации
disk-mapping.json
:
Изменение имени устройства в файле/var/lib/snapd/device/disk-mapping.json
может помочь, если устройство было переименовано. Проверьте имя устройства с помощьюlsblk
и обновите файл, если это необходимо. Затем запустите:sudo systemctl start snapd.socket
-
Переподключение и зависание процессов:
Запустите скрипт, который будет перезапускать сокет, если он неактивен:while true; do sleep 10; [[ $(systemctl is-active snapd.socket) == inactive ]] && sudo systemctl start snapd.socket; done
Обратите внимание, что для использования этого скрипта могут потребоваться соответствующие права на выполнение от имени
sudo
. -
Обновление и переустановка
snapd
:
Если предыдущие шаги не помогли, вы можете попробовать переустановитьsnapd
. Будьте осторожны, чтобы не потерять доступ к файловым системам, которые могут зависеть отsnapd
:sudo apt remove --purge snapd sudo apt install snapd
-
Проверка и устранение ошибок:
Просмотрите журналы ошибок дляsnapd
:journalctl -eu snapd journalctl -xeu snapd.failure.service
Это поможет определить специфические ошибки, которые могут указывать на дальнейшие шаги для устранения проблем.
Долгосрочные рекомендации
Для более стабильной работы и предотвращения подобных ситуаций в будущем:
- Ubuntu следует пересмотреть логику, касающуюся жестких зависимостей по устройствам в
snapd
. Обратите внимание на ошибочные сообщения о “Неизвестном устройстве”. - Разработать более четкие инструкции по устранению неполадок и учесть множество сценариев, связанных с использованием TPM и шифрования.
Надеюсь, эти рекомендации помогут вам в решении возникшей проблемы. Вы также можете следить за обновлениями от Canonical и будущими релизами, поскольку проблемы с snapd
уже поднимаются и обсуждаются в сообществе.