1. Установка Arch Linux
Раздел:
Тема:
Количество часов: 2
Задачи:
Порядок выполнения работы:
Revolution OS
Сетевой и системный администратор в своей работе должен опираться не только на технические знания и практические навыки, но и понимать контекст — зачем была создана та или иная технология, кто её разработал и с какой целью. Важно видеть не только «как», но и «почему». Особенно это актуально в отношении масштабных явлений, таких как движение Open Source. Рекомендую посмотреть документальный фильм Revolution OS — в нём участники движения, создатели Linux, GNU и других ключевых компонентов свободного ПО, рассказывают о своих идеях, мотивации и борьбе за открытость кода. Этот фильм позволяет понять, как личные убеждения и стремление к свободе обмена знаниями привели к созданию технологий, ставших сегодня глобальным достоянием и основой современной цифровой инфраструктуры.
https://rutube.ru/video/4d6aa787f23b8a59777d59248cd82e7f/
Предисловние
Данная самостаятельная работа является руководством по установке Arch Linux с помощью системы, загруженной с официальным установочным образом.
Более подробные инструкции приведены в соответствующих статьях ArchWiki и на страницах справочных руководств (man) различных программ. Также вы можете получить помощь в IRC-канале и на англоязычном и русскоязычном форумах Arch Linux.
Arch Linux способен работать на любой x86_64-совместимой машине, имеющей хотя бы 512 МиБ ОЗУ, однако понадобится больше памяти для загрузки live-системы. Базовая установка занимает меньше 2 ГиБ дискового пространства. Поскольку для процесса установки требуется получать пакеты из удалённого репозитория, необходимо работающее интернет-соединение.
Архитектурный контекст
Arch Linux следует философии KISS (Keep It Simple, Stupid), что отражает основной принцип Unix-подобных систем: каждая утилита должна решать одну задачу, но делать это качественно. Обратите внимание, что:
- Ядро Linux управляет взаимодействием с железом
- GNU-утилиты (
bash
,coreutils
,grep
и др.) предоставляют пользовательский интерфейс - Пакетный менеджер pacman — "клеевой компонент", соединяющий эти слои.
Это разделение ответственности между ядром, утилитами и пакетами — ключевая особенность архитектуры GNU/Linux.
Разметка дисков
Когда запущенная система распознает накопители, они становятся доступны как блочные устройства, например, /dev/sda
, /dev/nvme0n1
или /dev/mmcblk0
. Чтобы посмотреть их список, используйте lsblk
или fdisk
:
fdisk -l
Результаты, оканчивающиеся на rom
, loop
и airoot
, можно игнорировать.
Блочные устройства и ядро
Блочные устройства (/dev/sdX
, /dev/nvmeX
) — это абстракция ядра Linux для работы с дисками. Важно понимать:
sda
— интерфейс SATA/SCSI,nvme0n1
— интерфейс NVMe,mmcblk0
— карта памяти- Ядро динамически создает эти узлы через подсистему udev
- Разделы (например,
/dev/sda1
) — логические части физического устройства
Это демонстрирует принцип "всё в Linux — файлы", даже аппаратные устройства представлены в файловой системе.
Необходимо выбрать блочное устройство на которое планируется установка системы.
Используйте fdisk
чтобы разметить диск:
fdisk /dev/диск_для_разметки
Создайте два раздела: основной раздел системы и SWAP раздел.
SWAP и виртуальная память
SWAP — не просто "резервная память". Это ключевой компонент виртуальной памяти:
- Позволяет ядру выгружать неактивные страницы RAM на диск
- Критичен для систем с малым объемом ОЗУ
- Современные ядра используют SWAP даже при наличии свободной RAM (для оптимизации)
В Linux управление памятью — часть ядра (subsystem mm), а не отдельный сервис.
Форматирование разделов
Когда новые разделы созданы, каждый из них необходимо отформатировать в подходящую файловую систему.
Например, чтобы отформатировать /dev/корневой_раздел
в Ext4, выполните следующую команду:
mkfs.ext4 /dev/корневой_раздел
Файловые системы и VFS
Ext4 — это journaling файловая система, но важно понять:
- VFS (Virtual Filesystem Switch) — абстрактный слой ядра, через который взаимодействуют все FS
- Файловая система — не часть ядра, а модуль, подключаемый динамически
- Характеристики FS (ext4, btrfs, xfs) определяют:
- Алгоритмы хранения данных
- Поддержку ACL/SELinux
- Механизмы восстановления после сбоев
Это пример разделения ядра и пользовательского пространства.
Если вы создали раздел для подкачки (swap), инициализируйте его с помощью утилиты mkswap
:
mkswap /dev/раздел_подкачки
Монтирование разделов
Смонтируйте корневой раздел в каталог /mnt
. Например, если корневой раздел — /dev/корневой_раздел
, выполните следующую команду:
mount /dev/корневой_раздел /mnt
Иерархия файловых систем
Обратите внимание на принцип единой иерархии каталогов:
- В отличие от Windows (C:, D:), в Linux все разделы монтируются в единую дерево начиная с
/
- Точка монтирования — обычный каталог, не имеющий специальных прав
/proc
,/sys
— псевдо-файловые системы ядра (procfs, sysfs), предоставляющие интерфейс к параметрам ядра
Это фундаментальное отличие архитектуры Unix-систем от других ОС.
Создайте точки монтирования для всех остальных разделов (например, /mnt/efi
) и примонтируйте соответствующие разделы.
Совет
Команда mount
, запущенная с опцией --mkdir
, автоматически создаст требуемую точку монтирования. Можно создать их и вручную с помощью mkdir
.
Если вы ранее создали раздел подкачки (swap), активируйте его с помощью swapon
:
swapon /dev/раздел_подкачки
В дальнейшем genfstab
обнаружит смонтированные файловые системы и пространство подкачки.
Установка
Выбор зеркал
Пакеты для установки должны скачиваться с серверов-зеркал, прописанных в файле /etc/pacman.d/mirrorlist
. В установочном образе, после подключения к сети, reflector
обновит список зеркал (выбрав 20 наиболее актуальных HTTPS-зеркал) и отсортирует их по скорости загрузки.
Репозитории и пакетный менеджер
Pacman использует двухуровневую модель:
- Репозитории (mirrorlist) — статические архивы пакетов
- Локальная БД (
/var/lib/pacman/local
) — отслеживает установленные пакеты Ключевые концепции:
- Пакет — не просто набор файлов, а метаданные + скрипты установки
- Зависимости разрешаются на уровне пакетного менеджера, а не через LD_LIBRARY_PATH
- Arch использует rolling release — обновления поступают сразу после тестирования
Чем выше зеркало расположено в списке, тем больший приоритет оно имеет при скачивании пакета. Вы можете проверить этот файл и, при необходимости, отредактировать его вручную, переместив наверх наиболее географически близкие зеркала. При этом также учитывайте и другие критерии.
Позже pacstrap
скопирует этот файл в новую систему, так что это действительно стоит сделать. Установка основных пакетов
Установка пакетов
Используйте скрипт pacstrap
, чтобы установить пакет base
, ядро Linux
и прошивки часто встречающихся устройств:
pacstrap -K /mnt base linux linux-firmware dhcpcd nano openssh
Совет
В случае проблем с pgp key используйте:
pacman -Sy archlinux-keyring
Совет
linux
можно заменить на другой желаемый пакет ядра. Можно вообще не устанавливать ядро, если установка происходит в контейнере.
Можно пропустить установку пакета прошивок, если установка происходит в контейнере или виртуальной машине.
Пакет base
содержит не все инструменты, имеющиеся на установочном носителе, из-за чего может потребоваться установка дополнительных пакетов для получения полностью функциональной базовой системы. В частности, вам могут пригодиться следующие программы:
- утилиты для управления файловыми системами в пользовательском пространстве, которые будут использоваться в системе,
- утилиты для доступа к RAID- или LVM-разделам,
- специфические прошивки других устройств, не включённые в
linux-firmware
(например,sof-firmware
для некоторых звуковых карт), - ПО, необходимое для организации сети (например, менеджер сети или DHCP-клиент),
- текстовый редактор,
- пакеты для доступа к документации в
man
иinfo
:man-db
,man-pages
иtexinfo
.
Чтобы установить другие пакеты или группы, добавьте их названия к команде pacstrap (разделяя их пробелом) или используйте pacman во время этапа #Chroot. Список пакетов, присутствующих в установочном образе, доступен на странице pkglist.x86_64.txt
.
Состав базовой системы
Пакет base
включает:
- GNU Coreutils (ls, cp, rm и др.)
- Bash (но не единственный shell)
- systemd (менеджер служб)
- pacman (сам пакетный менеджер!)
Важно: ядро Linux (linux
) и прошивки (linux-firmware
) — отдельные компоненты, так как:
- Ядро работает в привилегированном режиме (kernel space)
- Прошивки — двоичные blob'ы для оборудования (часто закрытые) Это демонстрирует разделение на open-source ядро и проприетарные компоненты.
Настройка системы
Fstab
Сгенерируйте файл fstab
(используйте ключ -U
или -L
, чтобы для идентификации разделов использовались UUID или метки, соответственно):
genfstab -U /mnt >> /mnt/etc/fstab
После этого проверьте файл /mnt/etc/fstab
и отредактируйте его в случае необходимости.
fstab и процесс загрузки
Файл /etc/fstab
— часть системы инициализации:
- Читается на ранней стадии загрузки (до запуска systemd)
- Определяет порядок монтирования разделов
- UUID предпочтительнее
/dev/sdX
, так как:- Не зависит от порядка обнаружения устройств
- Гарантирует стабильность при изменении конфигурации
Это пример связи между низкоуровневыми операциями (монтирование) и высокоуровневой системой (systemd).
Chroot
Перейдите к корневому каталогу новой системы:
arch-chroot /mnt
Chroot и изоляция
Команда arch-chroot
делает два ключевых действия:
- Меняет корневую файловую систему на
/mnt
- Корректирует пространство процессов (PID namespace) Это базовый механизм изоляции, на котором строятся:
- Контейнеры (LXC, Docker)
- Системы восстановления
- Безопасное выполнение программ
Понимание chroot критично для работы с современными Linux-системами.
Часовой пояс
Задайте часовой пояс:
ln -sf /usr/share/zoneinfo/Регион/Город /etc/localtime
Время в Linux
Два ключевых аспекта:
- Аппаратные часы (RTC) — хранят время в UTC (не в локальном!)
- Системные часы — управляются ядром, используют локальную зону через
/etc/localtime
Почему UTC?
- Позволяет корректно работать с несколькими временными зонами
- Избегает проблем с летним/зимним временем
- Стандарт для серверных систем
Это пример компромисса между технической простотой и пользовательским удобством.
Запустите hwclock
, чтобы сгенерировать /etc/adjtime
:
hwclock --systohc
Эта команда предполагает, что аппаратные часы настроены в формате UTC.
Пароль суперпользователя
Установите пароль суперпользователя:
passwd
Загрузчик GRUB2
Установка пакета
Файлы и утилиты для установки GRUB2 содержатся в пакете grub
, и устанавливаются командой:
pacman -S grub
Установка загрузчика
Установка BIOS-версии загрузчика
Для установки GRUB2 нужно выполнить команду от root:
grub-install /dev/sda
- где
/dev/sda
это устройство (не раздел!) для установки загрузочных образов GRUB. Файлы загрузчика будут установлены в каталог/boot
. Код GRUB (boot.img
) будет встроен в начальный сектор, а загрузочный образcore.img
– в просвет перед первым разделом MBR, или BIOS boot partition для GPT.
Если при выполнении команды происходит ошибка, попробуйте добавить --recheck
в аргументы как показано ниже:
grub-install --recheck /dev/sda
Загрузчики и этапы загрузки
Процесс загрузки Linux:
- BIOS/UEFI — инициализация железа
- Загрузчик (GRUB) — загружает ядро и initramfs
- Ядро — монтирует корневую ФС
- systemd — запускает службы GRUB работает в режиме реальных адресов (как DOS!), поэтому:
- Нужен отдельный раздел
/boot
(обычно ext4) - Не может напрямую работать с LVM/Btrfs на ранних этапах Это историческое наследие влияет на современную архитектуру систем.
После установки
В настоящее время GRUB2, сразу после установки, готов к работе только в режиме консоли. (Это будет продолжаться до тех пор, пока мейнтейнеры пакета "grub" не заменят бессмысленный дефолтный файл конфигурации загрузчика на рабочую статическую или автоматически генерируемую версию.)
Чтобы получить при загрузке действующее меню GRUB2, требуется заменить файл grub.cfg
самостоятельно.
Генерация конфига
Команда grub-mkconfig
может быть использована для генерации файла grub.cfg
.
Для автоматического обнаружения ОС отличных от Linux установите пакет os-prober
. Если после установки пакета os-prober
автоматическое обнаружение не работает должным образом, то может потребоваться установка пакета hwinfo
. Чтобы применить изменения, запустите команду:
grub-mkconfig -o /boot/grub/grub.cfg
Она не только создаст файл /boot/grub/grub.cfg
, но и проверит конфигурацию на наличие ошибок.
Важно
Если вы запускаете конфигуратор при установке Arch Linux, убедитесь, что вы делаете это внутри arch-chroot
, иначе программа будет читать и записывать файлы конфигурации текущей, а не устанавливаемой системы.
Перезагрузка
Выйдите из окружения chroot, набрав exit
или нажав Ctrl+d
.
Вы можете размонтировать все разделы с помощью команды:
umount -R /mnt
Фаза выгрузки системы
Команда umount -R
критична, потому что:
- Ядро блокирует доступ к файлам при монтировании
- Неотмонтированные разделы могут повредить данные
systemd
автоматически размонтирует при перезагрузке, но лучше делать это вручную
Это демонстрирует принцип синхронизации состояния в Unix-системах: все операции с диском должны быть завершены перед выключением.
Теперь перезагрузите компьютер, набрав reboot
: если какие-нибудь разделы остались смонтированными, systemd
их размонтирует. Не забудьте извлечь установочный носитель. После загрузки войдите в систему в качестве суперпользователя.
Контрольные вопросы по теме: Установка Arch Linux
1. Общие сведения
- Какие минимальные системные требования для установки Arch Linux?
- Зачем нужен работающий интернет-доступ при установке Arch Linux?
- Что представляет собой live-система при установке Arch Linux?
- Где можно найти официальную документацию по установке Arch Linux?
2. Разметка дисков
- Какие команды можно использовать для просмотра списка доступных блочных устройств?
- Как определить, какой диск использовать для установки системы?
- Какие типы разделов необходимо создать при установке Arch Linux (минимальный набор)?
- Какая команда используется для разметки диска в интерактивном режиме?
- Почему при установке GRUB в режиме BIOS важно указывать не раздел, а само устройство (например,
/dev/sda
, а не/dev/sda1
)?
3. Форматирование и монтирование
- Какая команда используется для форматирования раздела в файловую систему ext4?
- Что делает команда
mkswap
и для какого раздела она применяется? - Как активировать swap-раздел после его создания?
- В какую директорию монтируется корневой раздел при установке?
- Какая опция команды
mount
позволяет автоматически создать точку монтирования?
4. Установка пакетов
- Что делает утилита
pacstrap
? - Какие пакеты устанавливаются командой:
pacstrap -K /mnt base linux linux-firmware dhcpcd nano openssh
- Зачем нужно обновлять
archlinux-keyring
при возникновении ошибок с PGP-ключами? - Можно ли установить Arch Linux без ядра? В каком случае это допустимо?
- Какие дополнительные пакеты могут понадобиться для полноценной базовой системы?
5. Настройка системы
- Как сгенерировать файл
/etc/fstab
? Какой ключ рекомендуется использовать и почему? - Для чего используется команда
arch-chroot
и когда она применяется? - Как установить часовой пояс в Arch Linux? Приведите пример команды.
- Какая команда синхронизирует системные часы с аппаратными?
- В каком формате предполагается, что работают аппаратные часы при выполнении
hwclock --systohc
? - Как установить пароль для пользователя root?
6. Загрузчик GRUB
- Какой пакет необходимо установить для работы с GRUB2?
- Какая команда устанавливает загрузчик GRUB2 на диск в режиме BIOS?
- Что делает опция
--recheck
в командеgrub-install
? - Почему после установки GRUB2 требуется вручную генерировать
grub.cfg
? - Какая команда генерирует конфигурационный файл GRUB?
- Какой пакет нужен для обнаружения других операционных систем при генерации
grub.cfg
? - Почему важно запускать
grub-mkconfig
внутриarch-chroot
?
7. Завершение установки
- Как выйти из окружения
chroot
? - Как размонтировать все разделы перед перезагрузкой?
- Что произойдёт, если не извлечь установочный носитель после перезагрузки?
Отчёт
Требования к отчету
1. Формат и структура
- Файл должен называться
Group_Lastname_Firstname_HW1.md
- Использовать синтаксис Markdown (заголовки, списки, код, цитаты)
- Обязательные разделы:markdown
# Введение # Анализ этапов установки # Выводы
2. Содержание разделов
Введение (200-300 слов)
- Кратко опишите философию Arch Linux (KISS, DIY)
- Объясните разницу между ядром Linux и GNU-утилитами
- Упомяните, почему Arch подходит для изучения архитектуры ОС
- Пример:
"Arch Linux реализует принцип «не навязывать предустановленные решения», что позволяет увидеть «костяк» GNU/Linux-системы. В отличие от Ubuntu, где скрыты этапы инициализации, Arch требует ручной настройки каждого компонента..."
Анализ этапов установки (основная часть) Для каждого из этапов установки:
Вставьте скриншот терминала с выполненной командой
Добавьте подпись с пояснением:
markdown *Рис. 1. Создание разделов через fdisk. Обратите внимание, что /dev/sda — абстракция ядра для SATA-диска, а не физическое устройство.*
Напишите краткое описание (80-100 слов), отвечая на простые вопросы:
- Какую команду вы выполняли?
- Что эта команда делает в контексте установки?
- Какие параметры вы использовали и почему?
- Что произошло после выполнения команды?
Пример для этапа разметки:
"Команда
fdisk /dev/sda
запустила утилиту для разметки диска. Я создал два раздела: основной и swap. Параметр/dev/sda
указывает на первый жесткий диск. После создания разделов командаlsblk
показала новые разделы sda1 и sda2. Это важно, потому что без разделов нельзя установить систему."
Что я узнал(а) (200-250 слов)
- Какие 3 момента процесса установки оказались для вас неожиданными
- Какие команды/этапы были самыми сложными и почему
- Что нового вы поняли о работе операционных систем
3. Требования к скриншотам
- Минимум 5 скриншотов
- В скриншотах должны быть видны:
- Команды в терминале
- Вывод системных утилит (lsblk, fdisk -l и т.д.)
- Ваш username в приглашении терминала (для подтверждения авторства)
- Каждый скриншот должен иметь подпись и пояснение
Важно!
- Не копируйте текст руководства — пишите своими словами
- Избегайте общих фраз вроде "Linux хорош"
- Ссылайтесь на конкретные компоненты (VFS, udev, initramfs)
- Проверяйте корректность терминов (например, не "ядро GNU", а "ядро Linux")