Arch Linux — минималистичный rolling-release дистрибутив: ставится базовый каркас, остальное — по вкусу. Установка вручную (без установщика) — часть философии: после неё система понятна до последнего файла.
Подготовка#
- Образ — последний ISO с archlinux.org
- Запись на USB —
ddили Rufus/Ventoy - Загрузка с USB — в UEFI-режиме (Boot menu материнки)
# Записать образ на флешку (осторожно с of= — всё на разделе затирается)
dd if=archlinux-x86_64.iso of=/dev/sdX bs=4M status=progress
Разметка диска#
Типичная схема для UEFI: ESP на /boot + корень на всё остальное:
# Диски и точки монтирования
lsblk
# Таблица GPT
parted /dev/sda mklabel gpt
# ESP на /boot и корневой раздел
parted /dev/sda mkpart ESP fat32 1MiB 513MiB
parted /dev/sda set 1 esp on
parted /dev/sda mkpart primary 513MiB 100%
# Файловые системы
mkfs.fat -F32 /dev/sda1
mkfs.ext4 /dev/sda2
Монтирование — прежде чем что-то ставить:
mount /dev/sda2 /mnt
mount --mkdir /dev/sda1 /mnt/boot
Сеть на ISO поднимается сама (Ethernet). Wi-Fi:
iwctl→station wlan0 scan/station wlan0 connect <SSID>.
Базовая система#
# Проверка синхронизации времени (UTC на ISO)
timedatectl
# Ключи и списки репозиториев актуальны: сразу обновить keyring
pacman -Sy archlinux-keyring
# Установка каркаса в /mnt
pacstrap -K /mnt base base-devel linux linux-firmware amd-ucode
# fstab по UUID
genfstab -U /mnt > /mnt/etc/fstab
# Переезд в новую систему
arch-chroot /mnt
amd-ucode— микрокод процессоров AMD; для Intel ставьтеintel-ucode. Фирменные прошивки Wi-Fi/звука — отдельный пакетlinux-firmwareуже включает основной набор.
Настройка системы#
# Часовой пояс и аппаратные часы
ln -sf /usr/share/zoneinfo/Europe/Minsk /etc/localtime
hwclock --systohc
# Локали
echo "ru_RU.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo "LANG=ru_RU.UTF-8" > /etc/locale.conf
# Имя машины
echo "archlinux" > /etc/hostname
/etc/hosts — запись имени хоста, чтобы сервисы не ругались на резолвинг:
cat > /etc/hosts <<'EOF'
127.0.0.1 localhost
127.0.1.1 archlinux
::1 localhost
EOF
Пароль root:
passwd
Загрузчик#
Разметка UEFI — GRUB ставится в ESP:
pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
BIOS-режим (legacy): тот же
grub-install /dev/sda, но ESP тогда не нужен. Если рядом стоит другая ОС: пакетos-proberи строкаGRUB_DISABLE_OS_PROBER=falseв/etc/default/grubпередgrub-mkconfig.
Пользователь#
Работать под root — плохая привычка; создаём обычного пользователя с sudo:
useradd -m -G wheel -s /bin/bash admin
passwd admin
pacman -S sudo
sudo читает каталог
/etc/sudoers.d/— править вендорский sudoers не надо:echo "%wheel ALL=(ALL:ALL) ALL" > /etc/sudoers.d/10-wheel chmod 440 /etc/sudoers.d/10-wheel
Рабочее окружение#
# Xorg
pacman -S xorg-server xorg-xinit xorg-apps
# Тайловый менеджер i3 + дисплейный менеджер
pacman -S i3-wm i3lock i3status
pacman -S lightdm lightdm-gtk-greeter
systemctl enable lightdm
Не фанат i3: полноценный вариант —
pacman -S plasma sddm(KDE Plasma) илиpacman -S gnome gdm. Тайловый стек (i3 + status) — легче на порядок.
Перезагрузка и первые шаги#
exit # выходим из chroot
reboot # вынув флешку
# Уже в своей системе: обновляем всё и ставим привычные пакеты
pacman -Syu
pacman -S git curl neovim
Лайфхаки pacman и AUR#
# Поиск и информация
pacman -Ss nginx # поиск по репозиториям
pacman -Qi nginx # инфо об установленном
pacman -Ql nginx # список файлов пакета
pacman -Qo /usr/bin/nginx # кто владеет файлом
# Список явно установленных пакетов — бэкап состава системы
pacman -Qe | awk '{print $1}' > pkglist.txt
pacman -S --needed - < pkglist.txt # восстановить на новой машине
# Кэш пакетов ест много: оставить по 2 версии каждого пакета
pacman -S pacman-contrib
paccache -rk2
# Сироты — пакеты, никто из установленных явно не требует
pacman -Rns $(pacman -Qdtq)
# Свежие быстрые зеркала в mirrorlist
pacman -S reflector
reflector --country BY,PL --sort rate --latest 10 --save /etc/pacman.d/mirrorlist
Rolling release = обновляйтесь регулярно, а не раз в полгода:
pacman -Syuраз в неделю-две. Проблемный обновляющийся пакет (например, ядро) можно заморозить строкойIgnorePkg = linuxв/etc/pacman.conf— на свой страх и риск.
AUR — сторонний репозиторий сообщества со «всем на свете»; ставится через
хелпер (paru или yay): paru -S <название-пакета>. Хелпер сам вытаскивает
PKGBUILD, собирает пакет и подключает его к pacman-базе. Правило безопасности:
читайте PKGBUILD перед сборкой и не запускайте хелпер под root.