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

Как установить ARCH LINUX на UEFI BIOS

Уровень сложностиСредний

Дисклеймер!

Если вы типичный юзер Ubuntu который не может даже комманду в терминал правильно ввести. То не суйтесь в Arch Linux! Это сложный дистрибутив который можно практически полностью настроить под себя, но также можно и случайно сломать. Поэтому дважды подумайте перед установкой Arch'a как основную систему.

Этап 1. Скачивание образа и создание загрузочной флешки

Образ можно скачать тут. После скачивания образа нужно создать загрузочную флешку. Есть несколько самых лучших вариантов:

1. Подойдет если у вас сейчас стоит Windows: Rufus.

2. Подойдет и для Windows и для Linux: Etcher .

3. Также можно сделать из флешки мульти загрузочную блогадаря: Ventoy.

Я рекомендую 3 вариант т.к все что нужно будет сделать для загрузки в LiveCD образ, это просто скинуть ISO файл на флешку. После того как вы создали загрузочную флешку, грузимся в LiveCD Arch Linux'а.

Этап 2. Подключаемся к интернету

Если у вас не WIFI этот этап можно пропустить т.к Ethernet кабель работает из коробки

Запускаем утилиту iwctl для подключение к сети:

$ iwctl

Выводим список WIFI адаптеров, выбираем свой:

$ [iwd]# device list

Выполняем сканирование сетей:

$ [iwd]# station ваш_wifi_адаптер scan

Выводим отсканированные сети:

$ [iwd]# station ваш_wifi_адаптер get-networks

Выбираем свою сеть и подключаемся:

$ [iwd]# station ваш_wifi_адаптер connect ваш_essid(имя сети)

Если у вашей сети есть пароль, то тулза попросит его ввести.

Этап 3. Создание разделов на диске

Если у вас несколько дисков вводим:

$ lsblk

Выбираем нужный, у меня это /dev/sda, теперь запускаем программу для разметки диска (указывая свой диск):

$ cfdisck /dev/sda

Программа очень простая, Delete - удаляет раздел, New - создает, Write - записывает изменения, Quit - выходит из программы. Создаем два раздела и запоминаем их имя:

Имя: /dev/sda1 Тип: Linux filesystem Размер: от 20GB - Это наш корневой раздел

Имя: /dev/sda2 Тип: EFI System Размер: от 500MB, лучше 1000MB - Это наш загрузочный раздел

Сохраняем изменения (Write) и выходим из программы (Quit).

Также стоит заметить что далее в гайде я буду использовать именно /dev/sda у вас это может быть допустим /dev/sdb, ещё стоит заметить что в гайде используется моя размтека где /dev/sda1 - корень, a /dev/sda2 загрузочный раздел. Это все - стоит учитывать.

Этап 4. Форматирование разделов

Здесь все просто. Для форматирования будем использовать mkfs.
Для начало форматируем корень (я рекомендую все таки использовать ext4, по моему мнению с ним меньше проблем, этот гайд рассчитан именно на ext4) Форматируем /dev/sda1 в ext4:

$ mkfs.ext4 /dev/sda1

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

$ mkfs.fat -F32 /dev/sda2

Этап 5. Монтируем разделы и устанавливаем базовую систему.

Для начало нужно смонтировать корневой раздел в /mnt:

$ mount /dev/sda1 /mnt

Теперь устанавливаем базовую систему и micro (более минималистичный аналог редактора текста nano) в наш смантированный раздел:

$ pacstrap -i /mnt base linux linux-firmware micro

Теперь последний этап перед настройкой базовой системы: генерируем файл fstab в наш смантированный корневой раздел:

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

После всего этого мы наконец можем переходить к настройке системы удаленно через chroot.

Этап 6. Chroot: базовые настройки

Для начала входим в сам Chroot:

$ arch-chroot /mnt /bin/bash

Открываем файл /etc/locale.gen в котором нам нужно откаментировать локали для нашей системы:

$ micro /etc/locale.gen

Теперь через CTRL+F ищем нужные нам локали и убираем # (для раскоментирования), мне нужна только русская локаль (английская локаль обязательна для всех):

#en_US.UTF-8 UTF-8

#ru_RU.UTF-8 UTF-8

Сохраняем (CTRL + S) и закрываем (CTRL + Q) файл. Теперь генерируем наши новые локали:

$ locale-gen

Устанавливаем локаль (язык) нашей будущей системе, я устанавливаю русскую:

$ echo "LANG=ru_RU.UTF-8" > /etc/locale.conf

Теперь устанавливаем время, сначало нужно установить TimeZone'у. Посмотреть нужный индификатор TimeZone'ы можно тут, я установливаю Москву:

$ ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Теперь можно установить новое время:

$ hwclock --systohc --utc

Теперь нужно установить имя компьютера (HostName), у меня это vivobox:

$ echo "vivobox" > /etc/hostname

И последнее что мы сделаем в этом этапе это настроим файл /etc/hosts:
$ micro /etc/hosts

В файле прописываем следущее (вместо vivobox ваш HostName):

127.0.0.1 localhost

::1 localhost

127.0.1.1 vivobox.localdomain vivobox

Сохраняем (CTRL + S) и закрываем (CTRL + Q) файл.

Этап 7. Chroot: настройка пользователя, групп для пользователя, doas и sudo

Для начало задодим пароль пользователю root (пароль нужно ввести два раза, и он не будет отоброжаться для безопасности):

$ passwd

Создаем пользователя, я буду использовать свой ник: mrfufl4ik:

$ useradd -m mrfufli4k

Устанавливаем пользователю группы, если хотите узнать больше читайте это:

$ usermod -aG wheel,audio,video,storage mrfufl4ik

И последнее создаем пользователю пароль (пароль нужно ввести два раза, и он не будет отоброжаться для безопасности):

$ passwd mrfufl4ik

Использование sudo:

Сначало установим sudo:

$ pacman -Sy sudo

Теперь включим sudo для пользователей группы wheel:

$ EDITOR=micro visudo

У вас откроется файл, где нужно найти и раскоментировать (убрать #):

#%wheel ALL=(ALL) ALL

Сохраняем (CTRL + S) и закрываем (CTRL + Q) файл.

Использование аналога sudo - doas:

Я не рекомендую использовать doas новичкам. Да doas минималистичнее и выполняет только одну самую важную функцию: дает временный доступ к root. А sudo выполяет ещё кучу других не сильно полезных для dekstop'ного линукса функций. Но все же могут быть проблемы с совместимостью, плюсом ко всему практически во всех гайдах используется sudo.

Сначало установим сам doas:

$ pacman -Sy opendoas

Открываем файл /etc/doas.conf:

$ micro /etc/doas.conf

Прописываем:

permit persist :wheel

Это даст возможность использовать группе wheel: doas. Сохраняем (CTRL + S) и закрываем (CTRL + Q) файл.

Этап 8. Chroot: установка Network Manager:

Если у вас Ethernet то вроде как все должно завестить без каких либо программ. Поэтому можете пропустить этот этап.

Устанавливаем Newtork Manager:

$ pacman -S networkmanager

Включаем службу Network Manager'а:

$ systemctl enable NetworkManager

Этап 9. Chroot: установка загрузчика GRUB

Устанавливаем сам grub и efibootmgr:

$ pacman -S grub efibootmgr

Создаем папку для монтирования и монтируем загрузочный раздел:

$ mkdir /boot/efi

$ mount /dev/sda2 /boot/efi

И самое главное устанавливаем grub на смонтированный загрузочный раздел и конфигурируем его:

$ grub-install --target=x86_64-efi --bootloader-id=GRUB --efi-directory=/boot/efi --removable

$ grub-mkconfig -o /boot/grub/grub.cfg

Этап 9.5. Перезагрузка

Выходим из chroot:

$ exit

Отмантируем корневой и загрузочный раздел:

$ umount -R /mnt

И очивидно перезагружаемся:

$ reboot

Флешку уже можно извлечь, и если вы все сделали правильно вы попадете в Grub. С которого можно запустить вашу новую систему.

Этап 10. Swap File

В загруженной системе входим в пользователя root. После чего создаем Swap файл, я выделил ему 8GB:

$ fallocate -l 8G /swapfile

Устанавливаем на файл нужные права:

$ chmod 600 /swapfile

Включаем Swap режим для файла:

$ mkswap /swapfile

$ swapon /swapfile

И прописываем авто загрузку swap'а в fstab файл:

$ echo "/swapfile none swap sw 0 0" >> /etc/fstab

Можем выходить из root'а и логиниться в своего пользователя:

$ exit

Этап 11. Подключение к WIFI через NMCLI

Сначало получаем список сетей:

$ nmcli device wifi list

Подключаемся к своей сети:

$ nmcli device wifi connect ваш_essid(имя сети) password "ваш_пароль"

Для того чтобы отключиться от текущей сети:

$ nmcli device disconnect

Этап 12. Заключение

Система установленна и готова к установки DE (графического окружения). Теперь вы смело можете выходить на улицу кричать: I USE ARHC BTW.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.