Skip to content

Instantly share code, notes, and snippets.

@ergolyam
Last active March 7, 2026 15:10
Show Gist options
  • Select an option

  • Save ergolyam/cba438fe66b010ec2d1c3e62c116e052 to your computer and use it in GitHub Desktop.

Select an option

Save ergolyam/cba438fe66b010ec2d1c3e62c116e052 to your computer and use it in GitHub Desktop.
Гайд по установке void linux на uefi

Установка void linux

Разметка

  • Загрузите образ Live и войдите в систему.

  • Создайте два раздела в cfdisk:

    • /dev/sdX1 - для efi 100M (Type: EFI System)
    • /dev/sdX2 - для root весь диск (Type: Linux filesystem)

Конфигурация зашифрованного тома

  • Зашифруйте root раздел с помощью luks1:

    cryptsetup luksFormat --type luks1 /dev/sdX2
  • После создания тома его необходимо открыть:

    cryptsetup luksOpen /dev/sdX2 void_demo
  • После открытия контейнера LUKS создайте группу томов LVM:

    vgcreate void_demo /dev/mapper/void_demo
    • Теперь должна появиться пустая группа томов с именем void_demo.
  • Необходимо создать логический том для группы томов:

    lvcreate --name root -l 100%FREE void_demo
  • Далее создайте файловые системы:

    mkfs.ext4 -L root /dev/void_demo/root
    mkfs.vfat /dev/sdX1

Установка системы

  • Настройте chroot и установите базовую систему:

    mount /dev/void_demo/root /mnt
    mkdir -p /mnt/boot/efi
    mount /dev/sdX1 /mnt/boot/efi
  • Скопируйте ключи RSA с установочного носителя в примонтированный root:

    mkdir -p /mnt/var/db/xbps/keys
    cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/
  • Выполните фактическую установку базовой системы:

    xbps-install -Sy \
    -R https://repo-default.voidlinux.org/current \
    -r /mnt \
    base-system \
    lvm2 \
    cryptsetup \
    grub-x86_64-efi

Конфигурация

  • Сгенерируйте файл fstab:

    xgenfstab /mnt > /mnt/etc/fstab
  • Войдите в chroot базовой системы:

    xchroot /mnt
  • Задайте базовые права на файловую систему:

    chown root:root /
    chmod 755 /
  • Установите пароль root и задайте hostname:

    passwd root
    echo void_demo > /etc/hostname
  • Сгенерируйте системный локали для glibc:

    echo "LANG=en_GB.UTF-8" > /etc/locale.conf
    echo "en_US.UTF-8 UTF-8" >> /etc/default/libc-locales
    echo "en_GB.UTF-8 UTF-8" >> /etc/default/libc-locales
    echo "ru_RU.UTF-8 UTF-8" >> /etc/default/libc-locales
    xbps-reconfigure -f glibc-locales
  • Настройте GRUB для разблокировки файловой системы:

    echo "GRUB_ENABLE_CRYPTODISK=y" >> /etc/default/grub
  • Настройте ядро для обнаружения зашифрованного устройства:

    VG=$(vgs --noheadings -o vg_name | xargs)
    UUID=$(blkid -o value -s UUID /dev/sdX2)
    sed -i "s|^GRUB_CMDLINE_LINUX_DEFAULT=\"|&rd.lvm.vg=${VG} rd.luks.uuid=${UUID} |" /etc/default/grub
  • Настройте автоматическую разблокировку зашифрованного тома при загрузке:

    dd bs=1 count=64 if=/dev/urandom of=/boot/volume.key
    cryptsetup luksAddKey /dev/sdX2 /boot/volume.key
    chmod 000 /boot/volume.key
    chmod -R g-rwx,o-rwx /boot
  • Добавьте этот файл в /etc/crypttab:

    echo "$(vgs --noheadings -o vg_name | xargs) /dev/sdX2 /boot/volume.key luks" >> /etc/crypttab
  • Включите этот ключ и crypttab в initramfs:

    echo 'install_items+=" /boot/volume.key /etc/crypttab "' > /etc/dracut.conf.d/10-crypt.conf

Полная установка системы

  • Установите загрузчик на диск:

    grub-install /dev/sdX
  • Переконфигурируйте все системные пакеты:

    xbps-reconfigure -fa
  • Выйдите из chroot отмонтируйте файловые системы и перезагрузите систему:

    exit
    umount -R /mnt
    reboot

Дополнительно: настройка wifi в livecd

  • Создайте файл конфигурации:

    wpa_passphrase "SSID" "passwd" > /etc/wpa_supplicant/wpa_supplicant-wifi_device.conf
  • Подключитесь к wifi:

    wpa_supplicant -B -i wifi_device -c /etc/wpa_supplicant/wpa_supplicant-wifi_device.conf
  • Получите ip и шлюз по dhcp:

    dhcpcd wifi_device

Дополнительно: конфигурация окружения

  • Скачайте необходимые компоненты:

    xbps-install -Sy \
    acpi tlp dbus chrony \
    elogind turnstile socklog-void \
    xdg-desktop-portal-gnome xdg-user-dirs xdg-utils gnome-keyring udisks2 \
    mesa-dri vulkan-loader \
    alsa-pipewire alsa-utils pipewire \
    fish-shell neovim tmux tree \
    curl wget git \
    podman flatpak \
    NetworkManager openbsd-netcat \
    fastfetch opendoas btop brightnessctl \
    terminus-font noto-fonts-emoji noto-fonts-ttf \
    tuigreet niri waybar fuzzel alacritty mako \
    swayidle swaybg swaylock \
    Thunar xfce-polkit pavucontrol
  • Выставите системный часовой пояс:

    echo 'HARDWARECLOCK="UTC"' > /etc/rc.conf
    echo 'TIMEZONE="Europe/Moscow"' >> /etc/rc.conf
    echo 'CGROUP_MODE=unified' >> /etc/rc.conf
  • Создайте сим линки на конфиги для pipewire и alsa:

    mkdir -p /etc/pipewire/pipewire.conf.d
    ln -s /usr/share/examples/wireplumber/10-wireplumber.conf /etc/pipewire/pipewire.conf.d/
    ln -s /usr/share/examples/pipewire/20-pipewire-pulse.conf /etc/pipewire/pipewire.conf.d/
    mkdir -p /etc/alsa/conf.d
    ln -s /usr/share/alsa/alsa.conf.d/50-pipewire.conf /etc/alsa/conf.d
    ln -s /usr/share/alsa/alsa.conf.d/99-pipewire-default.conf /etc/alsa/conf.d
  • Запретите turnstiled контролировать /run/user:

    sed -i 's/^\([[:space:]]*manage_rundir[[:space:]]*=[[:space:]]*\)yes[[:space:]]*$/\1no/' /etc/turnstile/turnstiled.conf
  • Сконфигурируйте tuigreet:

    sed -i "s/^command.*/command = \"tuigreet -r --power-shutdown 'doas shutdown -h now' --power-reboot 'doas shutdown -r now' --cmd 'dbus-run-session niri --session'\"/" /etc/greetd/config.toml
  • Активируйте необходимые сервисы:

    ln -s /etc/sv/chronyd /etc/runit/runsvdir/default
    ln -s /etc/sv/NetworkManager /etc/runit/runsvdir/default
    ln -s /etc/sv/dbus /etc/runit/runsvdir/default
    ln -s /etc/sv/tlp /etc/runit/runsvdir/default
    ln -s /etc/sv/turnstiled /etc/runit/runsvdir/default
    ln -s /etc/sv/polkitd /etc/runit/runsvdir/default
    ln -s /etc/sv/greetd /etc/runit/runsvdir/default
    ln -s /etc/sv/socklog-unix /etc/runit/runsvdir/default
    ln -s /etc/sv/nanoklogd /etc/runit/runsvdir/default
  • Создайте нового пользователя:

    useradd -m -G wheel,audio,video,storage,plugdev,network user
    passwd user
  • Сконфигурируйте doas:

    echo 'permit persist :wheel' > /etc/doas.conf
    echo 'permit nopass :video as root cmd shutdown' >> /etc/doas.conf

Дополнительно: конфигурация rootless

  • Обновите XDG каталоги:

    xdg-user-dirs-update
  • Включите тёмную тему и уберите кнопку закрыть:

    gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
    gsettings set org.gnome.desktop.wm.preferences button-layout ':'
  • Примените dotfiles:

    curl -Ls https://dub.sh/ergolyam | bash -s -- \
    --fish --niri --alacritty \
    --tmux --waybar --wlogout \
    --mako --fuzzel \
    --fonts --other
  • Установите тёмную adw тему для gtk3:

    wget -O /tmp/adw-gtk.tar.xz https://github.com/lassekongo83/adw-gtk3/releases/download/v6.4/adw-gtk3v6.4.tar.xz
    doas xbps-install -Sy xz
    mkdir -p ~/.local/share/themes
    tar xfv /tmp/adw-gtk.tar.xz -C ~/.local/share/themes
    gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment