Как создать свою собственную операционную систему

6 min

Arch Linux придерживается минимализма, позволяя пользователям самостоятельно создавать любые желаемые функции. В этом руководстве мы рассмотрим процесс установки Arch Linux на реальном оборудовании.

Подготовка

Вам понадобятся: компьютер, USB-накопитель (или любое съемное устройство хранения), подключение к интернету и базовые навыки поиска информации.

  • Независимо от выбранного образа установки, даже для оффлайн-установки, рекомендуется иметь доступ к интернету для обновления ядра и инструментов. Если вы опытный пользователь, можете принять решение самостоятельно.
  • При использовании Wi-Fi убедитесь, что имя сети указано на английском языке, так как в среде tty не отображаются не-ASCII символы (например, кириллица), которые будут выглядеть как нечитаемые блоки.
  • Если вы планируете установить двойную загрузку на одном диске, выделите достаточно места для Arch Linux — рекомендуется не менее 100 ГБ для будущих установок программ. Убедитесь, что раздел EFI имеет объем не менее 256 МБ или создайте дополнительную точку монтирования.
  • Проверьте, включено ли шифрование BitLocker на разделе Windows 10. Заранее получите ключ восстановления и отключите функцию быстрого запуска в настройках питания!

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

Создание установочного носителя

  1. Загружайте установочный образ только с официальной страницы Arch Linux. Обратите внимание, что Arch Linux — это дистрибутив с непрерывным обновлением.
  2. Если вы хотите собрать собственное ядро, обратитесь к руководству по традиционной компиляции ядра.
  3. Для официального установочного образа рекомендуется использовать Ventoy для создания загрузочного USB-накопителя.

Базовая установка

1. Загрузка с носителя Arch Linux

Выключите компьютер, вставьте USB-накопитель и включите его. Войдите в BIOS, выберите USB в качестве загрузочного устройства, выберите первый пункт меню и нажмите Enter, чтобы войти в среду установки Arch Linux.

2. Проверка UEFI

systemctl stop reflector.service
# Отключите автоматическое обновление зеркал, так как географические особенности сети могут вызывать проблемы.
ls /sys/firmware/efi/efivars
# Если отображается список EFI-переменных, система загружена в режиме UEFI. Большинство компьютеров в 2025 году используют UEFI.

3. Настройка сети

Для установки Arch Linux требуется подключение к интернету. Оффлайн-установка сложнее, см. руководство по оффлайн-установке.

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

В университетских сетях может потребоваться аутентификация через вышестоящий маршрутизатор. См. проект nbtverify.

Для Wi-Fi используйте iwctl для подключения.

lspci -k | grep Network
# Проверьте, работает ли беспроводной адаптер. Если уверены, что он исправен, этот шаг можно пропустить.

Проверьте, загрузил ли ядро драйвер беспроводной сети.

Ожидаемый вывод: 00:14.3 Network controller: Intel Corporation Wi-Fi 6 AX201 (rev 20).

Если ничего не отображается, проверьте, не заблокировано ли беспроводное соединение (blocked: yes).

rfkill list
# Беспроводной адаптер обычно называется wlan0.
ip link set wlan0 up
# Если появляется ошибка типа «Operation not possible due to RF-kill», выполните:
rfkill unblock wifi
# Подключение к Wi-Fi с помощью iwctl
iwctl # Вход в интерактивный режим
device list # Список беспроводных устройств, например wlan0
station wlan0 scan # Сканирование сетей
station wlan0 get-networks # Список доступных Wi-Fi сетей
station wlan0 connect wifi-name # Подключение к сети. Имена на кириллице не поддерживаются. Введите пароль и нажмите Enter.
exit # Выход после успешного подключения

ping www.google.com # Проверка соединения

Если возникли проблемы с настройкой сети, обратитесь к руководству по настройке сети/беспроводной сети.

5. Синхронизация системных часов

timedatectl set-ntp true # Синхронизация системного времени с сетевым
timedatectl status # Проверка статуса службы

6. Обновление списка зеркал (для России)

vim /etc/pacman.d/mirrorlist # Редактирование списка зеркал
Server = https://mirror.yandex.ru/mirrors/archlinux/$repo/os/$arch # Зеркало Яндекс
Server = https://mirror.truenetwork.ru/archlinux/$repo/os/$arch # TrueNetwork
Server = https://mirrors.dotsrc.org/archlinux/$repo/os/$arch # Dotsrc

7. Создание разделов Btrfs

Проверка информации о дисках

lsblk

Отобразится текущая структура разделов. Тщательно проверьте целевой диск для установки Arch Linux.

Соглашения об именовании дисков:

  • SATA-диски: sda, sdb, sdc … Разделы: sda1, sda2 и т.д.
  • NVMe-диски: nvme0n1, nvme1n1 … Разделы: nvme0n1p1, nvme0n1p2 и т.д.

В примере используется SATA-диск. Замените /dev/sdx на ваш диск.

cfdisk /dev/sdx

Появится удобный TUI-интерфейс для работы с разделами. 😄

Шаги по созданию разделов

1. Создание раздела подкачки (Swap)
  • С помощью стрелок выберите Free space.
  • Нажмите [New], введите размер (рекомендуется 60–100% от объема оперативной памяти).
  • Нажмите [Type] и выберите Linux swap.
2. Создание корневого раздела (для Btrfs)
  • Выберите оставшееся Free space, нажмите [New] и Enter.
  • Укажите размер (по умолчанию: весь оставшийся объем).
  • Оставьте тип как Linux filesystem.
3. Запись таблицы разделов
  • Выберите [Write], введите yes и нажмите Enter.

    ⚠️ Примечание: изменения не вступят в силу без записи!

Форматирование разделов

Повторная проверка дисков
fdisk -l
Форматирование раздела EFI (если создается новый)
mkfs.fat -F32 /dev/sdxn

💡 Для двойной загрузки можно использовать существующий EFI-раздел Windows без форматирования, но убедитесь, что места достаточно. См. Двойная загрузка с Windows.

Форматирование раздела подкачки
mkswap /dev/sdxn
Форматирование раздела Btrfs
mkfs.btrfs -L myArch /dev/sdxn

Создание и монтирование подтомов Btrfs

mount -t btrfs -o compress=zstd /dev/sdxn /mnt

# Создание подтомов
btrfs subvolume create /mnt/@        # Корневой подтом
btrfs subvolume create /mnt/@home    # Подтом для /home

umount /mnt

⚠️ Финальное напоминание

  • Еще раз проверьте команды и операции!
  • Ошибки могут привести к потере данных, особенно при случайном удалении разделов Windows 😥.

8. Монтирование разделов (начиная с корневого)

mount -t btrfs -o subvol=/@,compress=zstd /dev/sdxn /mnt # Монтирование / каталога
mkdir /mnt/home # Создание каталога /home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdxn /mnt/home # Монтирование каталога /home
mkdir -p /mnt/boot # Создание каталога /boot
mount /dev/sdxn /mnt/boot # Монтирование каталога /boot
swapon /dev/sdxn # Активация раздела подкачки
df -h # Проверка монтирования
free -h # Проверка монтирования раздела подкачки

9. Установка системы

pacstrap /mnt base base-devel linux linux-firmware btrfs-progs
# Если используется файловая система Btrfs, установите пакет btrfs-progs
pacman -S archlinux-keyring
# Если возникает ошибка GPG-ключа, возможно, образ устарел. Обновите archlinux-keyring для решения.
pacstrap /mnt networkmanager vim sudo zsh zsh-completions
# Установка необходимых функциональных пакетов с помощью pacstrap

10. Генерация файла fstab

Генерирует fstab для определения разделов диска на основе текущих точек монтирования.

genfstab -U /mnt > /mnt/etc/fstab

11. Вход в новую систему

arch-chroot /mnt
# Пропала подсветка кода? Не волнуйтесь, вы успешно вошли в chroot!

12. Настройка имени хоста и часового пояса

vim /etc/hostname
# Задайте имя хоста (избегайте специальных символов и пробелов, иначе могут возникнуть проблемы; отсутствие имени хоста может привести к сбоям некоторых GUI-приложений).
vim /etc/hosts
# Редактирование файла hosts

Добавьте следующее (замените myarch на ваше имя хоста, используйте табуляцию для выравнивания):

127.0.0.1   localhost
::1         localhost
127.0.1.1   myarch.localdomain  myarch
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
# Создание символической ссылки для часового пояса Москвы
ls /usr/share/zoneinfo/
# Проверка доступных часовых поясов, при необходимости измените путь в команде выше

13. Настройка аппаратных часов

hwclock --systohc
# Синхронизация системного времени с аппаратными часами

14. Настройка локализации

vim /etc/locale.gen
# Отредактируйте /etc/locale.gen, раскомментируйте строки en_US.UTF-8 UTF-8 и ru_RU.UTF-8 UTF-8
# Этот шаг определяет язык и кодировку для программ
locale-gen
# Генерация локалей
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# Настройка locale.conf. Русская локаль не рекомендуется, так как может вызвать проблемы с кодировкой в tty

15. Установка пароля root

passwd root
# Ввод пароля не отображается — это нормально, клавиатура не сломана! 😄

16. Установка микрокода

pacman -S intel-ucode # Для процессоров Intel
pacman -S amd-ucode # Для процессоров AMD

17. Установка загрузчика Grub

pacman -S grub efibootmgr os-prober
# grub — загрузчик, efibootmgr записывает загрузочные записи в NVRAM, os-prober позволяет обнаружить Windows 10
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# Установка grub в раздел EFI
vim /etc/default/grub
# Редактирование параметров загрузки
# Измените "loglevel=3 quiet" на "loglevel=5 nowatchdog"
# Добавьте в конец файла: GRUB_DISABLE_OS_PROBER=false
  • Удалите параметр quiet из строки GRUB_CMDLINE_LINUX_DEFAULT.
  • Измените loglevel с 3 на 5 для упрощения отладки ошибок.
  • Добавьте nowatchdog для ускорения включения/выключения.
  • Включите os-prober для обнаружения Windows 10.
grub-mkconfig -o /boot/grub/grub.cfg
# Генерация конфигурационного файла grub
# Если обнаружена Windows 10, появится строка вроде: «Found Windows Boot Manager on /dev/nvme0n1p1@/EFI/Microsoft/Boot/bootmgfw.efi done»
# Если Windows на другом диске, вывода не будет. После входа в систему перемонтируйте и повторите команду.

Подробности о параметрах см. в Arch Wiki.

18. Завершение установки

exit # Возврат в среду установки
umount -R /mnt # Размонтирование новых разделов
reboot # Перезагрузка

После перезагрузки войдите под учетной записью root.

systemctl enable --now NetworkManager # Включение и запуск службы NetworkManager
ping www.google.com # Проверка сетевого подключения

Для Wi-Fi:

nmcli dev wifi list # Список ближайших Wi-Fi сетей
nmcli dev wifi connect "SSID Wi-Fi" password "пароль сети" # Подключение к указанной Wi-Fi сети
nmtui
# Лично я предпочитаю nmtui — он удобнее! 😄
pacman -S fastfetch
fastfetch
# Установка fastfetch для проверки системной информации
# Время для классического момента neofetch! 😄
shutdown 0
shutdown -h now
poweroff
# Все три команды выключают систему. 😄 Не забудьте выключить, так как политики питания еще не настроены.

Поздравляем 🎉

Вы успешно установили минимальную версию Arch Linux без графического интерфейса!

Руководство по установке графического интерфейса будет в следующем обновлении, но, как всегда: читайте документацию!

Это руководство — лишь отправная точка, надеемся, оно вдохновит больше энтузиастов присоединиться к сообществу!


Связанные ресурсы: NBTCA