Как создать свою собственную операционную систему
Arch Linux придерживается минимализма, позволяя пользователям самостоятельно создавать любые желаемые функции. В этом руководстве мы рассмотрим процесс установки Arch Linux на реальном оборудовании.
Подготовка
Вам понадобятся: компьютер, USB-накопитель (или любое съемное устройство хранения), подключение к интернету и базовые навыки поиска информации.
- Независимо от выбранного образа установки, даже для оффлайн-установки, рекомендуется иметь доступ к интернету для обновления ядра и инструментов. Если вы опытный пользователь, можете принять решение самостоятельно.
- При использовании Wi-Fi убедитесь, что имя сети указано на английском языке, так как в среде tty не отображаются не-ASCII символы (например, кириллица), которые будут выглядеть как нечитаемые блоки.
- Если вы планируете установить двойную загрузку на одном диске, выделите достаточно места для Arch Linux — рекомендуется не менее 100 ГБ для будущих установок программ. Убедитесь, что раздел EFI имеет объем не менее 256 МБ или создайте дополнительную точку монтирования.
- Проверьте, включено ли шифрование BitLocker на разделе Windows 10. Заранее получите ключ восстановления и отключите функцию быстрого запуска в настройках питания!
Перед началом внимательно прочитайте инструкции и изучите непонятные моменты. Действуйте осторожно, регулярно создавайте резервные копии — данные бесценны.
Создание установочного носителя
- Загружайте установочный образ только с официальной страницы Arch Linux. Обратите внимание, что Arch Linux — это дистрибутив с непрерывным обновлением.
- Если вы хотите собрать собственное ядро, обратитесь к руководству по традиционной компиляции ядра.
- Для официального установочного образа рекомендуется использовать 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 # Dotsrc7. Создание разделов 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-progspacman -S archlinux-keyring
# Если возникает ошибка GPG-ключа, возможно, образ устарел. Обновите archlinux-keyring для решения.pacstrap /mnt networkmanager vim sudo zsh zsh-completions
# Установка необходимых функциональных пакетов с помощью pacstrap10. Генерация файла fstab
Генерирует fstab для определения разделов диска на основе текущих точек монтирования.
genfstab -U /mnt > /mnt/etc/fstab11. Вход в новую систему
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 myarchln -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. Русская локаль не рекомендуется, так как может вызвать проблемы с кодировкой в tty15. Установка пароля root
passwd root
# Ввод пароля не отображается — это нормально, клавиатура не сломана! 😄16. Установка микрокода
pacman -S intel-ucode # Для процессоров Intel
pacman -S amd-ucode # Для процессоров AMD17. Установка загрузчика Grub
pacman -S grub efibootmgr os-prober
# grub — загрузчик, efibootmgr записывает загрузочные записи в NVRAM, os-prober позволяет обнаружить Windows 10grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# Установка grub в раздел EFIvim /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
- 📧 Электронная почта NBTCA: contact@nbtca.com
- 🌐 NBTCA GitHub: https://github.com/nbtca