sdbtools / void-pi

Void Linux installer implemented in GNU Prolog.
GNU General Public License v2.0
15 stars 2 forks source link
gprolog prolog void-linux voidlinux

void-pi

Void Linux installer implemented in GNU Prolog.

Description

Overview

void-pi is a Void Linux installer similar to void-installer.

It extends void-installer in several ways:

void-pi works on Void with Intel or AMD x86 CPU. It wasn't tested with ARM CPUs.

How to run

Run installer from another computer.

Run precompiled executable.

sudo xbps-install -Suy xbps wget
wget https://github.com/sdbtools/void-pi/releases/latest/download/void-pi.x86_64.tgz
tar -xzf void-pi.x86_64.tgz
./void-pi

Run as script.

sudo xbps-install gprolog git
git clone https://github.com/sdbtools/void-pi.git
cd void-pi
./void-pi.pl
# or
gprolog --consult-file void-pi.pl

Compile Prolog code locally and run it.

sudo xbps-install gprolog gcc git
git clone https://github.com/sdbtools/void-pi.git
cd void-pi
gplc --min-size void-pi.pl
./void-pi

Manually run btrbk

Manually run grub-btrfs

ZFS Install media

mklive.sh

This option is to build a custom Void Linux image from the official void-mklive repository.

$ git clone --depth=1 https://github.com/void-linux/void-mklive.git
$ cd void-mklive
$ make
$ sudo ./build-x86-images.sh -- -p zfs

hrmpf image

Download a pre-built hrmpf image.

Bcachefs Install media

mklive.sh

This option is to build a custom Void Linux image from the official void-mklive repository.

$ git clone --depth=1 https://github.com/void-linux/void-mklive.git
$ cd void-mklive
$ make
$ sudo ./build-x86-images.sh -- -v linux6.7

Features

Boot manager Supported /boot filesystems
GRUB fat, btrfs, ext2, ext3, ext4, xfs, nilfs2, and zfs (zfs has limited support)
Gummiboot fat, ext2, ext3, ext4, xfs, nilfs2, and f2fs (btrfs is not supported at this time)
rEFInd fat, btrfs, ext2, ext3, and ext4
Limine fat, (Support of ext2, ext3, and ext4 was disabled in Limine version 6.20231210.0)
Syslinux fat, ext2, ext3, and ext4, and xfs (btrfs is not supported at this time)
EFISTUB fat, ext2, ext3, ext4, f2fs, and xfs (btrfs is not supported at this time)
ZFSBootMenu zfs
Last tested ISO Result
2024-06-08 void-live-x86_64-20240229-base.iso PASS
2023-06-29 void-live-x86_64-musl-20221001-base.iso PASS
2023-10-21 void-live-i686-20230628-base.iso PASS
2023-06-29 void-live-i686-20221001-base.iso N/A
2023-06-29 void-live-i686-20210930.iso PASS
2023-10-14 hrmpf-x86_64-6.1.3_1-20230105.iso PASS
2023-11-19 hrmpf-x86_64-6.5.9_1-20231102.iso PASS
2023-08-22 void-live-lxqt-unofficial-x86_64-6.3.13_1-20230821.iso PASS
2023-12-17 void-live-kde-unofficial-x86_64-6.5.13_1-20231217.iso PASS

Templates

Partitioning Templates

BTRFS

void-pi creates the following Btrfs subvolumes with a flat layout:

Subvolume name Mounting point Mount options
@ /
@snapshots /.snapshots nodev,noexec,nosuid + nodatacow
Subvolume name Mounting point Mount options
@ /
@home /home nodev,nosuid
@snapshots /.snapshots nodev,noexec,nosuid + nodatacow
Subvolume name Mounting point Mount options
@ /
@home /home nodev,nosuid
@opt /opt nodev
@srv /srv nodev,noexec,nosuid + nodatacow
@var /var nodev,noexec,nosuid
@var-cache-xbps /var/cache/xbps nodev,noexec,nosuid
@var-lib-ex /var/lib/ex nodev,noexec,nosuid + nodatacow
@var-log /var/log nodev,noexec,nosuid + nodatacow
@var-opt /var/opt nodev,noexec,nosuid
@var-spool /var/spool nodev,noexec,nosuid + nodatacow
@var-tmp /var/tmp nodev,noexec,nosuid + nodatacow
@snapshots /.snapshots nodev,noexec,nosuid + nodatacow

ZFS

Dataset name Mounting point Options
/ROOT/void / canmount=noauto, atime=off
Dataset name Mounting point Options
/ROOT/void / canmount=noauto, atime=off
/home /home atime=off
Dataset name Mounting point Options
/ROOT/void / canmount=noauto, atime=off
/home /home atime=off
/opt /opt atime=off
/srv /srv atime=off
/tmp /tmp com.sun:auto-snapshot=false, atime=off
/var /var canmount=off, atime=off
/var-lib /var/lib canmount=off, atime=off
/var-cache-xbps /var/cache/xbps com.sun:auto-snapshot=false, atime=off
/var-lib-ex /var/lib/ex atime=off
/var-log /var/log atime=off
/var-opt /var/opt atime=off
/var-spool /var/spool atime=off
/var-tmp /var/tmp com.sun:auto-snapshot=false, atime=off

All other

Default settings

All default settings can be changed via Common Attrs sub-menu.

Partitioning

BIOS boot mode

UEFI boot mode

F2FS options

Dependencies

Name Provides Included in Void ISO?
dialog ncurses user input menu Y
gptfdisk GPT disk partitioning with sgdisk N
lz4 Extremely Fast Compression algorithm N
snooze cron replacement N
btrbk Tool for creating snapshots N
grub-btrfs Add a btrfs snapshots sub-menu to GRUB N
zfs ZFS filesystem N

Licensing

This software is released under the GNU GPLv2 license.

Credits