Как переустановить debian через консоль

Обновлено: 04.07.2024

14 августа 2021 года состоялся релиз старой и очень популярной Linux системы - Debian. В своей статье я подробно расскажу, как обновиться с прошлого релиза Debian 10 до 11-й версии Bullseye. Сам процесс не сложный, проходит в штатном режиме с помощью встроенных средств операционной системы.

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные системы, рекомендую познакомиться с онлайн-курсом «DevOps практики и инструменты» в OTUS. Курс не для новичков, для поступления нужно пройти .

Что нового в Debian 11

Как это обычно бывает, в новом релизе будет чуть больше пакетов в базовых репозиториях. Несмотря на то, что его периодически чистят от старых пакетов, новые добавляются чуть быстрее. Ниже основной список изменений:

  • Очевидно, что обновилось ядро Linux. Теперь это будет версия 5.10.
  • Обновлены версии пакетов графического окружения и офисных программ.
  • Понятное дело, что обновился весь софт. Не буду перечислять изменение версий. Отмечу только некоторые наиболее значимые изменения. Версия php в базе будет 7.4, python - 3.9, MariaDB - 10.5, nginx - 1.18.
  • Обновились cgroups до версии v2.
  • Systemd по умолчанию теперь пишет свой журнал с помощью systemd-journald. Хорошо, что традиционные логи, которые пишет rsyslog пока оставили.
  • Больше не будет однодисковых образов с Xfce (жаль :( ). Остался netinst.iso и DVD-1.iso, не считая live образов.

Подробнее обо всех нововведениях можно прочитать в официальном анонсе. В целом, Debian очень осторожно внедряет какие-то кардинальные нововведения. Можно назвать эту систему консервативной. За это ее многие любят. Установщик уже сколько версий подряд не претерпевает каких-то значительных изменений, в отличие от той же Ubuntu.

Подготовка системы к обновлению

Перед обновлением Debian рекомендую в первую очередь проверить все бэкапы. Это если вы обновляете прод, что я делать сразу не рекомендую. Для начала проверьте всё на копии виртуальной машины в тестовом окружении. После этого уже переходите к рабочей системе. Так же рекомендую на всякий случай сохранить список текущих установленных пакетов:

Или сразу с версиями. Тоже может пригодиться.

Прежде всего полностью обновим текущую систему:

Проверим версию. Должна быть самая последняя:

Подготовка Debian 10 buster к обновлению

Обновление файла репозиториев

Теперь обновим файл с репозиториями /etc/apt/sources.list и изменим релиз с buster на bullseye. Содержимое этого файла должно стать примерно следующим:

Обращаю внимание, что изменился формат записи для security репозитория. Старая запись была в таком формате:

Upgrade Debian 10 to Debian 11 Bullseye

Теперь можно запустить непосредственно обновление системы Debian 10 до 11 версии. Перед этим обязательно убедитесь, что у вас есть доступ к консоли сервера, а не только ssh подключение. Обычно всё проходит нормально и одного ssh достаточно. Но если обновляете prod, лучше перестраховаться. Сначала обновим список пакетов.

Важно! Дальнейшие команды запускайте в голой консоли, а не в терминале какой-то графической оболочки, если она у вас установлена. В процессе обновления этот терминал будет закрыт и обновление прервётся.

Обновление репозитория для Bullseye

Теперь сделаем минимальное обновление, которое не требует установки новых пакетов или удаления старых. Обязательно запускайте его через screen или tmux. В случае обрыва связи при подключении по ssh, могут произойти непрогнозируемые проблемы с работоспособностью системы. Процесс обновления обязательно должен полностью завершиться успешно.

Upgrade Debian 10 to Debian 11 Bullseye

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

Информация об обновлении Debian 10 до 11

Если всё прошло успешно, то запускайте полное обновление, которое окончательно обновит все пакеты и разрешит все изменившиеся между выпусками Debian зависимости.

Полное обновление до Debian 11

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

Дожидаемся загрузки Debian 11 Bullseye и проверяем версию.

Проверка версии обновленной системы Debian 11 Bullseye

Всё в порядке. Обновление прошло успешно.

Заключение

В общем случае, обновление Debian с релиза на релиз проходит штатно и не является сколь-нибудь сложной процедурой. Но это при условии, что не возникает конфликтов зависимостей и поддержки различного софта новой версии. Проблемы скорее всего будут в другом месте и связаны с софтом. Новая система получает обновленные версии всего софта. Где-то может измениться конфиг, где-то исходники сайта не поддерживают работу с новой версией php или БД.

Всё это придётся в ручном режиме отлаживать и исправлять. Так что кажущаяся лёгкость обновления непосредственно системы может быть обманчивой. Внимательно всё проверьте перед этим. Иногда может быть проще и надёжнее выполнить миграцию системы на новую версию, а не её обновление.

Существует множество фичей упрощающих жизнь системному администратору. Различные системы удаленного управления позволяют установить ОС на девственно-чистый сервер и сегодня это совсем не проблема. Даже наличие второго винчестера превращает проблему переустановки операционки в банальность. Поэтому в этой статье рассмотрим самый суровый из случаев: пусть на сервере имеется только один полностью разбитый винчестер, а наша задача — удалённо переустановить ОС.

Удивлённо поднимем брови, умиляясь тому, как гибка наша любимая операционка, засучим рукава и приступим к делу.

В основе данного метода лежит идея о том, что мы можем использовать SWAP-раздел для установки временной операционной системы, а когда она встанет на ноги — заняться основной. Главное и единственное, что нам нужно — это своп размером не менее 420 Мб (именно столько занимает lenny со всем необходимым).

В статье используются следующие допущения:
— у вас стоит дебиан, и ставить вы планируете дебиан,
— используется grub установленный в MBR.

Краткий план наших работ будет выглядеть так:

  1. превращаем swap-раздел в ext3;
  2. устанавливаем на него чистую ОС;
  3. перезагружаемся в нее;
  4. делаем нужные изменения на основном разделе;
  5. копируем чистую ОС из временного в основной раздел;
  6. загружаемся с основного раздела, включаем swap.

Подготовка раздела.

Первое, что мы сделаем — убедимся, есть ли у нас этот своп-раздел вообще:

Как видим — есть, и размер (отображается в Мб) вполне удовлетворяет требованиям. Осталось выяснить, как у нас разбит диск:

Видно, что на sda1 — текущая ОС, на sda5 — своп. Запутаться сложно, но всякое бывает.

Убедиться, что мы его выключили, можно выполнив всё тот же free:

Обновим нашу таблицу разделов:

Нам заботливо сообщили, что ядро не увидит изменений до перезагрузки, но нам это пока и не нужно. Теперь самое время подготовить файловую систему на нашем старом новом разделе. Например, ext3:

Примонтируем раздел куда-нибудь и на этом его подготовка будет закончена.

Установка «временной» ОС.

Здесь нужно заметить, что временной она является только по своему местоположению. Чтобы дважды не прогонять все действия по сборке чистой системы в дальнейшем мы просто скопируем её на основной раздел.

Используем отличное средство для получения минимальной установки — debootstrap. Здесь и далее мы будем считать что проблем с интернетом на сервере нет (иначе какой же он после этого сервер ?), поэтому выкачиваем всё из репозитория.

После нажатия enter начнется процесс загрузки и установки пакетов, при достаточно среднем интернет-соединении (

Теперь начинается одна из самых ответственных процедур: нам нужно правильно сконфигурировать новую систему. Любому сис-админу, наверное, снились кошмары о том, как он теряет удаленный контроль над машиной, да и в конце концов всё это мы затевали именно для того, чтобы не ехать в дата-центр. Поэтому отложим кружку кофе и сосредоточимся.

Сначала скопируем все важные настройки. Наверное, у каждого найдутся достаточно важные файлы, которые лежат не там где положено. У меня, к примеру, есть некий /etc/rc.routes со всеми нестандартными маршрутами. Главное не забыть ничего. Приводить тут какой-либо список, мне кажется, совершенно бессмысленно, но у меня это выглядит примерно так:

В fstab напишем самое необходимое — proc и наш корневой раздел:

Теперь смонтируем dev-окружение, перейдем в чрут нашей временной системы и сразу примонтируем proc:

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

Настроим часовой пояс:

Также нам понадобятся следующие пакеты:

Сразу же, чтобы не забыть, создадим пользователя и назначим ему пароль, иначе в ssh нас потом не пустят:

Теперь переустановим загрузчик. Сначала необходимо создать все файлы загрузчика на новом диске:

После чего необходимо инициализировать МБР на загрузку с нашего нового раздела. Для этого всё там же, в чруте, войдем в консоль граба и напишем следующее:

Своеобразный автокомплит по табу подскажет нам, какие разделы есть в нашем распоряжении. Как видим всё на единицу меньше чем в названии в системе. Инициализируем загрузку с нашего sda5:

Загрузчик установлен куда нужно. Теперь выберем и установим подходящее ядро:

В ходе установки нас спросят «Create a symbolic link to the current kernel image?», на что мы ответим утвердительно. Так же сообщат, что мы устанавливаем ядро, требующее от загрузчика поддержку initrd, и уточнят, не передумали ли мы.
Отвечаем «Нет» и установка заканчивается. Осталось обновить меню загрузчика:

Выходим из чрута, собираем нервы в кулак и отправляем сервер в первую перезагрузку:

Если все было сделано правильно — машина перезагрузится в нашу временную систему. Мы можем зайти в ssh как пользователь, которого мы только что добавили.

Перенос системы на основной раздел.

Форматируем и монтируем наш старый раздел:

К слову, на этом этапе можно провести и обслуживание диска: например переразбить основной раздел и проверить файловую систему.

Остается скопировать нашу чистую ОС на основной раздел:

Обновляем fstab. На этот раз причешем его по всем правилам:

В очередной раз нужно обновить граб. На этот раз — для загрузки уже с нашего основного раздела:

Тут стоит отметить, что у меня в этом месте, в отличие от первого случая, menu.lst обновляться отказался, и там по-прежнему оставались ссылки на sda5. Почему это происходит — я так и не разобрался, поэтому вручную подредактировал этот файл:

Выходим из чрута и делаем вторую перезагрузку:

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

Остается создать и включить своп:

Убедимся что всё нормально:

Ну и в конце, если вы редактировали /boot/grub/menu.lst врукопашную — стоит все-таки запустить скрипт его обновления еще раз:

Подводя итоги.

Данный способ безусловно не самый простой путь переустановки системы, однако, во многих случаях, он становится единственно возможным. Тем более вся процедура занимает около 25 минут, поэтому если ваш ДЦ не через дорогу, то в любом случае выходит совсем неплохая экономия времени. Получилось на удивление много букв — я пытался расписать подробно и понятно, но на самом деле операция простая и достаточно быстрая.

Порой бывает проще переустановить систему, чем выгребать мусор и перенастраивать текущую операционную систему из-за изменения задач или просто из-за неудачного апгрейда. Конечно систему можно переустановить и с диска и с флешки, но что делать если нет физического доступа к машине или кому-то очень не хочется ехать на другой конец города? Вот тут-то очень пригодится debootstrap.

Что нам понадобится:

  1. Установленная операционная система Debian.
  2. Новый жесткий диск или свободный раздел.
  3. Интернет-соединение

Прежде всего необходимо установить пакет debootstrap:

sudo aptitude install debootstrap

Далее нужно подготовить место, куда мы будем ставить новую операционную систему.

Сначала убедимся, что жесткий диск подключен:

Disk /dev/sdb: 4017 MB, 4017807360 bytes 120 heads, 63 sectors/track, 1038 cylinders, total 7847280 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xda15fad5 Device Boot Start End Blocks Id System /dev/sdb1 * 2048 7847279 3922616 83 Linux Disk /dev/sda: 1500.3 GB, 1500301910016 bytes 255 heads, 63 sectors/track, 182401 cylinders, total 2930277168 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000eba6e Device Boot Start End Blocks Id System /dev/sda1 * 2048 1953791 975872 83 Linux /dev/sda2 1953792 80078847 39062528 83 Linux /dev/sda3 80080894 2930276351 1425097729 5 Extended /dev/sda5 2924417024 2930276351 2929664 82 Linux swap / Solaris /dev/sda6 80080896 2924417023 1422168064 83 Linux

Диск /dev/sdb отобразился и на нем уже есть какой-то раздел, значит можно приступить к следующему шагу: разбиение диска по желанию с помощью любимой программки. Например, fdisk:

sudo fdisk /dev/sdb

После разбиения необходимо создать файловую систему. Например, ext4:

sudo mkfs.ext4 /dev/sdb1

После создания файловой системы начинается самое интересное: монтирование и начало установки системы с помощью debootstrap:

Debootstrap имеет очень много параметров, которые можно посмотреть в man. В данном случае передаются параметры с сведениями о:

После окончания работы debootstrap нужно правильно сконфигурировать операционную систему, чтобы она смогла загрузиться и пустить нас по сети.

Для начала скопируем все необходимые конфиги:

cp /etc/ /mnt/temp/etc cp /etc/network/interfaces /mnt/temp/etc/network cp /etc/dhcp/dhcpd.conf /mnt/temp/etc/dhcp

Далее пропишим в fstab две самые главные строки: /proc и корневой раздел.

proc /proc proc defaults 0 0 /dev/sdb1 / ext4 errors=remount-ro 0 1

Теперь монтируем /dev-окружение, переходим в chroot новой системы и сразу монтируем /proc:

mount --bind /dev /mnt/temp/dev chroot /mnt/temp /bin/bash mount -t proc proc /proc

Настраиваем часовой пояс и локали:

dpkg-reconfigure tzdata aptitude install locales dpkg-reconfigure locales

Ставим пакет для консоли и необходимые сервисы, дабы не положить сетку если она есть:

aptitude install console-data aptitude install ssh aptitude install sudo aptitude install isc-dhcp-server

Добавляем пользователя в систему:

adduser --ingroup users soar visudo

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

aptitude install grub grub-install /dev/sda grub-install /dev/sdb

Указано 2 жестких диска, так как по-умолчанию загрузка идет с первого харда, а на случай изменения в биосе загрузочного девайса на второй диск, туда тоже ставится загрузчик.

Не так давно вышла новая версия Debia 11 под кодовым названием Bullseye. По традиции, кардинальных изменений в системе не было, но пакетная база была значительно переработана. 72% пакетов получили новые версии, а более 11 000 пакетов появились в репозитории впервые. Именно это и даёт повод для обновления Debian 10 до Debian 11.

Мы расскажем не только о том, как выполняется обновление Debian 10 до 11, но еще и как подготовить её и избежать проблем. Забегая вперёд отметим, что дистрибутив по-прежнему обновляется путём замены репозиториев.

Как обновить Debian 10 до Debian 11

Перед обновлением настоятельно рекомендуем создать резервную копию системы. Это позволит восстановиться в случае неудачи. Также при использовании отличного от GNOME и KDE окружения лучше всего выйти из графической оболочки и обновляться в текстовом режиме.

Сервер можно обновить даже по SSH, в этот раз проблем с сетевыми интерфейсами не должно возникнуть. Но на всякий случай лучше иметь локальный доступ к консоли сервера.

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

Шаг 1. Обновление Debian 10 до актуальной версии

Перед заменой репозиториев крайне желательно привести текущие пакеты до актуальной версии. Debian 10 за время существования успел получить несколько обновлений. Последняя версия получила номер 10.10, именно её и стоит обновлять до Debian 11.

Чтобы узнать текущую версию дистрибутива используйте команду:

xv8ACLUd0LFJ7SkAAAAASUVORK5CYII=

Чтобы обновить дистрибутив Debian, а заодно привести пакеты в порядок, выполните команды:

sudo apt update

sudo apt dist-upgrade

sudo apt --fix-broken install

sudo apt autoremove

После этого при проверке будет указана версия 10.10. Перед следующим шагом можете перезагрузить компьютер, чтобы убедиться в том, что обновлённая система успешно запускается.

Шаг 2. Замена репозиториев

Замена репозиториев – это основной этап обновления Debian 11. Именно эти файловые серверы содержат все пакеты дистрибутива. Список репозиториев хранится в файле /etc/apt/sources.list. Для доступа к нему воспользуемся редактором nano:

sudo nano /etc/apt/sources.list

6Gd28kZUSFV0WmJgFNApj+N8UwxgPK1PYzYjd4egAY72b8f4edHh5nX3j9AAAAAElFTkSuQmCC

В этом файле нам необходимо заменить buster на bullseye. Помимо этого, потребуется заменить /updates на -security, так как в Debian 11 изменили наименование для security группы репозиториев. Легче всего произвести замену встроенным инструментом (Ctrl+\). После этого сохраните изменения (Ctrl+O) и выйдите из программы (Ctrl+X).

Список репозиториев должен выглядеть следующим образом:

D7RwXAgIPCJpFAghAwkUjtYOjPBJl07AYJaCVgcPdftRvGj1MUmDhurimmPRJe62QyYTpbrzOGmrDZ0WmyuZYno9NnlpKsBOLyU2c3if0Pfp5sdp77G9p3Iy4zKrQmMjUJBCSA5X9TTGPcoExtPyNOg6cHgPG+jP8P5EJ4y5ByTAQAAAAASUVORK5CYII=

Не забудьте обновить список пакетов командой:

sudo apt update

Теперь ваш дистрибутив готов к обновлению.

Шаг 3. Минимальное обновление

Обновление рекомендуется проводить в два этапа. На первом этапе мы проведём минимальное обновление. Оно заменит только те пакеты, которые не потребуют установку или удаление других пакетов. Для этого используйте команду:

sudo apt upgrade --without-new-pkgs

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

Несмотря на то, что обновление называется минимальным, будет обновлена большая часть пакетов. После перезагрузки компьютера вас встретит практически готовый вариант Debian 11.

bEUAAAQQQQAABBHQn8H+V+cQTQCDYVwAAAABJRU5ErkJggg==

Шаг 4. Полное обновление

Если минимальное обновление прошло успешно, то пора приступать к полному обновлению системы командой:

sudo apt dist-upgrade

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

sudo apt autoremove

Шаг 5. Готово

Теперь можете ещё раз проверить установленную версию дистрибутива, ядра, оболочки и загрузчика:

dpkg -l | grep grub

DzKHBjZ5gZx4AAAAAElFTkSuQmCC

Выводы

Теперь вы знаете обновить Debian 10 до Debian 11. Особых изменений в процессе обновления, по сравнению с предыдущим релизом, не появилось. Главное обновить пакеты Debian 10 и правильно отредактировать список репозиториев. Если же говорить о стандартной для Debian оболочке GNOME, то с ней обновление проходит даже в графическом режиме.

Благодаря консервативному подходу к разработке дистрибутива, часть пользователей использует Debian без переустановки на протяжении многих лет. Это особенно актуально для серверов, где промедление неуместно. А если у вас до сих пор установлен Debian 9, то обновите его до 10 версии, что позволит перейти на Debian 11.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Читайте также: