Tools to customize an Ubuntu Live CD. Many parts of this will end up
being version-specific. The host machine must be running systemd,
since the image is executed inside a systemd-nspawn container.
Set up host machine, which must be running a recent systemd:
sudo apt install squashfs-tools xorriso isolinux systemd-container iptables
sudo systemctl start systemd-networkd
Choose a config:
export BUILD_CONFIG=16.04
Download and extract the original ISO:
./extractiso.sh
Apply customizations, both to the outer ISO and the inner image.
This will also run customizer-inner.sh inside a container:
./customize.sh
(Optional) Run and enter a shell in the container, for manual customization:
./enter.sh
Build the new ISO:
./buildiso.sh
Boot the ISO in QEMU with a blank HDD, to test and install:
./run.sh -c
Boot QEMU with the same HDD image as above, to test an "installed" system:
./run.sh -d
Remove everything but the ISOs:
./cleanup.sh
Notes:
- A more proper way to build a distro from scratch would be something
like one of these, except that they're out of date:
http://www.mythbuntu.org/development/developer-cheatsheet (2010)
https://github.com/squibbylinux/squibby-build (2012)