Не удаётся войти, чтобы завершить процесс do-release-upgrade.

Вопрос или проблема

Я запустил 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 и завершить обновление без завершения или перезагрузки чего-либо, выполнив следующие шаги:

  1. Скачать reptyr:

    • Так как apt заблокирован, скачайте пакет reptyr напрямую:
      wget http://archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb
      
  2. Извлечь содержимое пакета:

    dpkg-deb -x reptyr_0.9.0-1_amd64.deb reptyr_contents
    
  3. Используйте reptyr для подключения к процессу оболочки, который вы определили с помощью ps:

    • Подключитесь к родительскому процессу do-release-upgrade:
      sudo ./reptyr_contents/usr/bin/reptyr 18663
      
  4. Взаимодействие с оболочкой:

    • После подключения вы ничего не увидите сначала. Оно застряло на приглашении и ждет ввода. Нажмите D, когда будет предложено, чтобы показать различия между существующими и новыми версиями конфигурационных файлов. Это покажет, где вы находитесь в процессе, не повредив ничего. Затем вы можете решить, сохранить ли существующие конфигурации или установить новые версии.
  5. Продолжить процесс обновления:

    • Ответьте на дальнейшие запросы и убедитесь, что процесс обновления успешно завершен.
  6. Удалите деб-файл reptyr и распакованные файлы.

Ответ или решение

Решение проблемы с завершением процесса обновления do-release-upgrade в Ubuntu

У вас возникла проблема с завершением процесса обновления Ubuntu, инициированного командой sudo do-release-upgrade -d. Вы начали обновление в терминале Gnome через Byobu и столкнулись с ситуацией, когда после перезагрузки системы и блокировки экрана вы не можете вернуться в сеанс и продолжить обновление, так как введение пароля просто приводит к подвисанию.

Шаги для управления процессом обновления без перезагрузки системы:

  1. Установка reptyr:

    В связи с тем, что менеджер пакетов apt заблокирован во время выполнения процесса обновления, вы не можете использовать стандартные методы установки. Для обхода этой ситуации, выполните загрузку пакета reptyr напрямую:

    wget http://archive.ubuntu.com/ubuntu/pool/universe/r/reptyr/reptyr_0.9.0-1_amd64.deb
  2. Извлечение содержимого пакета:

    Для работы с reptyr извлеките содержимое пакета без его установки:

    dpkg-deb -x reptyr_0.9.0-1_amd64.deb reptyr_contents
  3. Подключение к родительскому процессу do-release-upgrade:

    Используя команду ps, вы уже выявили PID процессов, связанных с do-release-upgrade. Используйте reptyr, чтобы подключиться к родительскому процессу:

    sudo ./reptyr_contents/usr/bin/reptyr 18663

    После выполнения этой команды вы сможете взаимодействовать с процессом обновления в той же точке, где он был прерван.

  4. Пользовательское взаимодействие с обновлением:

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

  5. Завершение процесса обновления:

    Ответьте на все оставшиеся вопросы в ходе установки и убедитесь, что процесс обновления завершится успешно.

  6. Очистка временных файлов:

    После завершения всех действий, удалите загруженный пакет и распакованные файлы для поддержания порядка в системе.

Эти шаги помогут вам безопасно завершить процесс обновления операционной системы Ubuntu без необходимости перезагружать сервер. Использование reptyr позволит вам взять под контроль зависший процесс и продолжить работу без потери данных.

Сложности во время обновлений операционной системы являются общими, и данное решение эффективно для их преодоления, сохраняя процессы в стабильном состоянии.

Оцените материал
Добавить комментарий

Капча загружается...