Добавить в корзинуПозвонить
Найти в Дзене

Установка Void Linux часть 1: UEFI btrfs glibc

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по установке (в основном для собственного пользования) Void Linux с библиотекой glibc (условия таковы: установка на чистый накопитель с использованием UEFI и файловой системы BTRFS) с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Я не буду рассматривать скрипт для автоматической установки, это не имеет ни какого смысла. Приступим, грузимся с предварительно подготовленной флешки(тут уже не ваше усмотрение я обычно использую ventoy), для проверки верно ли загрузились, надо воспользоваться командой: ls /sys/firmware/efi/efivars выхлоп данной команды на скрине ниже. Определимся с диском на который будем устанавливать Void Linux, используем следующую команду, я буду часто использовать ее для наглядности. lsblk в данном случае у меня один накопитель, так как это виртуальная машина, перейдем к подготовке накопителя для установки с п

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

Я не буду рассматривать скрипт для автоматической установки, это не имеет ни какого смысла.

Приступим, грузимся с предварительно подготовленной флешки(тут уже не ваше усмотрение я обычно использую ventoy), для проверки верно ли загрузились, надо воспользоваться командой:

ls /sys/firmware/efi/efivars

выхлоп данной команды на скрине ниже. Определимся с диском на который будем устанавливать Void Linux, используем следующую команду, я буду часто использовать ее для наглядности.

lsblk

в данном случае у меня один накопитель, так как это виртуальная машина, перейдем к подготовке накопителя для установки с помощью следующей команды:

cfdisk /dev/vda

выбираем структуру разделов GPT, далее создадим три раздела

-2
  • /dev/vda1 - boot-раздел для установки загрузчика. Достаточно 128Мб
  • /dev/vda2 - root-раздел для установки самой системы, займет большую часть накопителя
  • /dev/vda3 - swap-раздел, в данном случае он чисто для формальности. Опять же на реальном железе стоит продумать размер swap исходя из объемов оперативной памяти.
-3
lsblk

переходим к форматированию разделов boot в fat32, root в btrfs

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

переходим к монтированию только что отформатированных разделов. Включаем swap

swapon /dev/vda3

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

mount /dev/vda2 /mnt

переходим в него и создаем подразделы (subvolume)

cd /mnt
btrfs su cr @
btrfs su cr @home

после выше выполненных команд переходим в корень загруженной системы и размонтируем /mnt

cd /
umount /mnt

для дальнейшего монтирования подразделов корня(@) и home (@home) будущей системы, выполняем следующие команды. Монтируем корень системы

mount -o noatime,compress=zstd:6,space_cache=v2,discard=async,subvol=@ /dev/vda2 /mnt

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

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

так же создадим директорию /mnt/boot/efi для монтирования boot раздела

mkdir -p /mnt/boot/efi
mount /dev/vda1 /mnt/boot/efi

выполним следующую команду (для наглядности) что бы увидеть точки монтирования

lsblk
-5

Для указания репозитория и архитектуры для удобства воспользуемся переменными REPO и ARCH они нам потребуются для установки базового метапакета системы

REPO=https://repo-default.voidlinux.org/current
ARCH=x86_64

создадим директорию и скопируем ключи, выполнив следующие команды

mkdir -p /mnt/var/db/xbps/keys
cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/

теперь самое время заняться установкой базового метапакета системы

XBPS_ARCH=$ARCH xbps-install -S -r /mnt -R "$REPO" base-system

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

  • XBPS_ARCH=$ARCH данная конструкция говорит xbps что надо явно использовать ахитектуру из переменной $ARCH то есть x86_64
  • -S --sync Синхронизирует файлы индекса удаленного репозитория
  • -r --rootdir сообщаем xbps что корень системы /mnt
  • -R --repository сообщаем xbps использовать репозиторий из переменной $REPO то есть https://repo-default.voidlinux.org/current

Вероятно теперь более или менее понятно

-6

После переходим в chroot с помощью команды ниже

xchroot /mnt /bin/bash

Опционально, я предпочитаю текстовый редактор nano, далее /etc/hostname пишем имя машины, например VoidLinux

xbps-install -S nano
-7
nano /etc/hostname
-8

создадим симлинк на часовой пояс, мой Europe/Moscow вы же указывайте свой

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

правим следующий конфиг, раскоментируем пару локалей

nano /etc/default/libc-locales
...
en_US.UTF-8 UTF-8
ru_RU.UTF-8 UTF-8
...
-9

генерируем локали следующей командой

xbps-reconfigure -f glibc-locales
-10

раскомментируем следующие параметры и исправим их значения в /etc/rc.conf

nano /etc/rc.conf
...
keymap="ru"
font="cyr-sun16"
...
-11

Это позволит использовать в консоли кириллицу, переключения языков shift+ctrl

исправим в /etc/locale.conf параметр LANG

nano /etc/locale.conf
-12
...
LANG="ru_RU.UTF-8"
...
-13

Устанавливаем пароль для root

passwd

Заполним файл /etc/fstab точками монтирования методом копирования /proc/mounts в нем содержится все что смонтировано на текущий момент

cp /proc/mounts /etc/fstab
-14

Далее приведем в порядок /etc/fstab, закомментировав или удалив лишнее точки монтирования

nano /etc/fstab

так же рекомендуется добавить в /etc/fstab точку монтирования директории для временных файлов в оперативную память.

...
tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
...
-15

Небольшой нюанс. Так как используем UEFI то для установки grub используем пакет grub-x86_64-efi

xbps-install grub-x86_64-efi
-16

далее установка и конфигурирование grub

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

если заметили grub-install указывается без устройства, прекрасно сам находит куда ему установится.

далее запускаем утилиту из пакета XBPS для настройки установленных пакетов, за одно сгенерирует initramfs

xbps-reconfigure -fa
-17

для синхронизации времени с ntp серверами используем chrony

xbps-install -S chrony
-18

Так как dhcpcd входит в метапакет системы, для автоматического запуска процесса(демона) надо создать симлинк, аналогично и для chronyd

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

Нюанс. Так как в режиме chroot то симлинки на демоны делаются именно в директорию /etc/runit/runsvdir/default/ На загруженом Void Linux работаем исключительно с /var/service/

Далее создаем пользователя например john, добавляя в группу wheel, задаем пароль и в /etc/sudoers разрешаем группе wheel использовать sudo

useradd -G wheel -s /bin/bash john
passwd john
nano /etc/sudoers
-19

раскомментировав строку в /etc/sudoers

...
%wheel ALL=(ALL:ALL) ALL
...
-20

в завершении процесса установки Void Linux выходим из chroot, размонтируем все что примонтировано и перезагружаем машину

exit
umount -R /mnt
reboot
-21

Если все действия выполнены верно то система запустится без проблем

-22

А теперь давайте что нибудь установим

-23

У чистого Void'а достаточно скромный аппетит, вспоминая только что установленный чистый Arch с systemd потребление оперативной памяти было чуть больше на 20-50Мб, но не будем считать миллиметры.

-24

ну и конечно же neofetch

-25

В заключение могу сказать, Void Linux использует модель развивающегося выпуска (Rolling Release) то бишь пользователи всегда получают последние обновления, не дожидаясь крупных релизов дистрибутива. Это обеспечивает более актуальную и безопасную среду. Void использует runit вместо традиционных systemd, что делает систему более легковесной и быстрой в загрузке. Это также позволяет пользователям избежать некоторой сложности, связанной с systemd. Void применяет собственную систему управления пакетами, называемую xbps, которая отличается высоким уровнем производительности и простотой. Она поддерживает бинарные пакеты и позволяет делать обновления и установки быстро и эффективно. Void Linux предлагает возможность выбора между двумя библиотеками C: Musl и Glibc. Это позволяет пользователям оптимизировать свою систему для специфических задач и архитектур. Подводя итог данный дистрибутив имеет не малый порог вхождения (примерно как у Arch), можно рекомендовать более опытным пользователям.

За основу взято Void Linux Handbook, так же несколько инструкций от других пользователей и переписаны под себя.

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