Pull to refresh

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

Level of difficultyMedium

Дисклеймер!

Если вы типичный юзер 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.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.