How to Install Void Linux (2026 Guide)

✅ Verified against the official Void Linux Handbook (docs.voidlinux.org) — Last updated: September 2026
Void Linux is one of the few major distros built from scratch — not a derivative of Debian, Arch or Fedora. It uses its own package manager (XBPS) and runit instead of systemd for init and service management. That combination makes it faster to boot and lighter on resources than most systemd-based distros, at the cost of a rolling-release install that assumes you're comfortable with a manual, TUI-driven installer — there's no graphical Calamares-style install here.
- glibc vs musl — Which Variant Should You Choose?
- Hardware Requirements (Official)
- Step 1 — Download the Void Linux Live Image
- Step 2 — Create a Bootable USB Drive
- Step 3 — Boot and Launch void-installer
- Step 4 — Walk Through the Installer
- Step 5 — First Boot and Updating the System
- Managing Services: runit, Not systemd
- Disk Encryption — Not Built Into the Installer
- Alternative Method: Manual Bootstrap Install (For Arch Users)
- Troubleshooting
- xbps-install fails with an RSA signature verification error
- Repository sync fails with "Operation not permitted"
- xbps-install reports a 404 fetching repodata
- Something broke after a partial or interrupted update
- Do I need to run the update command twice after install?
- Can I install Void Linux without the void-installer TUI, like arch-chroot?
- Further Reading
glibc vs musl — Which Variant Should You Choose?
Void ships two separate libc variants, and the installer image you download depends on this choice upfront:
- glibc — the standard C library used by almost every other Linux distro. Choose this unless you have a specific reason not to. Locale support only works on glibc.
- musl — a smaller, strictly standards-compliant libc. The official handbook is direct about the tradeoff: most proprietary software (the NVIDIA proprietary driver being the most common blocker) does not work correctly on musl. If you need it anyway, the documented workaround is running that software from a glibc chroot.
If you're not sure, pick glibc. Reach for musl only if you specifically want the smaller, stricter base and don't need proprietary drivers or software.
Hardware Requirements (Official)
Unlike a lot of distros that don't publish real numbers, Void's handbook gives an exact minimum table:
| Variant | CPU | RAM | Disk |
|---|---|---|---|
| x86_64-glibc | x86_64 | 520MB | 700MB |
| x86_64-musl | x86_64 | 520MB | 600MB |
| i686-glibc | Pentium 4 (SSE2) | 520MB | 700MB |
These are base-system minimums for the console install. The Xfce desktop image needs meaningfully more RAM and disk than the numbers above. A working network connection isn't strictly required by the installer, but it's needed almost immediately after for the first system update.
Step 1 — Download the Void Linux Live Image
Get the live image matching your chosen libc and architecture from voidlinux.org/download. For a standard PC, that's void-live-x86_64-*.iso (glibc) or the -musl variant. Verify the checksum before writing it to a USB drive.
Step 2 — Create a Bootable USB Drive
lsblk # identify your USB device first
sudo dd if=void-live-x86_64-*.iso of=/dev/sdX bs=4M status=progress oflag=syncStep 3 — Boot and Launch void-installer
Boot from the USB drive. At the live desktop or console, run:
sudo void-installervoid-installer is a text-mode (TUI) installer, not a graphical one — there's no Calamares-style click-through here. It also isn't available at all on aarch64 images; ARM installs (Raspberry Pi, Pinebook Pro, Apple Silicon via Asahi, ThinkPad X13s) go through the handbook's separate manual chroot guides instead.
Step 4 — Walk Through the Installer
The installer runs through these screens in order — know what's coming before you start:
- Keyboard — layout selection
- Network — DHCP, manual IP, or WiFi (SSID + WPA passphrase)
- Source — Local (the live image itself) or Network install; a desktop environment install forces Local
- Hostname
- Locale — glibc only. If you're installing musl, there's no locale configuration step here.
- Timezone
- Root password
- User account — added to the
wheelgroup with sudo by default - Bootloader — GRUB2, or skip it if you're chain-loading from elsewhere
- Partition — this launches
cfdiskdirectly. There is no guided partitioning: GPT + EFI system partition for UEFI, MBR for legacy BIOS, done manually. - Filesystems — assign mount points to the partitions you just created
- Review — confirm every choice
- Install
The manual partitioning step surprises people coming from Ubuntu or even Arch's archinstall — there's no "use entire disk" button. You're expected to know your target layout before you get here.
Step 5 — First Boot and Updating the System
Reboot, remove the USB drive, and log in. Update immediately:
sudo xbps-install -SuRun it a second time if the first run updated the xbps package manager itself — this is documented, expected behavior, not a bug. xbps updates itself first, then needs re-invoking to finish updating everything else.
Managing Services: runit, Not systemd
Void uses runit for init and service supervision. There's no systemctl. To enable a service on a running system:
sudo ln -s /etc/sv/dhcpcd /var/service/Remove the symlink to disable it. Check status and control a running service with:
sv status dhcpcd
sudo sv restart dhcpcdFor the full picture on package management, logs without journalctl, and Void's XBPS-equivalent of the AUR, see the dedicated XBPS guide.
Disk Encryption — Not Built Into the Installer
Unlike Arch's archinstall or Omarchy, void-installer has no LUKS/LVM checkbox. Full-disk encryption requires the handbook's separate manual guide: cryptsetup luksFormat and luksOpen before you ever reach the installer's partitioning step, then vgcreate for LVM inside the opened container, followed by manual edits to /etc/default/grub, /etc/crypttab, and /etc/dracut.conf.d/10-crypt.conf after install. If encryption is a requirement, plan for it before you boot the installer — it can't be bolted on through the TUI.
Alternative Method: Manual Bootstrap Install (For Arch Users)
If you're coming from Arch and used to archinstall or a fully manual arch-chroot setup, Void has a documented equivalent that skips void-installer entirely — you partition, bootstrap the base system with xbps, and chroot in yourself. It's officially documented, and it maps almost 1:1 to the Arch workflow you already know:
Partition and Mount
# UEFI layout: EFI partition (1GB, type EF00) + root partition (type 8300)
# use cfdisk or your partitioner of choice, then:
mkfs.vfat /dev/sda1
mkfs.ext4 /dev/sda2
mount /dev/sda2 /mnt/
mkdir -p /mnt/boot/efi/
mount /dev/sda1 /mnt/boot/efi/Bootstrap the Base System with xbps
Copy the signing keys first, then populate the base system directly into /mnt using the current official repo:
mkdir -p /mnt/var/db/xbps/keys
cp /var/db/xbps/keys/* /mnt/var/db/xbps/keys/
REPO=https://repo-default.voidlinux.org/current
XBPS_ARCH=x86_64 xbps-install -S -r /mnt -R "$REPO" base-systemUse REPO=https://repo-default.voidlinux.org/current/musl instead if you're bootstrapping the musl variant. Don't reuse repo URLs from older third-party tutorials — mirrors get retired, and repo-default.voidlinux.org is the current official one.
fstab and chroot — the xtools Equivalents
Void's xtools package ships direct equivalents of Arch's genfstab and arch-chroot:
xgenfstab -U /mnt > /mnt/etc/fstab # equivalent of genfstab
xchroot /mnt /bin/bash # equivalent of arch-chrootxchroot handles the bind mounts for you when entering the chroot. The official handbook notes this can also be done manually if you'd rather control each mount yourself.
Inside the Chroot
echo "your-hostname" > /etc/hostname
passwd # set the root password
# edit /etc/rc.conf as needed
# glibc only — locales aren't configurable on musl
echo "en_US.UTF-8 UTF-8" >> /etc/default/libc-locales
xbps-reconfigure -f glibc-locales
# UEFI bootloader
xbps-install -S grub-x86_64-efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Void"
# finish and exit
xbps-reconfigure -fa
exit
umount -R /mnt
shutdown -r nowTwo things the official handbook doesn't cover, worth knowing before you hit them: it gives no explicit timezone-configuration step, and it doesn't document networking inside the chroot. In practice, a plain chroot shares the host's network namespace, so networking works as long as /mnt/etc/resolv.conf has valid DNS entries before you chroot in — that's a practical workaround, not an official documented step, so treat it as such.
Troubleshooting
xbps-install fails with an RSA signature verification error
This is almost always caused by an incorrect or corrupted local repository cache rather than a real security issue. Resync your repository data and retry.
Repository sync fails with "Operation not permitted"
Check your system clock. This error is commonly caused by the system time being significantly out of sync, which breaks certificate/signature validation against the repo. Fix the clock and retry.
xbps-install reports a 404 fetching repodata
Your repository configuration in /etc/xbps.d/ is pointing at a URL that no longer matches an active mirror or path. Check the repository files there against the current official mirror list.
Something broke after a partial or interrupted update
A partial update can leave broken shared library dependencies. xbps-remove -o removes orphaned packages, which often clears up the inconsistency — then re-run the full update.
Do I need to run the update command twice after install?
Yes, if the first xbps-install -Su updated xbps itself — this is documented official behavior, not an error. Run the same command again to finish updating the rest of the system.
Can I install Void Linux without the void-installer TUI, like arch-chroot?
Yes — see the manual bootstrap method above. xgenfstab and xchroot from the xtools package are Void's direct equivalents of Arch's genfstab and arch-chroot, and the whole flow is officially documented, not a community workaround.
Further Reading
- Independent Linux Distros: The Complete List
- XBPS Explained: Void Linux's Package Manager
- Void Linux Maintainer Orphans 113 Packages Over AI Policy Dispute
- Arch Linux Installation Guide (2026)
- Linux Package Managers: apt, dnf, pacman and zypper Compared
- Linux Disk Encryption with LUKS: Complete Guide
- Official Void Linux Handbook
