Skip to main content

Building an arch / parabola custom live iso


0) Read this from start to finish without trying anything https://wiki.archlinux.org/title/archiso

Templates for building isos are in /usr/share/parabolaiso/configs/

1) Copy config to build_directory 

cp -r /usr/share/parabolaiso/configs/releng build_directory

This is the profile used to build the actual live ISO, in parabola a dual architecture iso (which is awesome in 2022))

airootfs - extra config files or anything custom goes here, this directory is the root of the system
bootstrap_packages.both - list of packages needed to boot the bootstrap iso
efiboot - efiboot directory
local - this is not in the profile, it's the optional pacman database used ot install custom packages
packages.both - new line delimited list of packages to be installed 
pacman.conf - pacman configuration (for installing custom packages)
profiledef.sh - settings including any file persmissions (important)
syslinux - bootloader files

2) Add custom packages, build them from PKGBUILD using makepkg (https://wiki.archlinux.org/title/makepkg)

mkdir ~/makepkg
cd ~/makepkg
git clone https://aur.archlinux.org/novnc.git
cd novnc
makepgk

This will create a .zst package which is the package for our local repository

3) Create a local repository directory in our build_directory

mkdir -p build_directory/local/repo

4) Copy the zst package you got from makepg to this directory

cp ~/makepkg/novnc/*.zst ~/build_directory/local/repo

5) Add the repo

repo-add local/repo/custom.db.tar.gz 

6) Build the ISO

Syntax:

mkparabolaiso / mkarchiso -v -w work_directory o output_dir

In our case:

sudo mkparabolaiso -v -w wrk/ -o out/ suda_dual/

Great explanation of the custom local repo process (and a cool channel): https://youtu.be/iJcXSaNzfM4