The Void Linux live image/rootfs generator and installer
Overview
This repository contains several utilities:
- mklive.sh - The Void Linux live image generator for x86
- mkiso.sh - Wrapper script to generate bootable and installable live images for i686, x86_64, and aarch64.
- mkrootfs.sh - The Void Linux rootfs generator for all platforms
- mkplatformfs.sh - The Void Linux filesystem tool to produce a rootfs for a particular platform
- mkimage.sh - The Void Linux image generator for ARM platforms
- mknet.sh - Script to generate netboot tarballs for Void
- installer.sh - The Void Linux el-cheapo installer for x86
- release.sh - interacts with GitHub CI to generate and sign images for releases
Workflow
Generating x86 live ISOs
To generate a live ISO like the officially-published ones, use
mkiso.sh. To generate a more basic live ISO
(which does not include things like void-installer), use mklive.sh.
Generating ROOTFS tarballs
ROOTFS tarballs contain a basic Void Linux root filesystem without a kernel. These can be useful for doing a chroot install or for chroots and containers.
Use mkrootfs.sh to generate a Void Linux ROOTFS.
Generating platform-specific tarballs
Platform-specific ROOTFS tarballs, or PLATFORMFS tarballs, contain a basic Void Linux root filesystem including a kernel. These are commonly used for bootstrapping ARM systems or other environments that require platform-specific kernels, like Raspberry Pis.
First create a ROOTFS for the desired architecture, then use mkplatformfs.sh to generate a Void Linux PLATFORMFS.
Generating ARM images
Platform-specific filesystem images contain a basic filesystem layout (/ and
/boot partitions), ready to be copied to the target drive with dd. These are
not "live" images like those available on x86 platforms, and do not need
installation like live ISOs.
To generate these images, first create a PLATFORMFS for the desired platform, then use mkimage.sh to generate the image.
Dependencies
Note that void-mklive is not guaranteed to work on distributions other than Void Linux, or in containers.
- Compression type for the initramfs image (by default: liblz4 for lz4, xz)
- xbps>=0.45
- qemu-user-static binaries (for mkrootfs)
- bash
Kernel Command-line Parameters
void-mklive-based live images support several kernel command-line arguments
that can change the behavior of the live system:
live.autologinwill skip the initial login screen ontty1.live.userwill change the username of the non-root user from the defaultanon. The password remainsvoidlinux.live.shellsets the default shell for the non-root user in the live environment.live.accessibilityenables accessibility features like the console screenreaderespeakupin the live environment.consolecan be set tottyS0,hvc0, orhvsi0to enableagettyon that serial console.locale.LANGwill set theLANGenvironment variable. Defaults toen_US.UTF-8.vconsole.keymapwill set the console keymap. Defaults tous.
Examples:
live.autologin live.user=foo live.shell=/bin/bashwould create the userfoowith the default shell/bin/bashon boot, and log them in automatically ontty1live.shell=/bin/bashwould set the default shell for theanonuser to/bin/bashconsole=ttyS0 vconsole.keymap=cfwould enablettyS0and set the keymap in the console tocflocale.LANG=fr_CA.UTF-8would set the live system's language tofr_CA.UTF-8
Usage
mkiso.sh
Usage: mkiso.sh [options ...] [-- mklive options ...]
Wrapper script around mklive.sh for several standard flavors of live images.
Adds void-installer and other helpful utilities to the generated images.
OPTIONS
-a <arch> Set architecture (or platform) in the image
-b <variant> One of base, enlightenment, xfce, mate, cinnamon, gnome, kde,
lxde, lxqt, or xfce-wayland (default: base). May be specified multiple times
to build multiple variants
-d <date> Override the datestamp on the generated image (YYYYMMDD format)
-t <arch-date-variant>
Equivalent to setting -a, -b, and -d
-r <repo> Use this XBPS repository. May be specified multiple times
-h Show this help and exit
-V Show version and exit
Other options can be passed directly to mklive.sh by specifying them after the --.
See mklive.sh -h for more details.