Найти в Дзене

Установка Artix Linux с системой инициализации RunIt

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции, это некая инструкция по установке (в
основном для собственного пользования) Artix Linux с системой инициализации RunIt (условия таковы установка с использованием UEFI на файловую систему BTRFS) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Загружаемся с предварительно скаченного образа, тут небольшой нюанс выбираем либо From CD/DVD/ISO: Artix_x86_64 либо From Stick/HDD: Artix_x86_64. По сути разницы я не увидел(может быть из за виртуальной машины). Выбрал второй вариант. Обратите внимание, требуется логин (root или artix) пароль (artix), далее, что бы убедиться запуска в UEFI выполним до более знакомую команду: ls /sys/firmware/efi/efivars определимся с накопителем, выполнив команду lsblk у меня это /dev/vda, и переходим к разметке накопителя cfdisk /dev/vda так как в режиме UEFI то тип таблицы выбираем GPT для демонстрации вполне годятся так

Добрый день дорогой читатель, данное повествование не является
истиной в последней инстанции, это некая инструкция по установке (в
основном для собственного пользования) Artix Linux с системой инициализации RunIt (условия таковы установка с использованием UEFI на файловую систему BTRFS) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности.

Загружаемся с предварительно скаченного образа, тут небольшой нюанс выбираем либо From CD/DVD/ISO: Artix_x86_64 либо From Stick/HDD: Artix_x86_64. По сути разницы я не увидел(может быть из за виртуальной машины). Выбрал второй вариант.

Обратите внимание, требуется логин (root или artix) пароль (artix), далее, что бы убедиться запуска в UEFI выполним до более знакомую команду:

ls /sys/firmware/efi/efivars

определимся с накопителем, выполнив команду

lsblk

у меня это /dev/vda, и переходим к разметке накопителя

cfdisk /dev/vda
-2

так как в режиме UEFI то тип таблицы выбираем GPT

-3

для демонстрации вполне годятся такие объемы разделов, boot -128M root-30G, swap-1.9G, на железе стоит отнестись более ответственно к разметке.

-4

убедимся что накопитель размечен, выполнив команду

fdisk -l /dev/vda

отформатируем разделы в соответствующие файловые таблицы и активируем swap, выполнив следующую последовательность команд

mkfs.vfat -F32 /dev/vda1
mkfs.btrfs -f /dev/vda2
mkswap /dev/vda3
swapon /dev/vda3
-5

далее создадим subvolume на btrfs разделе иначе зачем нам btrfs

fdisk -l /dev/vda # для того что бы видеть разделы
mount /dev/vda2 /mnt
cd /mnt
btrfs su cr @
btrfs su cr @home
cd /
umount /mnt

и смонтируем все необходимое для установки

mount -o noatime,compress=zstd:6,space_cache=v2,discard=async,subvol=@ /dev/vda2 /mnt
mkdir /mnt/home
mount -o noatime,compress=zstd:6,space_cache=v2,discard=async,subvol=@home /dev/vda2 /mnt/home
mkdir -p /mnt/boot/efi
mount /dev/vda1 /mnt/boot/efi

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

lsblk
mount | grep vda
-6

Опционально. Но это ускорит процесс скачивания пакетов, в /etc/pacman.conf раскоментируем строку ParallelDownloads=5

nano /etc/pacman.conf
...
ParallelDownloads=5
...
-7

опционально, можно раскоментировать репозиторий 32-битных пакетов

...
[lib32]
include=/etc/pacman.d/mirrorlist
...
-8

далее определимся с ядрами linux, linux-lts или linux-zen следовательно пакеты:

  • linux - пакеты linux linux-headers
  • linux-lts - пакеты linux-lts linux-lts-headers
  • linux-zen - пакеты linux-zen linux-zen-headers

не забываем по linux-firmware, а так же про пакеты с микрокодами для процессоров:

  • amd-ucode - если процессор AMD
  • intel-ucode - если процессор Intel

далее

base, base-devel - базовые пакеты системы

btrfs-progs, e2fsprogs, f2fs-tools dosfstools - пакеты утилит файловых систем, они рекомендуются к установке, так как при формировании initramfs включен хук [fsck] если они не установлены будут warning'и и соответственно в образ не попадут.

runit, elogind-runit, dhcpcd-runit, chrony-runit - система инициализации и пакеты с механизмами управления одноименных процессов/демонов.

и за одно поставим все остальные важные (на мой взгляд) для установки пакеты

grub, efibootmgr, sudo, nano, elogind, dhcpcd, chrony - думаю о них нет смысла говорить что за пакеты, можно еще добавить например mc, htop и fastfetch. В итоге у нас получается такая команда

basestrap /mnt linux linux-headers linux-firmware base base-devel btrfs-progs e2fsprogs f2fs-tools dosfstools grub efibootmgr sudo nano elogind dhcpcd chrony runut elogind-runut dhcpcd-runut chrony-runut
-9

после установки всего необходимого (на мой взгляд) с генерируем fstab и перейдем в chroot выполнив эти команды

fstabgen -U /mnt >> /mnt/etc/fstab
cat /mnt/etc/fstab # для проверки fstab
artix-chroot /mnt
-10

проведем те же манипуляции с pacman.conf это для будущей системы

nano /etc/pacman.conf
...
ParallelDownloads=5
...
-11
...
[lib32]
include=/etc/pacman.d/mirrorlist
...

не забываем сохранять

-12

так как поставили sudo поправим конфиг

nano /etc/sudoers
...
%wheel ALL=(ALL:ALL) ALL
...

дадим права на использование sudo группе wheel так как будущий пользователь будет находится в ней

-13

настраиваем часовой пояс

ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
hwclock --systohc

раскоментируем локали в /etc/locale.gen

nano /etc/locale.gen
...
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
...
-14

генерируем локали

locale-gen

проверим /etc/hosts должен быть заполнен

nano /etc/hosts
-15

следующим содержимым

-16

Далее пропишем hostname

nano /etc/hostname

у меня например так Artix(RunIt) вы же назовите как вам удобно

-17

пропишем в /etc/locale.conf

nano /etc/locale.conf
...
LANG=ru_RU.UTF-8
...
-18
nano /etc/vconsole.conf
...
KEYMAP=ru
FONT=cyr-sun16
...
-19

далее добавим в автозапуск dhcp и chrony выполнив следующие команды:

ln -s /etc/runit/sv/dhcpcd /etc/runit/runsvdir/default/
ln -s /etc/runit/sv/chrony /etc/runit/runsvdir/default/

Важный нюанс в chroot для системы инициализации RunIt что бы добавить симлинк на автозапуск процесса/демона делается именно в директорию /etc/runit/runsvdir/default/ в рабочей системе используется путь /run/runit/service/ помните это.

-20

назначим пароль на root, создадим пользователя например john и добавим в группу wheel далее назначим пользователю пароль

passwd
useradd -mG wheel -s /bin/bash john
passwd john
-21

установка и конфигурация grub

lsblk # посмотреть диски выполнено для наглядности
grub-install /dev/vda
grub-mkconfig -o /boot/grub/grub.cfg

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

exit
umount -R /mnt
lsblk # выполнено для наглядности что разделы от монтированы
reboot
-22

после перезагрузки нас встречает grub

-23

на этом базовая часть установки закончена.

-24

ну и конечно же по традиции пару скринов с красивыми циферками

-25

За основу взята информация из ArtixWiki и ArchWiki, собственный опыт и наработки.

За сим откланиваюсь...