Вопрос или проблема
Я запустил sudo do-release-upgrade -d
внутри byobu в Gnome Terminal, используя удаленный рабочий стол, чтобы обновиться с Ubuntu 22.04 LTS до Ubuntu 24.04 LTS.
Процесс длился какое-то время и начал задавать обычные вопросы о том, следует ли обновить скрипты до версии сопровождающего пакетчика и т. д.
Теперь он на экране блокировки, и я не могу войти, чтобы завершить процесс. Я ввожу пароль, и он просто зависает.
Ранее я мог подключиться к системе через byobu по ssh, чтобы дать ответы на вопросы, но теперь, когда я захожу в byobu, кажется, что существующей сессии нет.
~> ps aux | grep release-upgrade
root 18663 0.0 0.0 14408 4352 pts/0 S+ Jun23 0:01 sudo do-release-upgrade -d
root 18664 0.0 0.0 14408 1856 pts/1 Ss Jun23 0:00 sudo do-release-upgrade -d
root 18665 0.2 0.2 468860 44116 pts/1 Sl+ Jun23 3:20 /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-9ylrumsy/noble --mode=server --frontend=DistUpgradeViewText --devel-release
root 27315 0.1 0.3 472584 59400 pts/1 S+ Jun23 2:04 /usr/bin/python3 -s /tmp/ubuntu-release-upgrader-9ylrumsy/noble --mode=server --frontend=DistUpgradeViewText --devel-release
~> byobu list-sessions
no server running on /tmp/tmux-1000/default
Как я могу завершить процесс обновления без завершения или перезагрузки чего-либо?
[После долгих обсуждений с ChatGPT, я нашел это решение, которое сработало по SSH.]
Вы можете взять под контроль текущий процесс do-release-upgrade
и завершить обновление без завершения или перезагрузки чего-либо, выполнив следующие шаги:
-
Скачать
reptyr
:- Так как
apt
заблокирован, скачайте пакетreptyr
напрямую:wget http://archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb
- Так как
-
Извлечь содержимое пакета:
dpkg-deb -x reptyr_0.9.0-1_amd64.deb reptyr_contents
-
Используйте
reptyr
для подключения к процессу оболочки, который вы определили с помощьюps
:- Подключитесь к родительскому процессу
do-release-upgrade
:sudo ./reptyr_contents/usr/bin/reptyr 18663
- Подключитесь к родительскому процессу
-
Взаимодействие с оболочкой:
- После подключения вы ничего не увидите сначала. Оно застряло на приглашении и ждет ввода. Нажмите
D
, когда будет предложено, чтобы показать различия между существующими и новыми версиями конфигурационных файлов. Это покажет, где вы находитесь в процессе, не повредив ничего. Затем вы можете решить, сохранить ли существующие конфигурации или установить новые версии.
- После подключения вы ничего не увидите сначала. Оно застряло на приглашении и ждет ввода. Нажмите
-
Продолжить процесс обновления:
- Ответьте на дальнейшие запросы и убедитесь, что процесс обновления успешно завершен.
-
Удалите деб-файл
reptyr
и распакованные файлы.
Ответ или решение
Решение проблемы с завершением процесса обновления do-release-upgrade
в Ubuntu
У вас возникла проблема с завершением процесса обновления Ubuntu, инициированного командой sudo do-release-upgrade -d
. Вы начали обновление в терминале Gnome через Byobu и столкнулись с ситуацией, когда после перезагрузки системы и блокировки экрана вы не можете вернуться в сеанс и продолжить обновление, так как введение пароля просто приводит к подвисанию.
Шаги для управления процессом обновления без перезагрузки системы:
-
Установка
reptyr
:В связи с тем, что менеджер пакетов
apt
заблокирован во время выполнения процесса обновления, вы не можете использовать стандартные методы установки. Для обхода этой ситуации, выполните загрузку пакетаreptyr
напрямую:wget http://archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb
-
Извлечение содержимого пакета:
Для работы с
reptyr
извлеките содержимое пакета без его установки:dpkg-deb -x reptyr_0.9.0-1_amd64.deb reptyr_contents
-
Подключение к родительскому процессу
do-release-upgrade
:Используя команду
ps
, вы уже выявили PID процессов, связанных сdo-release-upgrade
. Используйтеreptyr
, чтобы подключиться к родительскому процессу:sudo ./reptyr_contents/usr/bin/reptyr 18663
После выполнения этой команды вы сможете взаимодействовать с процессом обновления в той же точке, где он был прерван.
-
Пользовательское взаимодействие с обновлением:
Проверьте, на какой стадии находится процесс обновления. Скорее всего, вам предложат обновить файлы конфигурации. Нажмите на клавишу
D
, чтобы просмотреть различия между текущими и новыми версиями конфигурационных файлов. Решите, оставить ли текущие версии или заменить их новыми. -
Завершение процесса обновления:
Ответьте на все оставшиеся вопросы в ходе установки и убедитесь, что процесс обновления завершится успешно.
-
Очистка временных файлов:
После завершения всех действий, удалите загруженный пакет и распакованные файлы для поддержания порядка в системе.
Эти шаги помогут вам безопасно завершить процесс обновления операционной системы Ubuntu без необходимости перезагружать сервер. Использование reptyr
позволит вам взять под контроль зависший процесс и продолжить работу без потери данных.
Сложности во время обновлений операционной системы являются общими, и данное решение эффективно для их преодоления, сохраняя процессы в стабильном состоянии.