2
1
Fork
You've already forked void-mklive
0
The Void Linux live image maker https://voidlinux.org
  • Shell 95.1%
  • Makefile 2.8%
  • HCL 1.9%
  • Dockerfile 0.2%
Find a file
Tw b618336ba8 mklive.sh: sorting according to installed size
Signed-off-by: Tw <tw19881113@gmail.com>
Change-Id: Ie6703345f41eb7af93c24db4faea23aa6a6a6964
2026年05月24日 16:59:53 +08:00
.github/workflows CI: run in container 2026年05月16日 09:42:44 +08:00
container container/docker-bake: also build on linux/arm64 2025年02月27日 18:13:54 -05:00
data data, mklive.sh.in: remove void-vpkgs.conf 2021年03月15日 22:17:38 -07:00
dracut bugfix for hostname customization 2026年05月16日 09:42:44 +08:00
extra add ventoy 2026年05月16日 09:42:44 +08:00
grub mklive, grub: add support for "platforms" in live isos 2025年01月01日 14:52:10 -05:00
isolinux isolinux: add more rows to accomodate more entries 2025年01月01日 14:52:10 -05:00
keys Added musl.voidlinux.net RSA pubkey. 2015年05月08日 17:25:42 +02:00
packer packer/scripts/cloud.sh: use packaged growpart and core-service 2024年07月25日 21:21:49 -04:00
platforms platforms: add pinebookpro 2025年01月01日 14:52:10 -05:00
pxelinux.cfg Add netboot generator script 2017年08月06日 21:03:55 -07:00
.gitattributes .gitattributes: only root readme is generated 2025年01月01日 14:52:10 -05:00
.gitignore .github/workflows/gen-images: add support for generating WSL images 2025年12月25日 14:22:33 -05:00
COPYING COPYING: it's 2015. 2015年04月15日 07:33:47 +02:00
installer.sh installer: invert root emptiness check 2026年05月08日 12:47:38 -04:00
lib.sh change default xbps mirror to fastly 2026年05月16日 09:42:44 +08:00
Makefile Makefile: add WSL targets 2025年12月25日 14:22:33 -05:00
mkimage.sh mkimage, mkplatformfs, lib: add asahi 2025年01月21日 15:56:05 -05:00
mkiso.sh mkiso: add xf86-video-intel back for wider compat 2025年03月30日 23:18:25 -04:00
mklive.sh mklive.sh: sorting according to installed size 2026年05月24日 16:59:53 +08:00
mknet.sh dracut/autoinstaller: Replace inscrutable awk with inscrutable jq 2025年05月07日 11:06:52 -04:00
mkplatformfs.sh mkimage, mkplatformfs, lib: add asahi 2025年01月21日 15:56:05 -05:00
mkrootfs.sh lib.sh: update binfmt handling, add riscv 2025年01月01日 14:52:10 -05:00
mktw.sh mktw.sh: only install needed qemu targets 2026年05月24日 16:55:40 +08:00
postsetup.sh mktw.sh: use postsetup.sh to add user 2026年05月24日 15:17:14 +08:00
prepare_disk.sh prepare_disk.sh: switch to https://codeberg.org/Totorow/home 2026年05月16日 09:42:44 +08:00
README.md mklive.sh: support setting XBPS_HOST_CACHEDIR 2025年12月13日 10:51:40 -05:00
README.md.in build-x86-images: rename to mkiso 2025年01月01日 14:52:10 -05:00
release.sh release.sh: add ability to select a run id for download 2024年03月12日 07:29:12 -04:00
version version: bump 2025年01月25日 12:49:48 -05:00

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.autologin will skip the initial login screen on tty1.
  • live.user will change the username of the non-root user from the default anon. The password remains voidlinux.
  • live.shell sets the default shell for the non-root user in the live environment.
  • live.accessibility enables accessibility features like the console screenreader espeakup in the live environment.
  • console can be set to ttyS0, hvc0, or hvsi0 to enable agetty on that serial console.
  • locale.LANG will set the LANG environment variable. Defaults to en_US.UTF-8.
  • vconsole.keymap will set the console keymap. Defaults to us.

Examples:

  • live.autologin live.user=foo live.shell=/bin/bash would create the user foo with the default shell /bin/bash on boot, and log them in automatically on tty1
  • live.shell=/bin/bash would set the default shell for the anon user to /bin/bash
  • console=ttyS0 vconsole.keymap=cf would enable ttyS0 and set the keymap in the console to cf
  • locale.LANG=fr_CA.UTF-8 would set the live system's language to fr_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.

mklive.sh

Usage: mklive.sh [options]
Generates a basic live ISO image of Void Linux. This ISO image can be written
to a CD/DVD-ROM or any USB stick.
To generate a more complete live ISO image, use mkiso.sh.
OPTIONS
 -a <arch> Set XBPS_ARCH in the ISO image
 -b <system-pkg> Set an alternative base package (default: base-system)
 -r <repo> Use this XBPS repository. May be specified multiple times
 -c <cachedir> Use this XBPS cache directory (default: ./xbps-cachedir-<arch>)
 -H <host_cachedir> Use this Host XBPS cache directory (default: ./xbps-cachedir-<host_arch>)
 -k <keymap> Default keymap to use (default: us)
 -l <locale> Default locale to use (default: en_US.UTF-8)
 -i <lz4|gzip|bzip2|xz>
 Compression type for the initramfs image (default: xz)
 -s <gzip|lzo|xz> Compression type for the squashfs image (default: xz)
 -o <file> Output file name for the ISO image (default: automatic)
 -p "<pkg> ..." Install additional packages in the ISO image
 -g "<pkg> ..." Ignore packages when building the ISO image
 -I <includedir> Include directory structure under given path in the ROOTFS
 -S "<service> ..." Enable services in the ISO image
 -e <shell> Default shell of the root user (must be absolute path).
 Set the live.shell kernel argument to change the default shell of anon.
 -C "<arg> ..." Add additional kernel command line arguments
 -P "<platform> ..."
 Platforms to enable for aarch64 EFI ISO images (available: pinebookpro, x13s)
 -T <title> Modify the bootloader title (default: Void Linux)
 -v linux<version> Install a custom Linux version on ISO image (default: linux metapackage).
 Also accepts linux metapackages (linux-mainline, linux-lts).
 -x <script> Path to a postsetup script to run before generating the initramfs
 (receives the path to the ROOTFS as an argument)
 -K Do not remove builddir
 -h Show this help and exit
 -V Show version and exit

mkrootfs.sh

Usage: mkrootfs.sh [options] <arch>
Generate a Void Linux ROOTFS tarball for the specified architecture.
Supported architectures:
 i686, i686-musl, x86_64, x86_64-musl,
 armv5tel, armv5tel-musl, armv6l, armv6l-musl, armv7l, armv7l-musl
 aarch64, aarch64-musl,
 mipsel, mipsel-musl,
 ppc, ppc-musl, ppc64le, ppc64le-musl, ppc64, ppc64-musl
 riscv64, riscv64-musl
OPTIONS
 -b <system-pkg> Set an alternative base-system package (default: base-container-full)
 -c <cachedir> Set XBPS cache directory (default: ./xbps-cachedir-<arch>)
 -C <file> Full path to the XBPS configuration file
 -r <repo> Use this XBPS repository. May be specified multiple times
 -o <file> Filename to write the ROOTFS to (default: automatic)
 -x <num> Number of threads to use for image compression (default: dynamic)
 -h Show this help and exit
 -V Show version and exit

mkplatformfs.sh

Usage: mkplatformfs.sh [options] <platform> <rootfs-tarball>
Generates a platform-specific ROOTFS tarball from a generic Void Linux ROOTFS
generated by mkrootfs.sh.
Supported platforms: i686, x86_64, GCP,
 rpi-armv6l, rpi-armv7l, rpi-aarch64,
 pinebookpro, pinephone, rock64, rockpro64, asahi
OPTIONS
 -b <system-pkg> Set an alternative base-system package (default: base-system)
 -c <cachedir> Set the XBPS cache directory (default: ./xbps-cachedir-<arch>)
 -C <file> Full path to the XBPS configuration file
 -k <cmd> Call '<cmd> <ROOTFSPATH>' after building the ROOTFS
 -n Do not compress the image, instead print out the ROOTFS directory
 -o <file> Filename to write the PLATFORMFS archive to (default: automatic)
 -p "<pkg> ..." Additional packages to install into the ROOTFS
 -r <repo> Use this XBPS repository. May be specified multiple times
 -x <num> Number of threads to use for image compression (default: dynamic)
 -h Show this help and exit
 -V Show version and exit

mkimage.sh

Usage: mkimage.sh [options] <platformfs-tarball>
Generates a filesystem image suitable for writing with dd from a PLATFORMFS
tarball generated by mkplatformfs.sh. The filesystem layout is configurable,
but customization of the installed system should be done when generating the
PLATFORMFS. The resulting image will have 2 partitions, /boot and /.
OPTIONS
 -b <fstype> /boot filesystem type (default: vfat)
 -B <bsize> /boot filesystem size (default: 256MiB)
 -r <fstype> / filesystem type (default: ext4)
 -s <totalsize> Total image size (default: 900MiB)
 -o <output> Image filename (default: guessed automatically)
 -x <num> Number of threads to use for image compression (default: dynamic)
 -h Show this help and exit
 -V Show version and exit
Accepted size suffixes: KiB, MiB, GiB, TiB, EiB.
The <platformfs-tarball> argument expects a tarball generated by mkplatformfs.sh.
The platform is guessed automatically by its name.

mknet.sh

Usage: mknet.sh [options] <rootfs-tarball>
Generates a network-bootable tarball from a Void Linux ROOTFS generated by mkrootfs.
OPTIONS
 -r <repo> Use this XBPS repository. May be specified multiple times
 -c <cachedir> Use this XBPS cache directory (default: )
 -i <lz4|gzip|bzip2|xz>
 Compression type for the initramfs image (default: xz)
 -o <file> Output file name for the netboot tarball (default: automatic)
 -K linux<version> Install a custom Linux version on ISO image (default: linux metapackage)
 -k <keymap> Default keymap to use (default: us)
 -l <locale> Default locale to use (default: en_US.UTF-8)
 -C "<arg> ..." Add additional kernel command line arguments
 -T <title> Modify the bootloader title (default: Void Linux)
 -S <image> Set a custom splash image for the bootloader (default: data/splash.png)
 -h Show this help and exit
 -V Show version and exit