Итак, одним прекрасным утром вы проснулись и решили, что вам нужно попробовать Arch. Вам нравиться всё настраивать под себя, избавляясь от лишнего мусора и вообще вы хотите досконально разобраться в Linux. Но главной проблемой подобных дистрибутивов является то, что нужно уметь с ними работать. Хотя бы установить. И если изучение самого Arch ложиться сугубо на плечи читателя, то с установкой мы сейчас и разберёмся.
Главное, что нужно знать - писать придётся много. Причём в этот страшный чёрно-белый терминал, в который вы хоть раз в жизни да заходили. С другой стороны, если всё делать по-инструкции и хоть немного разбираться в Linux - серьёзных проблем возникнуть не должно. Если же они всё-таки возникнут:
Сам богоподобный и великий Arch Wiki, а именно статья по установке Arch.
Видео, которое очень помогло мне разобраться в установке Arch Linux. Именно оно вдохновило меня на создание данной статьи, поэтому практически вся информация (за исключением некоторых редактирования и дополнений) взята именно оттуда. Пусть данная статья и не рассказывает обо всём в мельчайших деталях, но всю основную установку от А до Я мы здесь разберём. Заваривайте чай, читать придётся много.
archinstall - псевдографическая утилита для упрощённой установки. Если не хочется повторять всё нижеизложенное, то можно попробовать данный способ.
Содержание
Команды для Vim.
Скачивание образа.
Делаем интернет.
Разметка диска.
Установка ядра.
Точки монтирования для системы.
Смена корневого каталога.
Настройка времени.
Локализация.
Имя компьютера.
Настройка хоста.
Настройка аккаунтов.
Настройка Vim.
GRUB.
Финальная настройка системы.
Команды для 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).
Итак, после долгих душевных терзаний вы всё-же решили, какая таблица разделов вам больше всего подходит. Замечательно. Теперь по-порядку:
Создаём новый раздел с помощью команды
n
.Выбираем его номер.
Указываем начальный сектор (место на диске, где начинается раздел. Просто выбирайте тот, что даётся по-умолчанию).
Выбираем конечный раздел. По-умолчанию даётся конечный сектор (до конца диска), но приберегите этот простор для домашнего раздела, где будут все ваши сокровища. Для увеличения (или уменьшения) раздела совсем необязательно высчитывать номер сектора, а можно просто прибавить ГБ, например вот так:
+40G
. Так можно химичить с МБ, КБ - да хоть с ПБ, лишь бы места хватило. Размечаем по следующей схеме, которая зависит от того, что у нас стоит на материнской плате:
BIOS - swap-подкачка, корневой каталог
/
, домашний каталог/home
.UEFI - efi, swap, корневой каталог
/
, домашний каталог/home
.
А теперь немного разъяснений:
swap - как ОЗУ, только на жёстком диске. Рассчитываем размер по-формуле: ёмкость ОЗУ + 1 или 2 ГБ. Если ОЗУ =< 4 ГБ, то swap-раздел просто необходим
efi - раздел, на котором храниться сам EFI (необходим для запуска системы на UEFI). Ёмкость где-то 550 МБ минимум или 1 ГБ для большей уверенности.
Устанавливаем типы для наших разделов по команде
t
, затем номер нашего раздела и тип, который мы хотим ему присвоить. Список всех типов выводится по командеL
. Будет он огромным, но нужны нам лишь следующие типы разделов:
Linux swap - наш раздел подкачки.
Linux filesystem - сама файловая система формата ext4 (по-умолчанию все разделы имеют именно этот формат).
-
EFI System - раздел для EFI загрузчика.
Где какой раздел? Команда 'p' любезно покажет вашу новую разметку и ёмкость каждого раздела, поэтому ориентируйтесь на них. Всё готово? Тогда вводим 'w'. Эта команда запишет изменения и выйдет из утилиты. А снова набрав 'fdisk -l' вы увидите новую разметку и её типы. Всё устраивает? Тогда приступаем к их форматированию.
Разделы форматируем следующим образом:
EFI System
mkfs.fat -F32 /dev/sdxY
Swap
Тут мы не только форматируем, но и активируем раздел подкачки:
mk.swap /dev/sdxY
swapon /dev/sdxY
Linux filesystem
mkfs.ext4 /dev/sdxY
Когда всё отформатировано - время всё это примонтировать. Для начала примонтируем корневой раздел:
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.
# <file system> <dir> <type> <options> <dump> <pass>
# /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
А затем делаем установку значения аппаратных часов на основе значения системных. Кстати говоря, при использовании DualBoot с Windows этот параметр перезапишется самой Виндой, имейте это ввиду:
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, добавление приложений в автозапуск и в целом как сделать из системы минималистичную конфетку. Удачи в использовании)
Комментарии (49)
CrazyOpossum
05.04.2024 11:14+8В чём отличие статьи от того же Installation guide по первой ссылке? Без боли не получится, есть много нюансов - хотим ли дуалбут, efivars, тюнинг для ssd, шифрование диска и т.д. Это всё отражено по перекрёстным ссылкам на вики.
А затем делаем установку аппаратных часов как системных:
hwclock --systohcНаоборот, эта команда устанавливает hardware на основе system. И это сломается при дуалбуте, потому что винда потом опять перезапишет обратно.
И фундаментальный вопрос - зачем? Нет никакого смысла заманивать людей в арч потому что он простой, это просто не так. Лучше рассказать для кого он и чем отличается от разных убунт и дать ссылку на вики, имхо.
JosipUndr Автор
05.04.2024 11:14+1В чём отличие статьи от того же Installation guide по первой ссылке?
Моей целью было написать гайд краткий и понятный для непосвящённых, а вот чем они будут руководствоваться - решать им самим.
Наоборот, эта команда устанавливает hardware на основе system. И это сломается при дуалбуте, потому что винда потом опять перезапишет обратно.
А это мы учтём, спасибо.
Лучше рассказать для кого он и чем отличается от разных убунт и дать ссылку на вики, имхо.
Обзоров на то, чем Arch отличается от других дистрибутивов, более чем достаточно. Но чтобы его опробовать, нужно хотя-бы осилить его установку
malotchuev
05.04.2024 11:14+2Отличие в том, что в официальном руководстве нет ошибок))) А тут - почти через одну с ошибками. Если кто-то попытается ставить Арч по этой статье, то нифига у него не выйдет. То дефис потерялся, то точка лишняя...
JosipUndr Автор
05.04.2024 11:14Для этого есть комментарии. Пишите где, какие ошибки и как их исправить
maxp
05.04.2024 11:14+3Кстати, а нынче линуксы не модно на btrfs ставить? Или ext4 до сих пор рулит?
p.s.
не могу пройти мимо :)
Прочитайте это - https://tsya.ru/ ведь совсем не сложно запомнить...CrazyOpossum
05.04.2024 11:14+2Держал одно время на btrfs. После краша системы (не связано с btrfs), он перешёл в read-only без возможности восстановления - копируй, форматируй, начинай сначала. Больше btrfs я видеть не хочу.
V1tol
05.04.2024 11:14+1без возможности восстановления
перешёл в read-only
Противоречие прямо в соседних фразах. Если на вашей системе btrfs так ложится, то ext4 высыпется в невосстановимую кашу, а ещё хуже - будет незаметно портить файлы, пока не доберётся до важных системных файлов, что система ляжет прямо во время работы.
CrazyOpossum
05.04.2024 11:14+2В чём противоречие? Для меня "возможность восстановления" - это запустил chkdsk на ночь и забыл об инциденте. Копировать 200гб на носитель, заново делить диски, я не готов.
ext4 может и высыпется, но 11 лет без сбоев против 1.5 на btrfs
unreal_undead2
А не проще взять Manjaro?
werevolff
JosipUndr Автор
Только если хочешь Arch-подобную систему, работающую из коробки. Сам же Arch именно для тех, кто хочет всё настроить сам и с нуля
unreal_undead2
На мой взгляд основные особенности Arch - rolling release и разделение базовых пакетов и AUR. Если хочется по максимуму повозиться с потрохами системы и настройкой под себя - есть Gentoo.
CrazyOpossum
Я ещё лично не люблю в user-friendly дистрах, что после установки нужно тратить время на удаление/disable горы мусорных пакетов/сервисов.
ZillahGiovanni
Насчет мусора в арче:
Чтобы установить dig, приходится ставить целый bind пакет вместе с сервером.
Чтобы установить psql(клиент для postgresql), нужно ... угадайте что.
werevolff
Не знаю: несколько лет сидел на арче. Потом, перешëл на Manjaro. Arch - это, в большей степени, идея о том, что инструмент не должен диктовать свои правила. Manjaro нарушает эту концепцию, но я не скажу, что она прям-таки юзабельная. Скорее, привлекательная, как философия. Но, когда тебе нужна система с кучей софта для работы (включая коммуникацию), абсолютно бесполезная. Поскольку, хочешь, не хочешь, а софт, который требует поставить работодатель уже тебя контролиоует.
Поэтому, сейчас я вообще сижу на винде. Манджаро стоит второй системой.
V1tol
Manjaro это худший пример дистрибутива на базе арча. Лучше любой другой, а в идеале archinstall.
Breathe_the_pressure
На Манджаро много нареканий, типа они там косячили с сертификатами, были проблемы с АУР, у меня даже оно падало при перестановке ядра.
Но в целом,(у меня в использовании и Арч и Манджаро,) как Арч из коробки мне нормально. Доволен и тем и другим. А Эндевор мне не понравился например. Так что это вопрос вкуса.
А вот ханжи "I use Arch btw", над ними уже давно на Реддите ржут.
werevolff
Единственное, что не меняется - это отношение к пользователям Gentoo. Ты их уважаешь и считаешь психбольными одновременно.
feelamee
мне кажется "i use arch btw" уже давно стал мемом? если вообще не родился им
неужели кто-то это говорит всерьез
CrazyOpossum
Я говорю, так в лицензии велено.
feelamee
покажите, очень интересно
хочу сохранить
CrazyOpossum
feelamee
пх.. забавно
а это разве не установщик, кстати?))
CrazyOpossum
Это картинка в интернете :) Если помечтать, то такую форму можно было бы увидеть на странице скачки образа.
Wolfen113
Если чистый арч тяжко осилить. Тогда уж на худой конец лучше Arcolinux или EndeavourOS.
Манджара она как убунта ток от мира арча. Такой же кривой дистрибутив напичканный отсебятены его разработчиков. В свое время читая группы где люди часто делятся впечатлениями и проблемами в своих дистрибктивов. Постоянно ток и слышала потоки жалоб на манджару. И пару личных знакомых тоже об нее обожглись пытаясь в линукс через этот дистрибутив.
Katrovsky
Проще взять Archinstall, который идёт в комплекте с загрузочным образом.