Arch linux UEFI установка

Самый простой вариант установки Arch Linux рассчитанный на загрузку из под UEFI

Машина:
CPU Intel i5
VGA Nvidia GTX 660M
RAM 8Gb
HDD 750Gb
Сеть WiFi

Подготовка

  1. Качаем дистр Arch linux Yandex mirror
  2. Заливаем на флешку:
    # dd if=archlinux-2018.05.01-x86_64.iso of=/dev/sdb
  3. Загружаем машину с флешки и по шагам:

1. Разбиваем хард на разделы:

# cfdisc /dev/sda

На выходе необходимо получить примерно следующую структуру с указанными типами Ф.С.:

Порядок Описание Раздел Размер Тип
1 ESP /dev/sda1 1Gib EFI System
2 / /dev/sda2 340GiB Linux Filesystem
3 /home /dev/sda3 340GiB Linux Filesystem
4 SWAP /dev/sda4 16GiB Linux Swap

Примечание: Раздел UEFISYS может быть любого размера, который поддерживается файловой системой FAT32. В соответствии с документацией пресловутой Microsoft, минимальный размер раздела с FAT32 - 512Мб. В соответствии с вышесказанным рекомендуется устанавливать размер UEFISYS раздела больше 512Мб. Мы сделаем его размером в 1Gb Подробнее здесь: ArchWiki UEFI (Русский)

2. Создаем Файловые системы на созданных разделах

UEFI раздел FAT32:

# mkfs.vfat -F32 -n "BOOT_FS" /dev/sda1

Корневой раздел EXT4:

# mkfs.ext4 -L "ROOT_FS" /dev/sda2

Домашний раздел EXT4:

# mkfs.ext4 -L "HOME_FS" /dev/sda3

Раздел подкачки: создаем его :

# mkswap -L "SWAP_FS" /dev/sda4

Подробнее здесь: ArchWiki Partitionig (Русский)

3. Монтируем Файловые системы

Примечание: Мы будем развертывать новую систему в директории /mnt

Монтируем корневой раздел в /mnt

# mount /dev/sda2 /mnt

Создаем директорию /boot и /home для загрузчика и домашнего раздела:

# mkdir /mnt/{boot,home}

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

# mount /dev/sda1 /mnt/boot

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

# mount /dev/sda3 /mnt/home

Монтируем раздел подкачки :

# swapon /dev/sda2

Все вышеописанное можно сделать используя метки которые мы задали при создании файловых систем:

# mount -L ROOT_FS /mnt
# mkdir /mnt/{boot,home}
# mount -L BOOT_FS /mnt/boot
# mount -L HOME_FS /mnt/home
# swapon -L SWAP_FS

4. Поднимаем сеть WiFi

Выбираем свою точку доступа и подрубаемся к ней <ИМЯ_ИНТЕРФЕЙСА> может быть например таким wlp0s21f0u7i2:

# wifi-menu <ИМЯ_ИНТЕРФЕЙСА>

Проверяем:

# ping ya.ru

Если сети нет, то выясняем имя беспроводного интерфейса:

# ip link

И поднимаем его принудительно:

# ip link set wlp0s21f0u7i2 up

5. Разворачиваем систему из репозитория

  1. В файле /etc/pacman.d/mirrorlist перемещаем адреса российский серверов в самый верх. Ну, или можно сделать как здесь: ArchWiki Mirrors (Русский)
  2. Выполняем скрипт инициализации системы, указав ему :
    # pacstrap /mnt base base-devel
  3. Для поддержки беспроводной сети на мой взгляд лучше использовать NetworkManager ArchWiki NetworkManager (Русский) т.к он прост в обращении и под него реально найти апплеты для гуевого рабочего стола. Итак укажем установщику дополнительно установить пакеты: networkmanager, dialog, wpa_supplicant:
# pacstrap /mnt networkmanager dialog wpa_supplicant

6. Делаем снимок точек монтирования в файл fstab

"Запечем" правила монтирования файловых систем в файл:

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

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

# arch-chroot /mnt

И обновляем данные пакетного менеджера и установленные утилиты:

# pacman -Suy

7. Устанавливаем UEFI менеджер загрузки

Установим systemd-boot - UEFI менеджер загрузки при помощи утилиты bootctl:

# bootctl install

8. Создадим загрузочную запись для UEFI менеджера загрузки

Необходимо поправить файл загрузчика: /boot/loader/loader.conf что бы он принял следующий вид:

timeout 4
default arch

где timeout 4 это время задержки, а default arch указывает загрузить систему основываясь на записи в файле /boot/loader/entries/arch.conf. Его содержание:

title ArchLinux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=/dev/sda3 rw

Кстати этот файл в арче копируется с шаблона:

# cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries

После можно проверить что наша запись с ArchLinux появилась:

# bootctl list

Необходимо так же на случай обновления systemd разместить следующий pacman hook в каталоге /etc/pacman.d/hooks/:

# /etc/pacman.d/hooks/systemd-boot.hook

[Trigger]
Type = Package
Operation = Upgrade
Target = systemd

[Action]
Description = Updating systemd-boot...
When = PostTransaction
Exec = /usr/bin/bootctl update

Подробнее про описанное выше здесь: ArchWiki systemd-boot (Русский)

9. Завершение установки

Теперь можно задать пароль для рута

# passwd

создать дополнительных пользователей и пр.

# useradd -m -g users -G audio,video,games,disk,storage,network,power,lp,wheel <ИМЯ_ПОЛЬЗОВАТЕЛЯ>
# passwd <ИМЯ_ПОЛЬЗОВАТЕЛЯ>

После этого выходим из окружения и перезагружаем систему

# exit
# reboot

Вытаскиваем флешку, меняем устройство загрузки и грузим новую систему.