Что было. Обновление с 22.04.5 на 24.04 прервалось (по данным автора, из-за проблем с сетью в процессе), после перезагрузки система висит на заставке, затем [FAILED] Failed to start GNOME Display Manager. Половина пакетов новой версии, половина старой, dpkg не завершил настройку.
Как автор восстановил (подтверждено).
- В GRUB выбрать Advanced options → recovery mode → root shell (или добавить
systemd.unit=rescue.targetк параметрам ядра). mount -o remount,rw /.- Поднять сеть вручную, поскольку DHCP-клиент не запустился:
ip link set ens3 up,ip addr add 192.0.2.10/24 dev ens3,ip route add default via 192.0.2.1,echo nameserver 192.0.2.53 > /etc/resolv.conf(на сервере со статикой достаточноnetplan apply). dpkg --configure -a(завершить настройку распакованных пакетов), затемapt --fix-broken install,apt update && apt full-upgrade.- Перезагрузка. Система поднялась как 24.04.
Что важно на сервере.
- Признак прерванного обновления:
aptпри любом действии пишет «dpkg was interrupted, you must manually run ‘dpkg --configure -a’». Это не страшно: обновление доводится теми же командами. - Если вопрос про замену конфигов (
sshd_config,nginx.conf) остался без ответа при обрыве,dpkg --configure -aзадаст его снова; отвечать «оставить свою версию» и потом сверять с*.dpkg-dist. - Пока не доведено до конца, не запускать
do-release-upgradeповторно: он откажется работать на полуобновлённой системе. - Ошибка вида «display manager» на сервере означает, что там зачем-то стоит рабочий стол; сервер без графики после того же сбоя просто загрузился бы в консоль с частично настроенными пакетами, что легче лечить.
Почему обновление прерывается. Обрыв SSH-сессии, в которой шёл процесс (поэтому только tmux/консоль), закончившееся место на диске (проверять df -h до старта: нужны гигабайты), нехватка памяти на маленькой машине, отключение сети посередине.
Если в rescue не пускает. Rescue-система поставщика: смонтировать корень в /mnt, mount --bind /dev /mnt/dev и аналогично для /proc, /sys, /run, скопировать /etc/resolv.conf, chroot /mnt, и те же команды dpkg --configure -a и apt.
Снимок перед обновлением остаётся самым дешёвым способом не разбирать всё это: откат занимает минуту.
Обновление выпуска описано в документации Ubuntu Server.