Меню Рубрики

Установка debian на сервер удаленно

Базовая настройка сервера Debian после установки

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

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Любая работа с сервером после установки чаще всего начинается со стандартных обязательных действий, без которых либо не получится продвинуться дальше, либо будет неудобно работать. Например, вам в любом случае необходимо выполнить сетевые настройки, желательно обновить систему и установить часовой пояс. Рекомендуется сразу настроить автообновление времени, подрихтовать параметры sshd, установить midnight commander и выполнить другие настройки.

Об этом я хочу рассказать в статье. Я буду делиться своим реальным опытом работы. Это не значит, что нужно делать так, как я. Я могу в чем-то ошибаться, что-то делать не так удобно, как можно было бы сделать. Это просто советы, которые кому-то помогут узнать что-то новое, а кто-то возможно поделится со мной чем-то новым для меня, либо укажет на мои ошибки. Мне бы хотелось, чтобы это было так. Своими материалами я не только делюсь с вами знаниями, но и сам узнаю что-то новое в том числе и из комментариев и писем на почту.

Указываем сетевые параметры

Итак, у нас в наличии только что установленная система. Узнать или проверить ее версию можно командами:

Очень подробно про настройку сети в Debian я написал в отдельной статье. Рекомендую с ней ознакомиться. Здесь же кратко выполним основное. Для настройки сети, необходимо отредактировать файл /etc/network/interfaces. Сделаем это:

Для получения IP адреса по dhcp достаточно будет следующего содержания:

Если у вас статический адрес, то его настроить можно следующими параметрами в файле:

Сохраняем файл. Теперь нужно выполнить перезапуск сети. В Debian это делается командой:

В системном логе /var/log/syslog при этом будут записи:

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

К сетевым настройкам я отношу установку пакета net-tools, в состав которого входят старые и привычные утилиты для работы с сетью — ifconfig, netstat, route и другие. В современных дистрибутивах их заменили одной командой ip, но лично мне вывод некоторых старых команд, конкретно, netstat, нравится больше, поэтому я иногда ими тоже пользуюсь.

На этом настройка сети закончена.

Обновление системы, отличие apt upgrade от dist-upgrade и full-upgrade

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

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

Теперь выполним простое обновление всех пакетов системы:

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

Ключ dist-upgrade или full-upgrade (это одно и то же) в дополнение к upgrade обрабатывает все изменения зависимостей для новых пакетов и во время работы может удалять ненужные и ставить необходимые пакеты для обновления. Вот выдержка из документации по поводу этих двух ключей.

Так что после обычного обновления, делаем еще full-upgrade.

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

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

На этом обновление системы закончено. Если вы хотите обновить версию релиза, например Debian 9 обновить до Debian 10 Buster, то читайте отдельный материал.

Настройка ssh

Теперь внесем некоторые изменения в настройки сервера ssh. Я рекомендую его запускать на нестандартном порту для исключения лишних общений с ботами, которые регулярно сканируют интернет и подбирают пароли пользователей по словарям.

Существует расхожее мнение, что менять порт ssh это наивность, а не защита. Надо просто настроить сертификаты, fail2ban или еще каким-то образом защитить ssh порт, к примеру, с помощью ограничений iptables, и т.д. Тем не менее, я все же рекомендую порт сменить на нестандартный. Даже если у вас все защищено от подбора паролей, так как вы используете сертификаты, лишние запросы к ssh порту тратят ресурсы сервера, хоть и не очень большие. Идет установка соединения, обмен рукопожатиями и т.д. Зачем вам это нужно?

По-умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Так же я еще изменяю конфигурацию для разрешения подключения по ssh пользователя root с использованием пароля. В Debian из коробки пользователь root по ssh паролем авторизовываться не может. Изменим и это. Открываем файл настроек:

И изменяем там следующие строки. Приводим их к виду:

Сохраняем изменения и перезапускаем сервер ssh следующей командой:

Все в порядке, сервер слушает 23331 порт. Теперь новое подключение будет осуществлено только по порту 23331. При этом, после перезапуска ssh, старое подключение не будет разорвано.

Я знаю, что многие возражают против подключения рутом к серверу. Якобы это небезопасно и т.д. и т.п. Мне эти доводы кажутся не убедительными. Не понимаю, в чем может быть проблема, если у меня нормальный сложный пароль на root, который не получится подобрать или сбрутить. Ни разу за всю мою работу системным администратором у меня не возникло проблем с этим моментом. А вот работать так значительно удобнее, особенно, когда необходимо оперативно куда-то подключиться по форс мажорным обстоятельствам.

Отдельно тему подключения к серверу под root я рассмотрел в статье про sudo. Кому интересно, переходите в нее и делитесь своим мнением на этот счет.

Установка утилит mc, htop, iftop

Следующим шагом я настраиваю некоторые полезные утилиты, которыми регулярно пользуюсь в повседневной работе. Первая из них это всем известный двухпанельный файловый менеджер Midnight Commander. Установим mc на наш сервер:

И сразу же для него включаю подсветку синтаксиса всех файлов, которые не обозначены явно в файле /usr/share/mc/syntax/Syntax синтаксисом для sh и bash скриптов. Этот универсальный синтаксис нормально подходит для конфигурационных файлов, с которыми чаще всего приходится работать на сервере. Перезаписываем файл unknown.syntax. Именно этот шаблон будет применяться к .conf и .cf файлам, так как к ним явно не привязано никакого синтаксиса.

Я сразу же ставлю редактором по-умолчанию mcedit. Для этого просто выбираю его из меню при первом редактировании какого-нибудь файла. Если у вас такое меню не появляется, можете вызвать его сами и выбрать необходимый редактор по-умолчанию:

Так же я рекомендую очень удобный диспетчер задач — htop. Мне он помог, к примеру, решить проблему Взлома сервера CentOS. Ставим его на сервер:

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

Настройка и обновление времени в Debian

Теперь проверим установленный часовой пояс, время и включим автоматическую синхронизацию времени с удаленного сервера. Очень подробно этот вопрос я рассмотрел в отдельной статье — настройка времени в Debian.

Читайте также:  Установка подвесных потолков армстронг смета

Узнать дату, время, часовой пояс можно командой date:

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

Теперь выберем правильный часовой пояс с помощью команды:

Выбирая соответствующие пункты визарда, указываете свой часовой пояс.

Дальше синхронизируем время с сервером времени в интернете. Для разовой или ручной синхронизации понадобится отдельная утилита. Установим ntpdate на сервер:

Значит у вас уже работает служба ntp. Ее нужно остановить и обновить время вручную. Хотя если она работает, то у вас и так должно быть все в порядке.

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

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

Настройка firewall (iptables) в Debian

В качестве firewall в Debian по-умолчанию используется iptables, его и будем настраивать. Изначально фаервол полностью открыт и пропускает весь трафик. Проверить список правил iptables можно следующей командой:

Создадим файл с правилами iptables:

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

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

Даем файлу права на запуск:

Проверяем, что правила записались в файл /etc/iptables_rules. Если их там нет, то записываем их вручную.

Правила применились и произошла их запись в файл /etc/iptables_rules. Теперь нужно сделать так, чтобы они применялись при загрузке сервера. Для этого делаем следующее. Открываем файл /etc/network/interfaces и добавляем в него строку pre-up iptables-restore Настройка логов cron

По-умолчанию, в Debian нет отдельного лог файла для событий cron, они все сыпятся в общий лог /var/log/syslog. Лично мне это не очень нравится, я предпочитаю выводить эти события в отдельный файл. Об этом я написал отдельно — вывести логи cron в отдельный файл. Рекомендую пройти по ссылке и настроить, если вам это необходимо. Там очень кратко и только по делу, не буду сюда копировать эту информацию.

Установка и настройка screen

Я привык в своей работе пользоваться консольной утилитой screen. Изначально она задумывалась как инструмент, который позволяет запустить что-то удаленно в консоли, отключиться от сервера и при этом все, что выполняется в консоли продолжит свою работу. Вы сможете спокойно вернуться в ту же сессию и продолжить работу.

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

Позже я решил подробнее ознакомиться с этим инструментом и обнаружил, что там есть несколько удобных моментов, которые можно использовать в ежедневной работе. Вот как использую утилиту screen я. При подключении к серверу у меня запускается screen с тремя окнами 1, 2, 3. Первое окно автоматически переходит в каталог /, второе в /etc, третье в /var/log. Я осмысленно назвал эти окна: Main, etc, logs соответственно. Внизу находится строка состояния, в которой отображен список всех открытых окон и подсвечено активное окно.

С помощью горячих клавиш я очень быстро переключаюсь между окнами в случае необходимости. Вот как выглядит мое рабочее окно ssh подключения:

Переключаюсь между окнами с помощью стандартных горячих клавиш screen: ctrl+a 1, ctrl+a 2, ctrl+a 3. Я специально изменил нумерацию, чтобы она начиналась не с 0 по-дефолту, а с 1. Так удобнее на клавиатуре переключать окна. Кнопка 0 находится слишком далеко от 1 и 2.

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

Создаем в каталоге /root конфигурационный файл .screenrc следующего содержания:

Для знакомства с настройками, горячими клавишами и вариантами применения утилиты screen можно по адресу http://itman.in/ssh-screen/ Мне помог этот материал. Написано кратко, по делу и доходчиво.

Заключение

Теперь можно перезагрузить сервер и проверить, все ли в порядке. У меня все в порядке, проверил 🙂 На этом базовая настройка сервера debian окончена. Можно приступать к конфигурации различных сервисов, под которые он настраивался. Об этом я рассказываю в отдельных статьях.

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

источник

Как скачать и установить Debian 10 Buster

Любая работа по администрированию сервера начинается с самого очевидного и обязательного процесса — инсталляции необходимой ОС, чем мы и займемся. Скачаем и установим Debian 10 в минимальной конфигурации с загрузочной флешки на обычный диск или raid раздел. Перед этим выполним небольшую подготовительную работу и познакомимся с подробностями нашего дистрибутива, которые могут быть полезны в будущем.

Цели статьи

  1. Кратко рассказать о системе Debian 10.
  2. Объяснить различия установочных образов.
  3. Показать, как сделать загрузочную флешку с Debian для установки с флешки или по сети.
  4. Подробно описать все этапы установки Debian 10 Buster на сервер.
  5. Объяснить смысл различной разметки диска.
  6. Показать установку Debian 10 на программный рейд mdadm на тех серверах, где нет физического рейд контроллера. Продемонстрировать выход из строя и замену одного из дисков.

Данная статья является частью единого цикла статьей про сервер Debian.

Введение

Debian один из старейших дистрибутивов Linux. Последнее время, как мне кажется, он немного потерял популярность за счет Ubuntu, которая построена на кодовой базе Debian и не может без него существовать. И тем не менее, за счет более свежих пакетов и каких-то своих небольших фич Ubuntu набрал популярность, а Debian немного потерял.

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

В качестве надежной и стабильной системы c 10-ти летним сроком поддержки я выбираю Centos, а когда нужно все новое, современное, молодежное, использую Ubuntu, так как под нее сейчас затачивается весь современный web стек. Все новье чаще всего доступно под Ubuntu. Debian получается такой середнячок. Ни то, ни се.

И все же дистрибутив известный и популярный. Его использует proxmox и многие другие продукты. Так что не обхожу его стороной. Скорее по старой памяти. Под Ubuntu так и не создал раздел на сайте, а вот для Debian он есть.

Так что приступаем к установке последней версии Debian 10 Buster. В сети полно инструкций на эту тему, но чаще всего их пишут любители ставить linux на десктопы. Я же сделаю упор именно на серверную установку под типовые серверные задачи. Если кому интересно, то основные отличия 10-й версии я уже упоминал в статье про обновление debian c 9-й на 10-ю версию.

Системные требования

Начнем с системных требований. Debian, как и любой linux дистрибутив в минимальной установке, требует очень мало системных ресурсов. Согласно официальной документации, минимальные системные требования для установки Debian 10 следующие.

Рекомендуемые минимальные требования к системе

Тип установки Память (минимум) Память (рекомендуется) Жесткий диск
без приложений 128 Мб 512 Мб 2 Гб
с приложениями 256 Мб 1 Гб 10 Гб

На практике, я обычно начинаю с виртуалок c 1 CPU, 512 Мб и 20 Гб диска для небольших задач (web сайт, шлюз, и т.д.) Дальше уже смотрите по загрузке и потребностям. Такие же минимальные значения системных ресурсов обычно стоят в начальных VDS или VPS хостеров.

Читайте также:  Установка емкость под солярку

Загрузка дистрибутива (iso образа)

Существует 3 формата дистрибутива, различающиеся по типу носителя:

Я лично использую только CD образы:

  • netinst.iso — Минимальный по объему образ, который содержит только самое необходимое для запуска установщика debian. Все остальное в процессе установки загружается из интернета. Без доступа к интернету, возможна установка голой системы с минимальным набором системных утилит.
  • xfce-CD-1.iso — Стандартный iso образ, который подходит для offline установки минимальной конфигурации сервера с графическим окружением xfce (хотя зачем он на сервере?). По размеру сопоставим с обычным cd диском. Можно записать на флешку и устанавливать с нее.

Есть еще так называемые live дистрибутивы. Набор live образов позволяет попробовать систему дебиан без установки на железо. Отличаются друг от друга эти образы графической оболочкой. Данные iso образы актуальны для проверки работы системы на десктопах у обычных пользователей. Для системных администраторов, которые ставят систему на серверы, они вряд ли представляют интерес. Так что, если вам хочется просто посмотреть на работу системы, не устанавливая ее, можете воспользоваться live образами.

Для установки Debian на сервер, можно использовать любой дистрибутив, так как вам фактически нужна только голая система. Все остальное устанавливается отдельно по мере необходимости. Для жителей России удобно использовать зеркало яндекс для загрузки дистрибутива Debian — https://mirror.yandex.ru/debian-cd/current/amd64/iso-cd/ Скорость будет выше, чем с официального сайта. Я и потом использую этот репозиторий для установки пакетов и обновлений.

Запись образа на флешку

Обычные CD диски сейчас уже становятся редкостью. Для меня не понятно, почему размеры iso образов до сих пор частенько подгоняют под размер CD или DVD диска. Я уже много лет использую загрузочные флешки для установки систем на железо. С ними быстрее, удобнее, проще обновлять образ.

Есть много способов записать образ debian на флешку для последующей установки. У меня в комплекте есть несколько популярных программ для создания загрузочных usb:

Это все бесплатные программы под Windows. Чаще всего пользуюсь первыми двумя. Иногда бывают ситуации, когда инсталлятор не может установить систему, записанную на флешку той или иной программой. Не знаю, по какой причине это бывает. Тогда приходится пробовать разные версии.

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

Если у вас система Linux, то для создания загрузочной флешки с Debian 10 используйте программу Etcher.

Установка Debian 10 Buster

К установке системы Debian 10 у нас все готово. Вставляйте флешку в сервер, если будете ставить на голое железо, либо подключайте iso образ к виртуальной машине и приступайте. Нас встречает традиционное первоначальное меню загрузочного образа.

Я лично предпочитаю использовать консольный (Install), а не графический (Graphical Install) установщик. У меня в нем быстрее получается выбирать необходимые разделы. В целом, это вопрос личных предпочтений. Все этапы установки и варианты выбора настроек идентичны при любом способе. Я продолжаю в консольном.

Не буду приводить скриншоты всех этапов установки Debian 10. Не вижу в этом смысла. Там все достаточно очевидно. Буду останавливаться только на ключевых моментах и давать советы. Итак, после запуска установки системы, вам предложат выбрать язык. На серверах я всегда выбираю английский язык и английскую раскладку. Не вижу тут никаких альтернатив. Язык современной техносферы — английский и глупо идти поперек. Если вам понадобятся другие языки, то можете их настроить потом, по мере работы с системой.

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

На первом экране представлены такие популярные и известные страны, как Замбия, Нигерия, Филлипины, Зимбабве, Ботсвана, но пропущены почти все (или все?) европейские страны. Для того, чтобы выбрать Россию, нужно пройти в other, выбрать Europe, а потом уже Russian Federation. Может быть такая группировка не случайна и есть какая-то байка на этот счет. Если кто-то в курсе, прошу поделиться.

После выбора страны нам предлагают указать кодировку и раскладку клавиатуры. Я всегда выбираю en_US.UTF-8 и American English. Если понадобится дополнительный язык, его всегда можно добавить позже. Далее необходимо подождать некоторое время, пока установщик не подгрузит следующие компоненты, необходимые для установки дебиан. После этого он попытается настроить сеть. Если у вас все в порядке с сетевой картой, и в сети работает dhcp-сервер, на моменте настройки сети не будет остановки, и она пройдет без каких-либо ваших действий. Если же у вас нет dhcp-сервера, то вам будет предложено вручную указать все сетевые параметры:

  • ip адрес
  • маску сети
  • ip шлюза и dns сервера

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

Далее надо задать пароль root, потом создать обычного пользователя с произвольным именем и указать пароль к нему. По-умолчанию, после установки, войти удаленно по ssh пользователем root на сервер невозможно. Для этого нужно использовать учетную запись обычного пользователя и через него выполнять административные действия. Поэтому при установке debian нужно обязательно создать обычного пользователя.

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

Разметка жесткого диска

Тема разметки диска раньше была достаточно спорной и вызывала много дискуссий и споров. Делали отдельно разделы под корень /, домашнюю директорию /home, под логи /var/logs и т.д. Мне кажется, что сейчас все это стало неактуально. Сервера общего назначения переехали в виртуальные среды, а там можно и дополнительный диск выделить под образовавшиеся нужды, либо увеличить текущий. Нет необходимости заранее продумывать на много шагов вперед, можно без проблем потом добавить дисковое пространство.

Если же вы настраиваете железный сервер, то скорее всего четко знаете для чего он нужен и разбиваете уже в зависимости от его прямого назначения. Я сам лично, если нет каких-то особых требований к серверу, создаю только один общий раздел / на lvm.

Если у вас есть свое мнение по поводу разбивки диска, предлагаю поделиться соображениями в комментариях. Переходим к разметке диска для нашего debian сервера. Выбираем Guided — user entire disk and set up LVM.

Далее нужно выбрать жесткий диск, на который будет установлена система. Если у вас он только один, как у меня, то выбирать не из чего. Дальше выбираем схему разбивки диска. Как я уже сказал ранее, все будет храниться в одном корневом разделе, так что выбираем All files in one partition.

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

В принципе, можно с ним согласиться. Но лично мне не нравится swap на отдельном lvm томе. Я люблю хранить swap в файле прямо на файловой системе. Теоретически, это чуть медленнее, чем отдельный раздел, но практически это не важно. В современных серверах swap редко используется, нужен больше для стабильности работы системы, нежели для скорости. Со swap в отдельном разделе не получится гибко работать, как с обычным файлом. Я на серверах ставлю минимальный размер свопа в 1 Гб, увеличиваю по мере необходимости. Когда своп это обычный файл, с этим нет проблем.

Читайте также:  Установка внутреннего тандембокса блюм

Так что изменения не записываем, выбираем No. Вы попадаете в раздел управления разметкой диска. Необходимо удалить LV раздел под swap, затем удалить LV раздел root и создать его заново максимального размера. Потом на нем же еще раз создать корневую систему в точке монтирования /. Должно получиться вот так.

В принципе, раздел /boot тоже можно было бы разместить в корне, но в целом можно оставить и так. Я сталкивался с неожиданными проблемами, когда /boot раздел был на lvm. Так что не буду вам рекомендовать его куда-то переносить.

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

На следующем этапе установки системы, вам будет задан вопрос по поводу дополнительного диска с пакетами. Вам будет предложено проверить другой диск для установки дополнительных пакетов. Отказываемся и идем дальше. Теперь нужно выбрать зеркало, с которым будет работать пакетный менеджер apt. Выбираем свою страну и подходящее зеркало. Я выбираю Russian Federation и зеркало mirror.corbina.net. Раньше всегда выбирал зеркало Яндекса, но в Debian 10 его почему-то нет для выбора.

Далее нас просят указать прокси. Скорее всего вы им не пользуетесь, поэтому строку можно оставить пустой. Если это не так, то укажите адрес proxy сервера. На следующем этапе установки debian 10 вопрос о том, хотим ли мы делиться анонимной статистической информацией об использовании различного ПО на сервере. Я обычно не делюсь.

Дальше выбираем набор дополнительного ПО, которое будет установлено на сервер debian 10 вместе с основной системой. Я никогда не ставлю ничего, кроме ssh сервера и системных утилит.

Все остальное можно установить потом. На последнем этапе установки нас спрашивают про загрузчик grub — установить ли нам его. В подавляющем большинстве случаев это нужно сделать. Если вы не знаете, нужно или нет, значит 100% нужно. Без загрузчика можно обойтись в очень специфических ситуациях, которые мы рассматривать не будем в этой инструкции по установке debian. Так что устанавливаем grub на единственных жесткий диск.

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

Установка по сети (netinstall)

С сетевой установкой Debian есть определенная путаница. Как я уже ранее говорил, название iso образа netinst.iso вводит в заблуждение. На самом деле, с этого образа можно установить минимальную систему даже без наличия локальной сети. Но в то же время, при наличии интернета можно загрузить любой дополнительный пакет.

Настоящее руководство по netinstall представляет из себя совсем другую процедуру. Подробно она описана в официальном мануале — Подготовка файлов для загрузки по TFTP. Смысл сетевой установки в том, что вы со своего компьютера, на который хотите установить систему Debian, подключаетесь по технологии PXE к TFTP серверу и с него начинаете загружать установочные файлы.

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

Мне приходилось настраивать TFTP сервер для отдачи файлов при загрузке по PXE. Изначально кажется, что все это слишком сложно, но на самом деле ничего сложного нет. Я без особых проблем смог настроить бездисковые станции для запуска linux системы. Но это отдельная история, выходящая за рамки данной инструкции.

Установка Debian 10 на raid

Рассмотрим вариант установки debian на софтовый рейд mdadm. Эта актуальная ситуация, когда вы разворачиваете систему на железе, а не виртуальной машине. К примеру, такая конфигурация будет полезна для установки proxmox. В этой статье я уже рассматривал установку debian на raid1. Но там более старая версия Debian. Так что рассмотрю еще раз эту тему уже на примере Debian 10.

Итак, начинаем установку системы по приведенной ранее инструкции. Доходим до этапа разбивки диска и выбираем режим Manual.

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

  1. Массив raid1, объединяющий оба диска.
  2. /boot раздел прямо на mdadm рейде.
  3. Поверх массива LVM том на всем остальном пространстве, кроме /boot.
  4. Корневой раздел по всему lvm.

В конечном итоге, в конфигураторе это выглядит так:

Последовательность действий для этой конфигурации следующая:

  1. На каждом диске создаете по 2 раздела — один под /boot 500 Мб и второй все остальное пространство.
  2. Объединяете эти разделы в 2 ra >В итоге у вас должно получиться то же, что и у меня на картинке. Дальше ставите debian 10 как обычно. После установки на raid нужно выполнить несколько важных действий.

  1. Зайти в систему и создать swap.
  2. Установить загрузчик на оба диска. Во время установки он был установлен только на один диск.
  3. Протестировать отказ одного из дисков.

Думаю, с созданием swap вопросов быть не должно. По ссылке все подробно описано. Установим загрузчик на оба жестких диска, чтобы в случае выхода любого из них, система смогла загрузиться. Для этого выполняем команду:

Выскочат пару запросов на указание дополнительных параметров. Можно ничего не указывать, оставлять все значения по-умолчанию. А в конце выбрать оба жестких диска для установки загрузчика.

Смотрим теперь, что с дисками.

Картина такая, как и было задумано. Выключим сервер, отсоединим один диск и включим снова. При запуске, нормально отработал grub, дальше посыпались ошибки в консоль.

Тем не менее, сервер через некоторое время загрузился. Смотрим, в каком состоянии диски.

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

Старый диск sda c двумя разделами и новый диск sdb без разделов. Нам нужно на новый диск скопировать структуру диска sda. Делаем это следующей командой.

То, что надо. Теперь добавляем новый диск в деградированные массивы mdadm.

Дожидаемся окончания ребилда массива под boot. Это будет быстро. И возвращаем диск в корневой раздел.

Не забываем добавить загрузчик на новый диск.

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

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

Заключение

Как я уже говорил, Debian в чистом виде я почти не использую. Лично мне он в основном интересен, как базовый дистрибутив под гипервизор proxmox. Именно поэтому я не обхожу его стороной и пишу статьи про установку. Вариант с установкой debian на софтовый рейд как раз актуален именно для proxmox. Получается бюджетное надежное решение под виртуализацию.

Буду рад советам и замечаниям по существу в комментариях. Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

источник