Установка Arch Linux кратко и без боли

e4c44e7704f5211c060d36f95a3d92bf

Итак, одним прекрасным утром вы проснулись и решили, что вам нужно попробовать Arch. Вам нравиться всё настраивать под себя, избавляясь от лишнего мусора и вообще вы хотите досконально разобраться в Linux. Но главной проблемой подобных дистрибутивов является то, что нужно уметь с ними работать. Хотя-бы установить. И если изучение самого Arch ложиться сугубо на плечи читателя, то с установкой мы сейчас и разберёмся.
Главное, что нужно знать — писать придётся много. Причём в этот страшный чёрно-белый терминал, в который вы хоть раз в жизни да заходили. С другой стороны, если всё делать по-инструкции и хоть немного разбираться в Linux — серьёзных проблем возникнуть не должно. Если же они всё-таки возникнут:

  • Сам богоподобный и великий Arch Wiki, а именно статья по установке Arch.

  • Видео, которое очень помогло мне разобраться в установке Arch Linux. Именно оно вдохновило меня на создание данной статьи, поэтому практически вся информация (за исключением некоторых редактирования и дополнений) взята именно оттуда. Пусть данная статья и не рассказывает обо всём в мельчайших деталях, но всю основную установку от А до Я мы здесь разберём. Заваривайте чай, читать придётся много.

Содержание

  1. Команды для Vim.

  2. Скачивание образа.

  3. Делаем интернет.

  4. Разметка диска.

  5. Установка ядра.

  6. Точки монтирования для системы.

  7. Смена корневого каталога.

  8. Настройка времени.

  9. Локализация.

  10. Имя компьютера.

  11. Настройка хоста.

  12. Настройка аккаунтов.

  13. Настройка Vim.

  14. GRUB.

  15. Финальная настройка системы.

Команды для Vim

:q — выйти.
:q! — выйти без сохранения.
:w — сохранить.
i — режим ввода.
Esc — обычный режим.
x — удалить символ.
/ — поиск.

Скачивание образа

Первое испытание для того, чтобы скачать Arch — найти образ системы. Благо это очень простая задача: заходим сюда, качаем и делаем загрузочную флешку (Rufus для Windows, Ventoy для Linux — да хоть dd в терминале Linux — это тема для отдельной статьи и рассматривать мы её здесь не будем).

Делаем интернет

Для начала давайте посмотрим, как интернет доходит до компьютера. Если через кабель Ethernet, то всё должно подхватиться автоматически. А вот с Wi-Fi всё интереснее.
Запускаем утилитку iwctl:

iwctl

Если хотим посмотреть, что тут вообще и как, то выводим справку:

help

Но будем надеяться, что вам хватит той информации, что есть здесь. Итак, для начала посмотрим, чем вообще мы можем ловить Wi-Fi и как это устройство назвала система:

device list

Тут же мы можем увидеть его состояние (вкл\выкл). Если оно выключено, то исправляем это безобразие:


device [устройство] set-property Powered on
adapter [адаптер] set-property Powered on

Итак, всё включено, всё работает (по крайней мере надеемся на это). Теперь сканируем, выводим результаты и подключаемся к той сети, которая понравилась (и к которой у нас есть пароль). Ах да, SSID — это имя сети:

station [устройство] scan
station [устройство] get-networks
station [устройство] connect [SSID]

Итак, всё готово? А вот сейчас и узнаем. Вводим команду обнаружения сетевых устройств, а затем проверяем соединение с любым сайтом (я предпочитаю linux.org):


ip link
ping linux.org

Если мы видим следующее — то всё работает:

64 bytes from 104.26.15.72: icmp_seq=1 ttl=54 time=67.0 ms
64 bytes from 104.26.15.72: icmp_seq=2 ttl=54 time=67.6 ms
64 bytes from 104.26.15.72: icmp_seq=3 ttl=54 time=68.3 ms

Разметка диска

Начало положено. Теперь время сжечь мосты с предыдущей ОС на компе и сделать новую разметку диска. Для начала посмотрим, с чем мы вообще имеем дело:

fdisk -l

То, что мы видим — это наши диски. А теперь про то, как это вообще читать. Мы видим наши диски в формате '/dev/sdxY', где 'x' — это буква диска, а 'Y' — номер раздела. Нам понадобиться эта информация, чтобы не действовать наощупь. А увидим мы её в следующем формате:

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1            2048   6293503   6291456     3G 82 Linux swap / Solaris
/dev/sda2         6293504 111151103 104857600    50G 83 Linux
/dev/sda3       111151104 625142447 513991344 245.1G 83 Linux

Это, кстати говоря, разметка моего Arch, поэтому можете ориентироваться на неё (Но учтите, что у меня BIOS. Если у вас UEFI, то к разметке добавиться раздел EFI, но об этом чуть позже).

А теперь сама разметка. Переходим к диску, который мы хотим размечать (раздел не указываем):


fdisk /dev/sdx

Мы перешли в саму утилиту fdisk, поэтому команды теперь представляют из себя лишь одну букву. Чтобы увидеть их все, вводим m. Затем выбираем таблицу разделов и на этом моменте мы немного остановимся.

Таблица разделов — это то, где храниться информация о наших разделах и том, как мы разметили наш диск. Есть 2 вида — MBR (более старый) и GPT (более новый). Разница между ними есть и вот по каким критериям их выбрать:

  • Современные материнские платы с UEFI заточены именно на GPT, поэтому для них предпочтительно использовать именно его.

  • Некоторые UEFI вообще не поддерживают MBR.

  • На старых системах с BIOS GPT может просто не поддерживаться.

  • Если вы хотите раздел ёмкостью >= 2,2 ТБ, то ваш выбор GPT.

Но если вам нужна более подробная информация — тогда вам сюда. Саму же таблицу разделов можно выбрать командами g (GPT) или o (MBR).

Итак, после долгих душевных терзаний вы всё-же решили, какая таблица разделов вам больше всего подходит. Замечательно. Теперь по-порядку:

  1. Создаём новый раздел с помощью команды n.

  2. Выбираем его номер.

  3. Указываем начальный сектор (место на диске, где начинается раздел. Просто выбирайте тот, что даётся по-умолчанию).

  4. Выбираем конечный раздел. По-умолчанию даётся конечный сектор (до конца диска), но приберегите этот простор для домашнего раздела, где будут все ваши сокровища. Для увеличения (или уменьшения) раздела совсем необязательно высчитывать номер сектора, а можно просто прибавить ГБ, например вот так: +40G. Так можно химичить с МБ, КБ — да хоть с ПБ, лишь бы места хватило. Размечаем по следующей схеме, которая зависит от того, что у нас стоит на материнской плате:

  • BIOS — swap-подкачка, корневой каталог /, домашний каталог /home.

  • UEFI — efi, swap, корневой каталог /, домашний каталог /home.

А теперь немного разъяснений:

  • swap — как ОЗУ, только на жёстком диске. Рассчитываем размер по-формуле: ёмкость ОЗУ + 1 или 2 ГБ. Если ОЗУ =< 4 ГБ, то swap-раздел просто необходим

  • efi — раздел, на котором храниться сам EFI (необходим для запуска системы на UEFI). Ёмкость где-то 550 МБ минимум или 1 ГБ для большей уверенности.

  1. Устанавливаем типы для наших разделов по команде t, затем номер нашего раздела и тип, который мы хотим ему присвоить. Список всех типов выводится по команде L. Будет он огромным, но нужны нам лишь следующие типы разделов:

  • Linux swap — наш раздел подкачки.

  • Linux filesystem — сама файловая система формата ext4 (по-умолчанию все разделы имеют именно этот формат).

  • EFI System — раздел для EFI загрузчика.

    Где какой раздел? Команда 'p' любезно покажет вашу новую разметку и ёмкость каждого раздела, поэтому ориентируйтесь на них. Всё готово? Тогда вводим 'w'. Эта команда запишет изменения и выйдет из утилиты. А снова набрав 'fdisk -l' вы увидите новую разметку и её типы. Всё устраивает? Тогда приступаем к их форматированию.

  1. Разделы форматируем следующим образом:

EFI System

mkfs.fat -F32 /dev/sdxY

Swap

Тут мы не только форматируем, но и активируем раздел подкачки:

mk.swap /dev/sdxY
swapon /dev/sdxY

Linux filesystem

mkfs.ext4 /dev/sdxY

  1. Когда всё отформатировано — время всё это примонтировать. Для начала примонтируем корневой раздел:


mount /dev/sdxY /mnt

Затем создадим пару директорий (home для домашнего раздела, efi для загрузчика UEFI):


mkdir /mnt/home /mnt/efi

Монтируем их:


mount /dev/sdxY /mnt/home
mount /dev/sdxY /mnt/efi

Установка ядра

В корневой раздел устанавливаем само ядро и парочку приблуд:


pacstrap /mnt base linux linux-firmware

А теперь по-порядку:

  • base — основной инструментарий (cat, ls, cd и прочее).

  • linux — само ядро. Их есть несколько видов, можно установить любое другое, но будем честны — нам главное, чтобы система просто работала, а значит стандартного ядра нам за глаза хватит.

  • linux-firmware — основной пакет драйверов. Есть ещё и дополнительный, но этого вам должно хватить. Если у вас, конечно, не имеется какого-то непонятного самописного устройства сумрачного китайского гения, о существовании которого знают 3 китайца и вы сами. В таком случае поиск драйверов вообще может не иметь успеха.

Точки монтирования для системы

Следующий пункт нам нужен, чтобы система знала, какие разделы есть в её распоряжении и откуда её извлекать информацию о запуске. Делается всё это одной командой:

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

В этот файл должны записаться все разделы, что мы делали. Но нужно проверить,
всё ли записалось. Для этого вводим следующее:


vim /mnt/etc/fstab

Если файл выглядит примерно так — значит всё сделано правильно:

# Static information about the filesystems.
# See fstab(5) for details.

#      
# /dev/sda2
UUID=f5fbd0f9-47cf-4074-bf76-506d4c2d7b23   /           ext4        rw,           relatime  0 1

# /dev/sda3
UUID=1f821695-d86d-4c56-a6c6-4ca4548132d1   /home       ext4        rw,           relatime  0 2

# /dev/sda1
UUID=5a4f68f4-9bd7-4f54-8b93-12faad1d0bf4   none        swap

Смена корневого каталога

Входим в нашу свежеустановленную систему, дабы навести там порядок:

arch chroot /mnt

А вот для работы с текстовыми файлами нужно установить Vim:

pacman -S vim

Настройка времени

Если нам нужны часы (а нам нужны часы), то нам необходимо настроить время. Для начала делаем синхронизацию с сервером NTP:

timedatectl set-ntp true

Теперь устанавливаем часовой пояс и проверяем. Регион и город берём свой:

timedatectl set-timezone Europe/Kiev
timedatectl status

Теперь создаём симлинк (ярлык) часового пояса и проверяем:

ln - sf /usr/share/zoneinfo/Europe/Kiev /etc/localtime
ls /usr/share/zoneinfo

А затем делаем установку аппаратных часов как системных:

hwclock --systohc

Локализация

Тут нам уже придётся копаться в конфигах, но не переживайте — вы будете часто это делать в Arch, поэтому привыкните. Сначала заходим в файл локализации:

vim /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

Имя компьютера

Один из самых простых пунктов. Заходим с помощью Vim по адресу /etc/hostname, вписываем имя своего компьютера (1 слово латинницей) и выходим.

Настройка хоста

Всё делаем в Vim. Заходим по адресу /etc/hosts и вписываем следующее:

127.0.0.1    localhost
::1          localhost
127.0.1.1    [имя_компьютера].localdomain    [имя_компьютера]

Настройка аккаунтов

Для начала сделаем пароль для пользователя root: вводим passwd и затем задаём пароль. Использовать его мы будем редко, поэтому лучше сделать его посложнее.

Потом мы создаём аккаунт обычного пользователя, с которого и будем сидеть 99% времени. Для этого создаём аккаунт, задаём ему пароль, даём права для нормального пользования системой и смотрим, какие права мы ему дали:

useradd -m [username]
passwd [username]
usermod -aG wheel,audio,video,optical,storage [username]
userdbctl groups-of-user [username]

Затем мы устанавливаем sudo. Да-да, по-умолчанию его здесь нет:

pacman -S sudo

Настройка Vim

Потом мы химичим с Vim. Сначала мы делаем его редактором по-умолчанию (да, это вводим просто в терминал):

EDITIOR=vim

Затем вводим visudo и в открывшемся файле для того. чтобы мы могли с обычного аккаунта запускать команды, раскомментируем следующую строчку:

%wheel ALL=(ALL) ALL

GRUB

В качестве загрузчика будем использовать GRUB. Для этого его сначала нужно установить:

pacman -S grub

Для UEFI также необходимо установить efibootmgr, подробности здесь и здесь.

Если мы хотим DualBoot с Windows, то в файле /etc/default/grub в первом абзаце прямо под строкой GRUB_CMDLINE_LINUX="" вписываем следующее:

GRUB_DISABLE_OS_PROBER=false

Если у нас UEFI, тогда нам нужно также сделать в каталоге /boot следующий каталог и смонтировать в него раздел EFI:

mkdir /boot/EFI
mount /dev/sdxY /boot/EFI

Замечательно, а теперь нам нужно произвести установку GRUB (указываем именно диск, а не раздел!) и сделать конфиг для нормальной загрузки (без него будет сложно, поверьте мне):

grub install --target=x86_64-efi --bootloader-id=grub_uefi --recheck /dev/sdx
grub-mkconfig -o /boot/grub/grub.cfg

А теперь подробнее о параметрах, что мы указывали в grub-install:

  • --target — версия загрузчика: i386-pc для BIOS, x86-64-efi для UEFI.

  • --bootloader-id — имя для загрузочной записи GRUB, актуально для UEFI.

  • --recheck — проверка установки.

Финальная настройка системы

Для того, чтобы у нас работал интернет, нужно скачать пару утилит:

sudo pacman -S dhcpcd iwd

  • dhcpcd — для интернета в целом.

  • iwd — для беспроводного соединения (именно с помощью этой утилиты мы подключались к интернету в начале).

Затем мы выходим из учётной записи и перезагружаем компьютер, загружая уже установленную систему:

exit
reboot

После перезагрузки логинимся как обычный (не root) пользователь и начинаем финальную настройку нашего Arch. Для того, чтобы нам сделать интернет вводим следующее (первая строчка нужна лишь при Wi-Fi подключении):

iwctl --passphrase [пароль] station [device] connect [SSID]
sudo systemctl enable dhcpcd

Далее мы химичим с репозиториями pacman:

sudo vim /etc/pacman/pacman.conf

Здесь мы ищем следующую строку и раскомментируем её:

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

Далее мы делаем обновление всех пакетов и репозиториев:

sudo pacman -Syu

Если же вам выбило ошибку — просто перезагрузите систему ещё раз и заново подключитесь к интернету.

После нам нужно установить мелочи — графическую оболочку. Этот пункт необязателен, если вам нужно не более, чем работа в терминале без графических приложениздесьй, но всё же 99% графическая оболочка понадобиться. Я же буду использовать X11 как основу и i3 как оконный менеджер. Вы же вольны выбирать любые другие альтернативы, ибо данный пункт максимально свободен в своей реализации.
Для начала установим сам Xorg и i3:

sudo pacman -S xorg xorg-xinit xorg-server
sudo pacman -S i3

Затем установим эмулятор терминала на свой вкус, лично я предпочитаю Alacritty. Ах-да, и красивые шрифты тоже не помешают, хотя их вы вообще можете не устанавливать, это чистая вкусовщина:

sudo pacman -S alacritty ttf-jetbrains-mono

Что же дальше? А дальше мы добавляем i3 в автозапуск startx:

echo "exec i3" >> .xinitrc

Всё. Вводим startx, настраиваем клавишу Mod, терминал открываем на Mod+Enter.
Поздравляю, вы установили Arch Linux. Теперь у вас есть система, которую вы контролируете от и до (ну не совсем, но до этого вам ещё нужно дойти). Если же эта статья найдёт своего читателя, то я напишу про настройку i3, Alacritty, добавление приложений в автозапуск и в целом как сделать из системы минималистичную конфетку. Удачи в использовании)

© Habrahabr.ru