ITcompressor IT — сжато и по делу
← Назад к статьям

Arch Linux

Arch Linux — минималистичный rolling-release дистрибутив: ставится базовый каркас, остальное — по вкусу. Установка вручную (без установщика) — часть философии: после неё система понятна до последнего файла.

Подготовка#

  1. Образ — последний ISO с archlinux.org
  2. Запись на USB — dd или Rufus/Ventoy
  3. Загрузка с 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.

← Назад к статьям