Как стать автором
Обновить

Ручная установка и настройка Arch Linux — шпаргалка шаг за шагом

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров15K

ARCH


Подготовка к установке


Скачиваем образ дистрибутива Arch Linux


Утилиты для записи образа на флеш-накопитель:


  • Linux — balenaEtcher
  • Windows — Rufus
  • Кроссплатформенный Ventoy (рекомендовано)

Руководство на Habr как записать образ на флеш-накопитель с помощью Ventoy
Видео на YouTube по использованию Ventoy


Если вы пользуетесь проводным соединением, то пропускаем настройку беспроводной сети и переходим к "Проверяем работу сети"


Настройка беспроводной сети


Проверяем не заблокирован ли WiFi


rfkill

  • Если видим что что заблокирован wlan,

ID TYPE      DEVICE      SOFT      HARD  
0 bluetooth hci0   unblocked unblocked  
1 wlan      phy0     blocked unblocked

  • … то выполняем команду

rfkill unblock wifi

  • Теперь все OK

ID TYPE      DEVICE      SOFT      HARD  
0 bluetooth hci0   unblocked unblocked  
1 wlan      phy0   unblocked unblocked

Утилита iwctl для работы с WiFi


iwctl

В самой утилите iwctl вводим команды:


  • Смотрим ваши WiFi сетевые карты

[iwd]# device list

wlan0


  • Сканируем доступные сети

[iwd]# station wlan0 scan

  • Выводим список доступных сетей

[iwd]# station wlan0 get-networks

  • Например получаем такое, видим там свою сеть

                              Available networks
--------------------------------------------------------------------------------
  Network name                    Security          Signal
--------------------------------------------------------------------------------
  Ace                             psk               ****
  Nazok                           psk               ***
  Artem                           psk               ***

  • Соединяемся с нашей сетью

[iwd]# station wlan0 connect Ace

  • Вводим пароль

Type the network passphrase for Ace psk.
Passphrase: ********

  • Выходим из iwctl

[iwd]# exit

Проверяем работу сети


ping archlinux.org -c3

PING archlinux.org (95.217.163.246) 56(84) bytes of data.  
64 bytes from archlinux.org (95.217.163.246): icmp_seq=1 ttl=50 time=98.4 ms  
64 bytes from archlinux.org (95.217.163.246): icmp_seq=2 ttl=50 time=98.3 ms  
64 bytes from archlinux.org (95.217.163.246): icmp_seq=3 ttl=50 time=98.4 ms  

--- archlinux.org ping statistics ---  
3 packets transmitted, 3 received, 0% packet loss, time 2003ms  
rtt min/avg/max/mdev = 98.302/98.356/98.413/0.045 ms

  • Если видите подобное, двигаемся дальше, в противном случае решаем проблему доступа к Internet

Работа с носителем


Определяем наш диск


  • Команда для просмотра SATA/USB дисков

lsblk --scsi

NAME HCTL       TYPE VENDOR   MODEL                          REV SERIAL               TRAN
sda  0:0:0:0    disk ATA      Apacer AS340 240GB            V4.7 J28485R004707        sata
sdb  1:0:0:0    disk ATA      Samsung SSD 840 EVO 250GB EXT0DB6Q S1DBNSAFB46994Z      sata
sdc  6:0:0:0    disk Multi    Flash Reader                  1.00 058F63666471         usb
sdd  8:0:0:0    disk Generic  Flash Disk                    8.07 FB2DD809             usb

  • Команда для просмотра NVME дисков

lsblk --nvme

NAME    TYPE MODEL                   SERIAL                    REV TRAN   RQ-SIZE  MQ  
nvme0n1 disk Viper M.2 VPN110 1024GB VPN110EBBB2208190124 42BBT9BB nvme      1023   8  
nvme1n1 disk KINGSTON SNV2S1000G     50026B77857A8C32     SBM02103 nvme       255   8

  • Еще вариант просмотра информации о дисках

fdisk -l

  • в качестве примера будем использовать диск sda

План разделов GPT для UEFI на SSD 240 GB


UEFI


Раздел Название Формат Размер Назначение
sda1 efi FAT32 300 MiB Загрузочный efi
sda2 boot EXT4 1 GiB Ядра linux
sda3 swap SWAP 8 GiB Раздел подкачки
sda4 root BTRFS ~230 GiB Система, данные

  • при использовании btfrs, если не разделить efi и boot на разные разделы, не получится настроить grub для автоматической загрузки последнего удачного входа, будет загружаться всегда пункт меню по умолчанию
  • а именно не будут работать эти параметры в файле /etc/default/grub:
    GRUB_DEFAULT=saved
    GRUB_SAVEDEFAULT=true

План разделов GPT для BIOS на SSD 240 GB


BIOS


  • если на компьютере нет поддержки efi или по какой-то причине вам нужна legacy загрузка

Раздел Название Формат Размер Назначение
sda1 bios BIOS 1 MiB Загрузочный bios
sda2 boot EXT4 1 GiB Ядра linux
sda3 swap SWAP 8 GiB Раздел подкачки
sda4 root BTRFS ~230 GiB Система, данные

Подготовка диска


В распоряжении имеются следующие утилиты для разбивки диска: cfdisk, fdisk, gdisk, sfdisk.


  • Будем использовать fdisk

fdisk /dev/sdX

  • где sdX ваш диск, в качестве примера везде будет sda

Разбивка для UEFI


Команда g — создание нового GPT раздела, старый раздел будет удален


Command (m for help): g


Created a new GPT disklabel (GUID: 73749F7E-1B28-874D-94AE-DED4CE70D269)


Команда n — создание раздела


  • раздел EFI (300M)
    Command (m for help): n
    Partition number (1-128, default 1):
    First sector (2048-500118158, default 2048):
    Last sector, ±sectors or ±size{K,M,G,T,P} (2048-500118158, default 500117503): +300M
    Created a new partition 1 of type 'Linux filesystem' and of size 300 MiB.


  • раздел BOOT (1G)
    Command (m for help): n
    Partition number (2-128, default 2):
    First sector (616448-500118158, default 616448):
    Last sector, ±sectors or ±size{K,M,G,T,P} (616448-500118158, default 500117503): +1G
    Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.


  • раздел SWAP (8G) размер выбираем равным оперативной памяти
    Command (m for help): n
    Partition number (3-128, default 3):
    First sector (2713600-500118158, default 2713600):
    Last sector, ±sectors or ±size{K,M,G,T,P} (2713600-500118158, default 500117503): +8G
    Created a new partition 1 of type 'Linux filesystem' and of size 8 GiB.


  • раздел ROOT (отдаем оставшееся место)
    Command (m for help): n
    Partition number (4-128, default 4):
    First sector (19490816-500118158, default 19490816):
    Last sector, ±sectors or ±size{K,M,G,T,P} (19490816-500118158, default 500117503): ):
    Created a new partition 1 of type 'Linux filesystem' and of size 229.2 GiB.



Команда t — задать тип раздела, если не задавать то по умолчанию тип 20 Linux filesystem


  • задаем тип EFI разделу
    Command (m for help): t
    Partition number (1-4, default 4): 1
    Partition type or alias (type L to list all): 1
    Changed type if partition 'Linux filesystem' to 'EFI filesystem'.


  • задаем тип SWAP разделу
    Command (m for help): t
    Partition number (1-4, default 4): 3
    Partition type or alias (type L to list all): 19
    Changed type if partition 'Linux filesystem' to 'Linux swap'.


  • остальные разделы не трогаем



Команда p — отобразить информацию о разделах


Disk /dev/sda: 238.47 GiB, 256060514304 bytes, 5001118192 sectors
Disk model: Apacer AS340 240GB     
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 73749F7E-1B28-874D-94AE-DED4CE70D269

Device         Start       End   Sectors   Size Type
/dev/sda1       2048    616447    614400   300M EFI System
/dev/sda2     616448   2713599   2097152     1G Linux filesystem
/dev/sda3    2713600  19490815  16777216     8G Linux swap
/dev/sda4   19490816 500117503 480626688 229.2G Linux filesystem

Команда w — сохранить таблицу разделов


The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Разбивка для BIOS


  • раздел BIOS (1M)
    Command (m for help): n
    Partition number (1-128, default 1):
    First sector (2048-500118158, default 2048):
    Last sector, ±sectors or ±size{K,M,G,T,P} (2048-500118158, default 500117503): +1M
    Created a new partition 1 of type 'Linux filesystem' and of size 1 MiB.


  • задаем тип BIOS разделу
    Command (m for help): t
    Partition number (1-4, default 4): 1
    Partition type or alias (type L to list all): 4
    Changed type if partition 'Linux filesystem' to 'BIOS boot'.


  • Первый раздел создается под BIOS вместо EFI, остальные разделы создаются подобно EFI разбивке


    Форматируем разделы


  • Форматируем efi



mkfs.fat -F32 /dev/sda1

  • в случае использования раздела bios форматировать sda1 не нужно


  • Форматируем boot



mkfs.ext4 -L boot /dev/sda2

  • Форматируем и включаем swap

mkswap -L swap /dev/sda3
swapon /dev/sda3

  • Форматируем root

mkfs.btrfs -L arch /dev/sda4 -f

Монтируем разделы


  • Создаем тома и подтома (subvolumes)

mount /dev/sda4 /mnt
btrfs su cr /mnt/@
btrfs su cr /mnt/@var
btrfs su cr /mnt/@home
btrfs su cr /mnt/@snapshots
umount /mnt

  • Монтируем разделы для BIOS и EFI

mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@ /dev/sda4 /mnt
mkdir -p /mnt/{home,boot,var,.snapshots}
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@var /dev/sda4 /mnt/var
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@home /dev/sda4 /mnt/home
mount -o noatime,compress=lzo,space_cache=v2,ssd,subvol=@snapshots /dev/sda4 /mnt/.snapshots
mount /dev/sda2 /mnt/boot

  • для загрузки BIOS этого достаточно


  • Для EFI загрузки добавляем следующее



mkdir /mnt/boot/efi
mount /dev/sda1 /mnt/boot/efi

Начальная настройка


  • Устанавливаем базовую часть системы для новых поколений ПК, самое новое ядро

pacstrap /mnt base base-devel linux linux-headers linux-firmware intel-ucode amd-ucode nano

  • Устанавливаем базовую часть системы для ядра с длительной поддержкой (lts)
  • Актуально для не очень новых ПК

pacstrap /mnt base base-devel linux-lts linux-lts-headers linux-firmware intel-ucode amd-ucode nano

  • Генерируем fstab

genfstab -pU /mnt >> /mnt/etc/fstab

  • Меняем корневой каталог на /mnt

arch-chroot /mnt

  • Задаем пароль root

passwd

  • Даем имя ПК

nano /etc/hostname

  • Настраиваем временную зону

ln -sf /usr/share/zoneinfo/Asia/Almaty /etc/localtime

  • Открываем файл с локалями

nano /etc/locale.gen

  • Раскомментируем в содержимом файла locale.gen

ru_RU.UTF8 UTF8
en_US.UTF8 UTF8

  • остальные локали на ваше усмотрение


  • Создаем локали



locale-gen

  • Настраиваем язык консоли, добавляем кириллицу

nano /etc/vconsole.conf

KEYMAP=ru
FONT=cyr-sun16

  • Устанавливаем язык системы по умолчанию

nano /etc/locale.conf

LANG="ru_RU.UTF-8"

  • Инициализируем пакетный менеджер pacman

pacman-key --init

  • Загружаем ключи

pacman-key --populate archlinux

  • Настраиваем pacman

nano /etc/pacman.conf

  • Раскомментируем в содержимом файла pacman.conf

[multilib]
Include = /etc/pacman.d.mirrorlist

  • Опционально можно включить следующие опции в секции # Misc options:
  • color — цветная подсветка pacman;
  • ParallelDownloads — количество параллельных загрузок, рекомендация не ниже 5;
  • ILoveCandy — можно добавить забавный прогрессбар загрузки пакетов в стиле игры Pacman 😀

Color
ParallelDownloads = 10
ILoveCandy

  • Обновляем, устанавливаем необходимое

pacman -Sy
pacman -S bash-completion openssh arch-install-scripts networkmanager git wget htop neofetch xdg-user-dirs pacman-contrib ntfs-3g

  • чтобы заработал bash-completion при использовании TAB, необходимо выйти из chroot (Ctrl+D) и войти снова arch-chroot /mnt


  • Создаем начальный загрузочный диск



mkinitcpio -p linux

  • … в случае lts ядра

mkinitcpio -p linux-lts

  • … или для всех ядер (P — заглавная)

mkinitcpio -P

  • Разрешаем пользователю применять права root

nano /etc/sudoers

  • Раскомментируем в содержимом файла sudoers

%wheel ALL=(ALL:ALL) ALL

  • Создаем пользователя

useradd -mg users -G wheel <<имя_пользователя>> 

  • где <<имя_пользователя>> непосредственно заданное имя, например user


  • Задаем пароль пользователю (рекомендуется отличный от пароля root)



passwd <<имя_пользователя>> 

  • Добавляем в загрузку сетевой менеджер

systemctl enable NetworkManager.service

  • Ставим загрузчик Grub для EFI

pacman -S grub efibootmgr grub-btrfs os-prober
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch
grub-mkconfig -o /boot/grub/grub.cfg

  • Ставим загрузчик Grub для BIOS

pacman -S grub grub-btrfs os-prober
grub-install /dev/sda
grub-mkconfig -o /boot/grub/grub.cfg

Установка графических драйверов


  • Графические драйвера Intel

pacman -S xf86-video-intel

#для виртуальной машины c процессором intel
pacman -S xf86-video-vesa

  • AMD

pacman -S lib32-mesa vulkan-radeon lib32-vulkan-radeon vulkan-icd-loader lib32-vulkan-icd-loader

  • NVIDIA

pacman -S nvidia-utils lib32-nvidia-utils nvidia-settings nvidia-dkms

Установка среды рабочего стола


KDE


pacman -S sddm dolphin kdeconnect konsole kwalletmanager kate plasma plasma-nm plasma-pa powerdevil gwenview okular

  • соглашаемся на установку всех дополнительных пакетов


  • Запуск службы загрузчика sddm



systemctl enable sddm

XFCE


pacman -S lxdm xfce4 xfce4-goodies ttf-liberation ttf-dejavu network-manager-applet ppp pulseaudio-alsa gvfs thunar-volman

  • Запуск службы загрузчика lxdm

systemctl enable lxdm

GNOME


pacman -S gdm gnome gnome-extra network-manager-applet 

  • Запуск службы загрузчика gdm

systemctl enable gdm

Финиш


  • Выходим с chroot Ctrl+D

#или по старинке
exit

  • Рекурсивно размонтируем /mnt

umount -R /mnt

  • Все настройки готовы, можно перегружаться

reboot

Дополнительно


Очень полезные дополнения


  • Пакетный менеджер yay для пользовательского репозитория AUR и ARCH

git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si

  • Имеет смысл отключить сборку отладочных пакетов, выключив !debug и !strip


    
    sudo sed -i.bak '/^OPTIONS=/s/strip/!strip/; /^OPTIONS=/s/debug/!debug/' /etc/makepkg.conf

  • Timeshift — система резервного копирования



sudo pacman -S timeshift

  • Скрипт автоматического резервного копирования при обновлениях

yay -S timeshift-autosnap

  • Контекстное меню для Dolphin Открыть от имени администратора

sudo pacman -S kio-admin

  • Автоматическая очистка кэша пакетов

sudo pacman -S pacman-contrib
sudo systemctl enable paccache.timer

Зеркала


Статья на wiki
Если возникают проблемы с доступом к репозиториям или/и хотим оптимизировать скорость доступа, то есть решение:


  • Делаем резервную копию /etc/pacman.d/mirrorlist, находим самые быстрые зеркала и сохраняем первые 6

sudo pacman -S pacman-contrib
sudo su

# при повторном ранжировании зеркал резевную копию делать не нужно, просто переходим к следующей команде
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

# команда может быть долгой, может показаться что терминал завис, просто ждите окончания
sudo rankmirrors -n 6 /etc/pacman.d/mirrorlist.bak > /etc/pacman.d/mirrorlist
exit

Еще из полезного


  • Firefox — известный браузер

sudo pacman -S firefox

  • Pamac — графическая оболочка для Pacman, AUR, Flatpak и Snap от разработчиков Manjaro

yay -S pamac-all

  • Onlyoffice — офис внешне похожий на Microsoft Office

yay -S onlyoffice-bin

  • Проверка орфографии (английская и русская)

sudo pacman -S aspell aspell-en aspell-ru

  • Шрифты от Microsoft

yay -S ttf-ms-fonts

  • Основной шрифт с дополнительными значками

yay -S ttf-hack-nerd

  • Шрифт для отображения иероглифического письма

sudo pacman -S noto-fonts-cjk

  • Bleachbit — очистка диска

sudo pacman -S bleachbit

  • Portproton — wine от Valve

yay -S portproton
Теги:
Хабы:
Всего голосов 20: ↑17 и ↓3+18
Комментарии64

Публикации

Истории

Ближайшие события

12 – 13 июля
Геймтон DatsDefense
Онлайн
14 июля
Фестиваль Selectel Day Off
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн