Обновление сервера Ubuntu через do-release-upgrade
2 Сервер
Сначала станьте root-пользователем:
sudo suЗатем обновите индекс пакетов:
apt-get updateУстановите пакет update-manager-core, если он не установлен:
apt-get install update-manager-coreОткройте файл /etc/update-manager/release-upgrades:
vi /etc/update-manager/release-upgradesи убедитесь, что в нём указано Prompt=normal:
| [...] Prompt=normal |
Затем запустите обновление дистрибутива:
do-release-upgradeВ процессе вы увидите стандартный вывод утилиты. Пример типичного сеанса:
root@server1:~# do-release-upgrade
Checking for a new ubuntu release
Get:1 Upgrade tool signature [198B]
Get:2 Upgrade tool [1307kB]
Fetched 1307kB in 0s (0B/s)
extracting 'natty.tar.gz'
authenticate 'natty.tar.gz' against 'natty.tar.gz.gpg'Утилита постепенно проверяет кэш и менеджер пакетов:
Reading cacheChecking package managerContinue running under SSH?Если вы запускаете обновление по SSH, система предупредит вас:
Эта сессия запущена по SSH. В настоящее время не рекомендуется выполнять обновление по SSH, так как при ошибке восстановление усложняется.
Если вы согласны продолжать, дополнительный sshd будет запущен на порту ‘1022’. Это облегчит восстановление в случае потери основной SSH-сессии.
Система спросит:
Продолжить [yN] <– y
В ответ будет показано инициализирующее сообщение:
Starting additional sshdПояснение: дополнительный sshd слушает на порту 1022. Если основная служба SSH перестанет отвечать, подключитесь по альтернативному порту и завершите восстановление.
Нажмите [ENTER], чтобы продолжить. <– ENTER
Далее утилита попросит подтвердить начало обновления и покажет объём действий и загрузок:
Do you want to start the upgrade?
3 packages are going to be removed. 34 new packages are going to be installed. 291 packages are going to be upgraded.
You have to download a total of 171M. This download will take about 1 minute with your connection.
Fetching and installing the upgrade can take several hours. Once the download has finished, the process cannot be cancelled.
Continue [yN] Details [d] <– y
Во время обновления некоторые службы могут требовать перезапуска. Если менеджер обновлений предложит список служб для перезапуска, просто нажмите ENTER, чтобы принять рекомендуемые значения.
Если появится сообщение про grub: “What do you want to do about modified configuration file grub?”, выберите установку версии от поставщика пакета (install the package maintainer’s version). Это обычно безопасно и поддерживает стандартную конфигурацию загрузчика.
Если будет предложение удалить устаревшие пакеты, подтвердите удаление:
Remove obsolete packages?
6 packages are going to be removed.
Continue [yN] Details [d] <– y
По завершении потребуется перезагрузка:
Restart requiredВыберите ‘y’ для немедленной перезагрузки:
Continue [yN] <– y
После перезагрузки система будет работать под новой версией Ubuntu (в примере — Ubuntu 11.04).
Важные замечания
- Перед началом обновления сделайте резервную копию важных данных и снимок состояния (snapshot) виртуальной машины, если это возможно.
- Если сервер предоставляет критичные сервисы, планируйте окно обслуживания: процесс может занять часы и привести к кратковременным простоям.
- Оставьте доступ к консоли (IPMI/iDRAC/виртуальная консоль) на случай, если SSH недоступен.
Подготовка и проверка перед обновлением
- Проверка свободного места на / и /boot:
df -hНедостаток места в /boot часто ломает обновление ядра. Освободите место заранее.
- Список установленных сторонних репозиториев и PPAs:
ls /etc/apt/sources.list.d/Удалите или отключите неподдерживаемые репозитории, чтобы избежать конфликтов зависимостей.
Отключите автоматические задач cron/Ansible/Puppet/Chef, которые могут вмешиваться в процессе.
Проверьте текущую версию ядра и дистрибутива:
lsb_release -a
uname -r- Сделайте резервную копию конфигурационных файлов, особенно /etc/fstab, /etc/default/grub и /etc/ssh/sshd_config.
Процедура восстановления при проблемах (краткий план)
- Если SSH недоступен, попробуйте подключиться к дополнительному sshd на порту 1022.
- Если система не загружается, используйте консоль управления хоста (IPMI, виртуальная консоль) для входа в режим восстановления (recovery mode).
- Если проблема вызвана конфликтом пакетов, загрузитесь в однопользовательском режиме и откатите последние обновления через apt или восстановите snapshot.
Критерии приёмки
- Сервер успешно загружается и доступен по SSH.
- Основные сервисы (веб, БД, приложения) работают и проходят smoke-тесты.
- Не наблюдается критических ошибок в /var/log/syslog и /var/log/dpkg.log в течение заданного окна наблюдения.
Чек-лист по ролям
Администратор:
- Сделал snapshot/резервную копию.
- Проверил свободное место и отключил сторонние репозитории.
- Запустил do-release-upgrade и подтвердил действия.
Оператор приложения:
- Подготовил план отката для приложения.
- Проверил конфигурации, зависящие от версий библиотек.
Мониторинг/DevOps:
- Убедился, что алерты корректны и сохранены.
- Подготовил сценарии smoke-тестов после перезагрузки.
Когда этот способ не подходит / альтернативы
- Если у вас кластер с высокой доступностью, лучше выполнять поэтапные обновления узлов с контролем состояния кластера.
- Для крупных инфраструктур рассмотрите создание новых серверов с нужной версией Ubuntu и миграцию сервисов (blue/green).
- Если используете неподдерживаемые PPA/пакеты, лучше протестировать обновление в staging-среде.
Быстрая сводка (факт-бокс)
- Что требуется: доступ root, подключение к интернету, свободное место на диске.
- Команды: apt-get update; apt-get install update-manager-core; do-release-upgrade.
- Резервные меры: snapshot VM, резервная копия конфигураций, доступ к консоли.
3 Ссылки
- Ubuntu: http://www.ubuntu.com/
- Unity: http://unity.ubuntu.com/about/
Краткое резюме:
- Подготовьте резервные копии и снимки VM.
- Убедитесь, что Prompt=normal и установлен update-manager-core.
- Запустите do-release-upgrade, следуйте подсказкам, сохраняйте альтернативный доступ по SSH и перезагрузите сервер.
Важно: всегда тестируйте обновления в копии инфраструктуры перед применением в продакшн.
Похожие материалы
Настройка AWS IoT Enterprise Button
Удалить чат в Microsoft Teams — как и что важно
Скриншоты на Oculus Quest 2 — как сделать
Исправить ошибку DDE Server Window в Windows
Minecraft Realms на Windows 10 — как исправить проблемы