Software
- Void iso creation
By Jake Pedersen|April 21, 2025
By Jake Pedersen|April 21, 2025
By Jake Pedersen|April 21, 2025
Void Linux is a lightweight, independent Linux distribution with a unique runit
init system. The void-mklive
tool allows you to create custom live ISOs that can run as bootable environments or install a tailored system. This tutorial explains how to install void-mklive
, create a basic live ISO, and build a custom ISO with the Cinnamon desktop, neovim
, firefox
, and alacritty
, including a custom wallpaper and green terminal prompt. The custom ISO supports installation with void-installer
to replicate the live setup on a disk or virtual machine.
sudo
).The void-mklive
tool is hosted in Void Linux’s source repository. Install the required dependencies and clone the repository.
sudo xbps-install -S git xorriso squashfs-tools liblz4
git clone https://github.com/void-linux/void-mklive.git
cd void-mklive
Start by creating a minimal live ISO to understand the void-mklive
process. The mklive.sh
script generates a basic ISO without a desktop environment.
sudo ./mklive.sh -a x86_64 -o void-simple.iso
This command builds a minimal 64-bit ISO with a TTY login prompt and a base system. The process takes a few minutes. Test the ISO in a virtual machine (e.g., QEMU):
qemu-system-x86_64 -cdrom void-simple.iso -m 2G -enable-kvm
The ISO boots to a TTY, where you can log in as root
(no password) and explore the base system.
The custom ISO will include:
neovim
for coding, firefox
for browsing, and alacritty
as a terminal emulator.void-installer
to install the live environment’s setup.The mkiso.sh
script will be used, as it supports the base
variant with void-installer
and allows custom packages and configurations.
Set up a configuration directory to store custom files for the ISO.
This can be anywhere on your system, just remember the path, for our example we will create it in our home directory
mkdir -p ~/my-void-stuff/etc/skel
mkdir -p ~/my-void-stuff/usr/share/backgrounds
Create a .bashrc
file for a green terminal prompt.
echo "PS1='\[\e[32m\]\u@\h:\w\$\[\e[m\] '" > ~/my-void-stuff/etc/skel/.bashrc
Download a wallpaper. Replace [URL-to-image]
with a valid image URL.
wget -O ~/my-void-stuff/usr/share/backgrounds/my-wallpaper.jpg [URL-to-image]
Use mkiso.sh
to build the custom ISO with the base
variant, additional packages, and custom configurations.
sudo ./mkiso.sh -a x86_64 -b base\
-p "cinnamon neovim firefox alacritty"\
-I ~/my-void-stuff\
-- -C "live.autologin"\
-o void-my-cinnamon.iso
This command:
-a x86_64
).base
variant with void-installer
(-b base
).cinnamon
, neovim
, firefox
, alacritty (-p)
.-I ~/my-void-stuff
).-C live.autologin
).void-my-cinnamon.iso
(-o
).The --
passes flags to mklive.sh
internally. The build takes 10-20 minutes, depending on your system and internet speed.
Test the ISO to verify the live environment.
Boot the ISO in a virtual machine (e.g., QEMU):
qemu-system-x86_64 -cdrom void-my-cinnamon.iso -m 2G -enable-kvm
Verify that the ISO boots into Cinnamon with auto-login, and check:
my-wallpaper.jpg
) is present.alacritty
) shows the green prompt.neovim
and firefox
are functional.Use void-installer
to install the live environment to a disk or virtual machine.
Open a terminal and run:
sudo void-installer
Follow the prompts:
us
).cfdisk
(e.g., create a single ext4
partition for /
).mkfs.ext4 /dev/sda1
./
.cinnamon
, firefox
, etc.).Reboot and verify the installed system includes Cinnamon, firefox
, neovim
, alacritty
, the wallpaper, and the green prompt.
To further customize the ISO:
-S sshd
for SSH).-v linux6.6
).-l en_GB.UTF-8
)./etc/skel
for new users.The void-mklive
GitHub README lists all options. Build on a Void Linux system for compatibility, avoiding containers or other distributions.
This tutorial demonstrated how to use void-mklive
to create a custom Void Linux ISO with Cinnamon, neovim
, firefox
, and alacritty
. The ISO boots into a live environment with a custom wallpaper and green prompt, and it can install the same setup using void-installer
. This process showcases Void’s flexibility for creating personalized, portable Linux systems.