Обновить Debian 9 (Stretch) до Debian 11 (Bullseye) с этим пошаговым руководством не составит труда. Приступим!
Как узнать версию Debian
Чтобы узнать текущую версию Debian, введем команду:
cat /etc/debian_version

Создание Backup системы
Создать Backup системы перед обновлением нужно. Какими средствами и в каком объеме — тема достойная отдельной статьи. Здесь на этом не будем останавливаться. Напишу только про себя.
Поскольку у меня на обновляемой системе стоит сервер 1С, то я сделаю выгрузку Информационной базы 1С (файл с расширением .dt, содержащий базы данных, конфигурацию и список пользователей — все необходимое для восстановления 1С).
А с помощью утилиты rsync сделаю удаленную копию всей обновляемой системы. И это не займет много времени, поскольку копия обновляемой системы делалась ранее, а утилита rsync позволяет передавать только изменения в файлах.
Как обновить Debian по SSH
Если подключиться к обновляемой системе по SSH, запустить обновление Debian и во время обновления произойдет разрыв SSH соединения, то процесс обновления Debian будет прерван. А это может вызвать неработоспособность обновляемой системы.
Программа Screen для безопасного обновления
Чтобы безопасно обновить Debian по SSH, необходимо запускать процесс обновления в программе screen. Программа screen гарантирует, что процесс обновления не будет прерван, даже если разорвется SSH соединение. Программа screen обеспечит безопасное повторное подключение по SSH для продолжения наблюдения за обновлением Debian.
Устанавливаем программу screen:
apt install screen
Запускаем программу screen:
screen
Видим окно приветствия программы screen:

Нажимаем клавишу Enter на клавиатуре, окно приветствия программы screen пропадает, и видим обычное приглашение командной строки. И вот теперь мы готовы безопасно запускать обновление Debian. Все команды обновления будут запущены внутри программы screen со всеми преимуществами, описанными чуть выше.
Чтобы завершить работу программы screen, нужно набрать:
exit
Появится надпись [screen is terminating]:

Чтобы отключиться от screen, не завершая работу программы screen, нужно нажать комбинацию трех клавиш Ctrl + A + D. Появится надпись [detached from XXXX.pts-0…..]:

Цифры XXXX — это ID (идентификатор) screen, который понадобится для повторного подключения к screen.
Для повторного соединения со screen нужно набрать:
screen -r
Если screen запущено несколько, то для повторного соединения со screen c идентификатором YYYY нужно набрать:
screen -r YYYY
Как обновить Debian 9 до Debian 10 (Buster)
Не рекомендуется обновлять Debian с пропуском версии, т.е. с Debian 9 сразу до Debian 11. Поэтому сначала обновимся до Debian 10.
Обновляем Debian 9 до последней подверсии
Обновим текущую систему Debian 9 до последней подверсии. Первым делом обновляем списки пакетов из репозиториев (хранилищ пакетов Debian):
apt update
Обновляем пакеты, установленные в системе (никакие ранее установленные пакеты не удаляются):
apt upgrade
Обновляем пакеты, которые имеют сложные зависимости (могут удаляться устаревшие пакеты):
apt dist-upgrade
Удаляем пакеты, которые были ранее установлены автоматически, но больше не требуются:
apt --purge autoremove
Перезагружаемся и проверяем, какая подверсия Debian 9 стала:
reboot
cat /etc/debian_version
Обновляем файлы репозиториев
Репозитории — это хранилища. В нашем случае, репозитории — это сетевые хранилища дистрибутивов Debian и программ для Debian. В файлах репозиториев указываются пути к репозиториям и версия Debian, которая нужна.
Нам нужен Debian 10 (Buster), поэтому правим файл /etc/apt/sources.list, заменяя stretch на buster. Должно получиться так:

У меня еще есть файл репозиториев СУБД Postgresql для 1С /etc/apt/sources.list.d/pg1c-14.list. Я правлю его, а вы проверяйте директорию /etc/apt/sources.list.d/ на предмет своих файлов репозиториев.

Запускаем обновление до Debian 10
Последовательно запускаем уже знакомые команды:
apt update

apt upgrade

apt dist-upgrade
apt --purge autoremove
reboot
cat /etc/debian_version

Ура! Версия Debian 10.13. Обновить систему до Debian 10 оказалось несложно.
Как обновить Debian 10 до Debian 11 (Bullseye)
Правим файлы репозиториев, заменяя buster на bullseye. В файле /etc/apt/sources.list изменился формат записи для security репозитория. Был формат buster/updates, а стал bullseye-security:

Чтобы обновить систему до Debian 11 запускаем последовательность команд, как описано в разделе «Запускаем обновление до Debian 10», перезагружаемся и проверяем версию Debian.

Готово!
Неожиданности после обновления
Переменная PATH, команда su, Debian 10 Buster
После обновления системы до Debian 10 (Buster) или до более новой версии Debian может стать неожиданностью появление ошибки «команда не найдена» . И это после ввода какой-нибудь банальной команды, типа reboot:

В случае ошибок подобного рода (команда не найдена) нужно смотреть в сторону переменной окружения PATH, в которой как раз и хранятся пути поиска исполняемых файлов.

Оказывается, что в Debian 9 (Stretch) и в более ранних версиях команда su меняет значение переменной окружения PATH на значение одной из переменных (ENV_PATH или ENV_SUPATH), определенных в файле /etc/login.defs. В Debian 10 (Buster) и в более новых версиях команда su не меняет переменную окружения PATH.
Используем вместо команды su команду:
sudo su
или команду:
su -

Ошибки «команда не найдена» больше нет, команда reboot пошла выполняться.
Выводы
В этой статье разобрались, как безопасно обновить Debian по SSH. Разобрались, что обновлять Debian 9 до Debian 11 лучше в два этапа: сначала до Debian 10, а потом уже до Debian 11.
Само обновление системы проходит в штатном режиме. После обновления рекомендуется проверить работоспособность всех сервисов, которые «крутились» в системе, как они себя чувствуют в новой среде?
Оставляйте вопросы под статьей в комментариях. Спасибо за внимание!
Комментарии
Уже 3 машину обновляю таким образом ,всё работает замечаний нет
Спасибо, Александр! 🙂