Вопрос или проблема
Я не могу обновить с 22.04 на 24.04.1, потому что do-release-upgrade останавливается и говорит, что usr не объединен.
Но если я запускаю usrmerge от имени root, то появляется сообщение, что он успешно объединил usr.
Тем не менее, возникает ошибка. Я подумал, что он завершается с выходным кодом 1, но, похоже, это не так. echo $? возвращает 0.
Я создал обертку-скрипт, который вызывает usrmerge и завершает работу с 0. Но do-release-upgrade все еще не удается, утверждая, что usr не объединен, и я должен установить пакет usrmerge, чтобы решить проблему.
/usr/lib/usrmerge/convert-usrmerge
Smartmatch является экспериментальным в /usr/lib/usrmerge/convert-usrmerge строка 172.
Надеюсь, кто-то знает обходной путь.
Спасибо заранее
floogy
Ответ или решение
При выполнении обновления системы с помощью do-release-upgrade
вам не удается перейти с версии 22.04 на 24.04.1 из-за проблемы с объединением директорий /usr
и ошибки, связанной с Smartmatch
. Ошибка, описанная вами, может быть вызвана несколькими факторами, связанными с состоянием вашей файловой системы и состоянием пакета usrmerge
.
Причины возникновения проблемы
-
Необъединённый
/usr
: Ваша система, возможно, не завершила процесс объединения/usr
с корневой файловой системой. Убедитесь, что после выполнения командыusrmerge
все необходимые файлы и каталоги были перемещены в новые местоположения, а старые ссылки удалены. -
Ошибка
Smartmatch
: Сообщение об ошибке, относящееся кSmartmatch
, указывает на то, что код в обработчике объединения/usr
использует экспериментальные функции, которые могут вести себя нестабильно. Эта ошибка может указывать на потенциальные проблемы в самом скриптеconvert-usrmerge
.
Решение
Поскольку вы уже пытались запустить usrmerge
и получили сообщение об успешном объединении, но do-release-upgrade
все еще жалуется на не объединённый /usr
, рекомендуется пройти через ряд шагов для диагностики и решения проблемы:
-
Проверка состояния системы:
- Убедитесь, что пакет
usrmerge
установлен и актуален. Выполните:sudo apt update sudo apt install usrmerge
- После этого перезапустите
usrmerge
и внимательно следите за выводом. Он должен содержать информацию о перемещении файлов.
- Убедитесь, что пакет
-
Проверка наличия символических ссылок:
- Убедитесь, что у вас нет старых или неправильных символических ссылок, которые могли бы мешать системе правильно распознавать состояние объединения
/usr
. - Используйте команду
ls -l /
и проверьте наличие/usr
и других каталогов.
- Убедитесь, что у вас нет старых или неправильных символических ссылок, которые могли бы мешать системе правильно распознавать состояние объединения
-
Логи и отладка:
- Проверьте системные логи (например,
dmesg
,/var/log/syslog
иapt/history.log
) для получения подсказок о том, что может вызывать ошибку. - Запустите
strace
наdo-release-upgrade
, чтобы получить более подробный вывод о том, где именно происходит сбой.
- Проверьте системные логи (например,
-
Обработка результирующих ошибок:
- Если, несмотря на выполненные действия, проблема не решается, попробуйте удалить и переустановить пакет
usrmerge
с помощью:sudo apt remove usrmerge sudo apt install usrmerge
- После этого снова выполните
usrmerge
.
- Если, несмотря на выполненные действия, проблема не решается, попробуйте удалить и переустановить пакет
-
Создание резервной копии и тестовый переход:
- Перед выполнением крупных изменений рекомендуется создать резервную копию системы.
- Если возможно, выполните тестовое обновление на отдельной системе или виртуальной машине, чтобы оценить, пройдет ли процесс без ошибок.
-
Постоянные ошибки:
- Если все перечисленные шаги не помогают, это может соответствовать известной проблеме, требующей исправления. В этом случае рекомендуется обратиться в сообщество Ubuntu или проверить наличие обновлений от разработчиков.
Заключение
Проблемы с обновлением системы могут быть неприятными и требовать внимательного подхода к диагностике. Если проблема с объединением /usr
и ошибкой, связанной с Smartmatch
, сохраняется, теоретически это может быть связано с особенностями конкретной конфигурации вашей системы. С учетом вышеперечисленных шагов, вы должны быть в состоянии устранить ошибку и успешно завершить процесс обновления до версии 24.04.1.