В продолжение цикла статей Отладка домашнего сервера для самых маленьких, сегодня мы познакомимся с различными операционными системами и процессом их установки. Особое внимание было уделено созданию разделов (partition) на дисках, было много перечитано и переспрошено, чтобы понять, для чего надо отделять, сколько памяти выделять и, самый главный ответ на вопрос, зачем и в каком случаи. Мы обсудили, какие разделы стоит выделять, а какие не являются необходимыми. Кроме того, мы немного углубимся в теорию, чтобы лучше понять, как это работает.
Принципы автора при настройке и работе сервера и не только:
Безопасность системы и сети
Быстрый ответ системы и ее служб
Минимальное количество пакетов (программ), только нужное
Унификация, зависимость приложений.
Оглавление цикла
(Обновляемое)
Оглавление статьи
Если интересует только разбивка разделов, читать пункт 7.
Операционные системы
Начнем с определении:
Ядро операционной системы (kernel) — это основная часть программного обеспечения, которая управляет аппаратными и программными ресурсами компьютера, обеспечивает взаимодействие между ними и предоставляет базовые функции для работы других программ. Примеры: GNU Linux, Windows NT, FreeBSD, XNU, Minix.
Операционная система (ОС) — это программный комплекс, включающий ядро, системные утилиты, драйверы и пользовательский интерфейс, который обеспечивает удобную среду для работы пользователя и запуска приложений. Примеры: Windows, macOS, Linux, Android, iOS.
Дистрибутив — это готовая сборка операционной системы, которая включает в себя ядро, системные утилиты, библиотеки, драйверы и различные дополнительные программы. Дистрибутивы предназначены для того, чтобы облегчить установку и использование ОС, предоставляя пользователю уже настроенное, полное и функциональное решение. Примеры: Ubuntu, Debian, Fedora, Windows, macOS
Операционные системы, ориентированные на сервер, обычно поставляются без графического интерфейса, только консоль:
Дистрибутивы основаны на GNU/Linux ядре. Такие как Debian, Ubuntu, CentOS, Red Hat Enterprise Linux и т.д. Больше дистрибутивов на Linux Distribution Timeline.
Дистрибутивы основаны на FreeBSD. Такие как TrueNAS CORE.
Windows Server.
Хоть и не является операционной системой, но дает полный доступ к системе, проект CasaOS, отличается friendly-user интерфейсом и легкой установкой любого программного обеспечения (использует Docker).
В цикле и опыт/мнение
В качестве операционной системы в цикле используется Debian версии 12 (Bookworm). Почему именно Debian, а не Ubuntu или другой дистрибутив?
Debian — это минимальный дистрибутив без лишних пакетов. Кроме того, он отличается стабильностью. Все репозитории с пакетами содержат стабильные версии, что способствует минимизации проблем с зависимостями между приложениями. По другим дистрибутивом на GNU/Linux ядре ничего сказать не могу, опыта нету. То же самое могу сказать об ОС на ядре FreeBSD.
Windows Server у меня не в почете, плюс надо лицензию иметь. В общем, для операционных систем серверов используются дистрибутивы на основе ядра GNU/Linux, такие как упомянутые ранее Debian, Ubuntu и CentOS.
Установка Debian 12 Bookworm
Процесс установки Debian ничем не отличается от установки Windows в общих чертах, пример установки в качестве домашней ОС (статья):
Cкачиваем образ с официального сайта
Прошиваем флешку.
Вставляем в сервер. Открываем BIOS, в качестве загрузочного раздела выбираем флешку (обычно маркируется как USB). Сохраняем. Выходим.
-
Встречает нас окно GRUBа (загрузчик операционной системы), выбираем Install.
Разница между
Install
иGraphical install
в том, что в одном используется только клавиатура, в графическом — как клавиатура, так и мышка. Я предпочитаю Install, потому что работа с сервером происходит только через командную строку по этому привыкаем к такому вводу. -
Выбираем язык, я предпочитаю англ. так как мануалы для IT написаны на английском языке (в общей массе).
-
Дальнейшим пунктам комментарии не нужны. Единственное, в окне выбора domain name вы можете указать существующее доменное имя, если оно у вас есть, или же придумать новое (оно будет доступно только в локальной сети), или отставить пустым. Это FQDN-имя помогает системе идентифицировать себя в сети.
-
Подходим в важному пункту, подготовка разделов.
-
Нас встречает меню Partition disks
Guided - быстрая настройка разделов, потом можно изменить
Manual - ручная настройка разделов
Выбираем Manual
-
Форматируем диск/и
Форматириваоние диска - это процесс подготовки устройства хранения данных (такие как жесткий диск). На диск записываеться таблица разделов, есть два типа MBR (устарел) и GUID (актуальный).
Результат:
-
Создаем разделы (partition)
Раздел диска - это логическая часть физического накопителя, которая выделена для хранения данных и управления ими. Каждый раздел воспринимается операционной системой как отдельное устройство хранения, даже если физически он находится на одном диске. На раздел записываеться файловая система, такие как ext4, UFS и exFAT и т.д. Для лучшего понимание это диск С или D на Windows. Пример структуры UFS (Unix File System):
Какие разделы обязательные:
/boot
или/boot/efi
раздел - минимально 250 MB, рекомендую 512 MBswap раздел - минимально 2 GB, в общем считается по этой формуле SWAP memory = RAM memory * 1,5 (или 2)SWAP раздел - это дополнительная/"виртуальная" память, которая выделяется на диске и используется CPU как RAM. Формулу лучше использовать, если планируете использовать гибернацию (перемещение данных RAM в SWAP при уходе в сон). Так, если у вас 16 GB RAM, будет достаточно 4 GB (подробнее смотрите рекомендации от Red Hat).
-
/
root (или корневой) раздел - минимально 250 MB (рекомендация от Red Hat), по моему мнению как минимум 50 GB. Лучше 100 GB.
Какие разделы рекомендуется отделять от root раздела:
/var
раздел в основном используется для хранения логов (logs) - минимально 384 MB (рекомендация от Red Hat), по моему мнению 50 GB достаточно. Его я бы отделил точно, логи с большой вероятностью могут переполнить/
./tmp
раздел хранит временные файлы, пример если загружаете файл в папку/home/user/
сначала он загружается в/tmp
потом/home/user/
. Минимально 50 MB (рекомендация от Red Hat), по моему мнению, 15 GB будет достаточно, всё зависит от максимального размера загружаемого файла. Нужно отделять, только если есть отдельный очень быстрый NVMe диск или будет постоянная загрузка больших файлов. В моем случае не отделял./home
раздел для хранения пользовательских данных, в основном забивается на домашних ОС или если используется для хранения информации, используя протоколы SMB, FTP, SFTP и т. д. Минимально 100 MB (рекомендация от Red Hat), реальный размер определяете сами. В моем случае не отделял.
Какие разделы рекомендую создать и отделить от root раздела:
-
/svr
- используется для хранения данных сервисами, я вместо него создал /data для хранения данных и поместил на жесткий диск ( папки/data
нет в стандартной структуре файловой системы Linux (подробнее)).Если вы планируете использовать сервер в качестве медиасервера и загружать на него сотни гигабайт медиафайлов, я рекомендую выделить для этой цели отдельный раздел. В разделе
/data
будут храниться другие данные, такие как ваши файлы, базы данных и так далее. Если вы не рассчитаете объем заполняемого медиа, то можете переполнить раздел, и будет неприятно потом его чистить.
Зачем разделять root раздеть
/
? Делается для того чтобы изолировать саму ОС и файлы которые хранятся на ней. Решает две проблемы: если папка /var переполнится к примеру то система не упадет; переход на другую ОС или обновление текущей не повлияет на данные, которые находятся в других разделах.С файловой системой не заморачиваемся и выбираем ext4.
-
Создание boot
-
Создание swap (пропуская повторяющийся окна)
-
Отделение
/var
-
Создание
/
-
Создание и отделение
/data
Результат:
-
Подтверждаем разметку и записываем разметку на диск.
Разметка разделов в моем случаи:
По поводу других настроек:
Конфигурация RAID отлична описана в этой статье.
Logical Volume Manager (LVM) — это инструмент, который позволяет объединить несколько физических дисков в один логический том. К примеру, есть два диска, на первом устанавливаете boot, swap и root и т. д. В конце концов у вас остается место на диске, и вы хотите объединить со вторым, полностью свободным диском и на них к примеру поставить раздел
/data
. Для этого вы создаёте логический том (LVM) из двух дисковых пространств и используете раздел/data
так, как будто он установлен на один диск.Шифрование диска. Если вы полагаете, что существует вероятность несанкционированного доступа к вашим дискам, то имеет смысл их зашифровать. В противном случае, если вы не ожидаете никаких проблем, то нет необходимости в дополнительной защите. Дома же стоит.
-
-
Потом спрашивают если ли дополнительная флешка с пакетами выбираем - Нет
-
Дальше обязательно выбираем зеркало для пакетов
-
Если у вас есть proxy сервер, можите указать если нету, оставляем пустым:
-
Потом предлагают делиться анонимно аналитикой
-
Под конец предлагают установить дополнительные пакеты (в том числе графические оболочки), нам только нужно SSH server и стандартный набор системных утилит (standard system utilities), по понятным причинам графическая оболочка не нужна, это сервер.
После установики дополнительных пакетов. Перезагружаем систему
Открываем BIOS и в качестве загруженного диска выбираем диск на который установили boot и
/
разделы. Сохраняем и выходим.После успешной загрузки системы вытаскиваем флешку
Установка ОС закончена.
Полезные материалы
Habr.com - Сравнение структур разделов GPT и MBR
Redhat.com - Recommended Partitioning Scheme
Habr.com - Комфортная работа в Linux. ZRAM и гибернация — особенности взаимодействия
Комментарии (17)
aborouhin
14.01.2025 18:51У Вас когда-нибудь место на /var заканчивалось? И как система поживала после этого? У меня вот заканчивалось, и чувствовала она себя крайне печально. А вот с чего бы ей упасть, если закончится место на / без учёта /var, что туда писаться-то будет в нормальном режиме работы, кроме как при обновлении софта?
Ну и вообще, такие проблемы решаются корректно настроенным мониторингом. А разделение на разделы, когда физически у нас всё равно один диск, - это, IMHO, такой пережиток из времён, когда старались из медленных дисков выжать по максимуму, подбирая свою ФС для каждого раздела (ext2 для корня, reiserfs для /var и т.п.) Отдельный /home ещё как-то обоснован на системах, где реально есть пользователи со своими данными (что не так для типичного сервера), но /var - чистый анахронизм.
StafLoker Автор
14.01.2025 18:51У Вас когда-нибудь место на /var заканчивалось? - Нет не заканчивалась. Так первый опыт работы с сервером.
Если закончится место на / без учёта /var, что туда писаться-то будет в нормальном режиме работы - к примеру /srv расположен на SSD
Такие проблемы решаются корректно настроенным мониторингом. - Решаются, отделение по моему мнению решает невнимательность. И как показывает ваш опыт: """У меня вот заканчивалось, и чувствовала она себя крайне печально."""
aborouhin
14.01.2025 18:51Непустого /srv в живой природе не встречал уже давно, это что-то из эпохи древних FTP-серверов. Скорее /opt будет использоваться под помойку всего разного в одном месте, но и то только в случае, если туда что-то своеобычное, не собранное под конкретный дистрибутив, осознанно руками установить.
В общем, это я к тому, что на типичном сервере как раз единственная директория, в которую что-то активно пишется и которая имеет шансы переполниться и поставить в неудобную позу всю систему - как раз /var. Ну ещё /tmp, но его вообще в tmpfs смонтировать и забыть. От наличия/отсутствия свободного места для других директорий работоспособность сервера не пострадает. А при забитом /var так или иначе придётся заходить руками и разгребать это безобразие, т.к. мало что полезного будет продолжать работать.
Lev3250
14.01.2025 18:51Первый опыт работы с сервером, но сразу бегом учить других? Амбиции - это не плохо. Но они должны быть хоть чем-то подкреплены.
HardWrMan
14.01.2025 18:51У Вас когда-нибудь место на /var заканчивалось?
У меня было хуже: иноды заканчивались.
anotes
14.01.2025 18:51Выбираем язык, я предпочитаю англ. так как мануалны для IT написаны на англизком языке.
Во-первых, это глупость, что мануалы для IT лишь на английском, во-вторых, вы бы хоть перечитали текст, исправили опечатки и ошибки (тут далеко не единственные).
Я уже не говорю о смысле статьи. Такое впечатление, что вы пишите из 2005 года. Это в те времена все стремились разбить диски на отдельные разделы, да побольше. Сейчас, в век SSD это даже вредно, особенно зашитый swap. Кто вам мешает потом его подключить, как файл, если вдруг он вам будет сильно нужен?
StafLoker Автор
14.01.2025 18:51Сейчас, в век SSD это даже вредно, особенно зашитый swap.
Почему ?
Во-первых, это глупость, что мануалы для IT лишь на английском
Основная масса на English, такие Q&A (stack overflow). Но спасибо, исправлю не точность.
anotes
14.01.2025 18:51Например, про свап. Потому что это многократные запись и чтение в одну и ту же область. Если оперативной памяти хватает и этот свап будет задействован не так уж и часто, то ничего страшного, хотя по сути это неэффективное урезание части диска, пусть и не на такой значительный объем. Но если памяти реально мало и свап будет использоваться постоянно, вместо оперативной памяти, то деградация этого участка будет идти намного быстрее, чем на остальных разделах.
Точно так же и с другими разделами, которые будут вырабатывать ресурс крайне неравномерно. Чем на SSD меньше разделов, тем лучше. Чем SSD больше, тем лучше. Это обеспечивает контроллеру большую свободу, куда писать данные. Одна из функций контроллера - это wear leveling. Он старается писать данные на диск более - менее равномерно, чтобы выработка ресурса шла сбалансированно. Чем на большее количество разделов порублен диск, тем сложнее контроллеру осуществлять этот wear leveling.
Опять же, все это не имеет значения, если это какой-то домашний десктоп, который будет включаться на 2-3 часа в день. Но если это какой-то, пусть и домашний, сервер, который будет активно работать 24/7, это все уже обретает какой-то смысл. Это так же не очень важно, если планируется менять SSD каждые 2-3 года. Но если хочется продлить жизнь SSD’шника, то не стоит лишний раз его разбивать и делать какие-то постоянные свап разделы.
Но в общем и целом, чем больше мы ставим контроллер в какие-то рамки, тем быстрее мы увидим мертвые ячейки на диске.
mpa4b
14.01.2025 18:51то деградация этого участка будет идти намного быстре
Вот, теперь вы из 2005 года пишете. В 2025 любой самый заштатный SSD сам у себя обязательно делает wear levelling и равномерно размазывает записи по всем местам всех чипов.
HardWrMan
14.01.2025 18:51А некоторые производители ещё и запас оставляют специально, поэтому мы имеем объёмы не степени двойки (120ГБ, 240ГБ, 480ГБ, 960ГБ и т.д.).
NikaLapka
14.01.2025 18:51Windows Server и Debian это два разных мира, но оба фундаментальных и замечательных.
Для Автора начинающего устанавливать Debian:
Одной из различий Install и Graphical Install - это количество необходимой памяти, что уже стало камнем преткновения в сообществе Debian, т.к. например, 512 Мб уже мало для графического интерфейса, но излишне для минимальных системных требований.
Не забываем и про Expert Install - это позволит вам не только, например, подключить зашифрованные диски, но и установить систему без создания отдельной учётной записи пользователя.
При настройке дисков, в первую очередь стоит отметить возможность простого сценария установки: create partition and install, без uefi, swap, lvm.
Эти три пункта довольно интересны не только для новичков, по сравнению например с их опытом установкой Ubuntu, но и полезны опытным пользователям, которые например устанавливают ОС на виртуальную машину..
LVM - это новый уровень абстракции между физическими дисками и логическими томами, и он становится гораздо интереснее, когда подключается виртуализация, где уже и каждый физический диск может быть абстракцией.
Выбор зеркала Debian, тоже интересная тема, в которой нужно принять во внимание: а будет ли доступна связанность Интернета завтра.. или например, у нас есть замечательное и быстрое зеркало на Яндекс..
Lev3250
14.01.2025 18:51С зеркалами дебиан вообще песня, когда русский хостер имеет сервера за границей. Они раскатывают свои образы, где зашиты адреса Яндекса, которые далеко не всегда доступны оттуда. И начинаются игры с настройками...
Lev3250
А было много опыта?
StafLoker Автор
Опыта нету. В основном претензия к командной строке. Цель обучение была об конфигурации сервера на linux. В частности дистрибутивы построенных на Debian.
6yHTapb78RUS
Странно, тега "Администрирование Linux" не наблюдается среди этих - Серверная оптимизация*Серверное администрирование*