(!) Discussion
Tools to build multi-package systems in chroots, app/service containers, disk images, VMs or other formats.
Contents
General tools
Tools to create (Debian) systems for general use.
Tool
Language
Read-only/Writable
Formats
Comments
python3, configuration in INI
configurable rw or ro
UKI, DDI (GPT), squashfs/erofs, qcow, directory/chroot, cpio, kernel+initrd
Does not require privileges, can build container images and/or VM images and/or bare-metal bootable images and/or UKIs, supports multiple distributions/architectures
Shell
read/write
dir(rootfs)
Deprecated, prefer distrobuilder; linux containers create new buildroots from scripts in lxc-templates
Go
read/write
dir(rootfs), tar, qcow2
Modern system container image builder for LXC, LXD and Incus
Shell, Perl
read/write
dir, ISO, raw, qcow2, vdi, vhdx, vmdk
can do installations, chroots, disk images, cross architecture
python
iso, tar
very alpha, not ready for production use, similar to debos and mkosi but much larger in scope (meant to be used for appimages/installer/ppa systems eventually)
python
read/write
iso,qcow2,raw
Also used by SUSE and Redhat, supports non-root building in a VM
shell
ext4 raw image
Create and run Debian-based VM images for various releases and architectures
Live related (read-only)
Tools for creating Debian live environments.
Tool
Language
Read-only/Writable
Formats
Comments
shell
allows for persistence
UEFI boot and legacy boot, used for the official Debian live images
used fai dirinstall in the past
Cloud related
Tools for managing Debian instances in the cloud.
Tool
Language
Read-only/Writable
Formats
Comments
shell
Perl
fai-diskimage, The Debian cloud team is using FAI for official cloud images
Embedded related
Tools for managing Debian instances on embedded devices.
Tool
Language
Read-only/Writable
Formats
Comments
Python
shell
Build ready-to-burn Debian image for RISC-V boards (Hifive Unmatched, Visionfive v2, Allwinner D1 board)
Manual install related
Tools for manually installing Debian on a machine.
Tool
Language
Read-only/Writable
Formats
Comments
Ubuntu/Mint installer, uses d-i in backend.
See also
- other bootstrapping solutions
freedom-maker - used by FreedomBox
the derivatives census contains image and install tools
- package/system hybrids
other packaging solutions blur the line between packages and whole systems
docker and podman can be used like whole systems or just sandboxed apps
Discussions
<CAKTje6GG=PyyfH+FM_LNiajfohkcUFd3Qtko=fNWfmX4dtHSmw@mail.gmail.com>: Flashable image generation Re: Bits from ARM porters
<55999F8A.8000807@ghraoui.name>: oem-config for Debian
<570E0639.6040609@pocock.pro>: creating official Debian images for ARM-based NAS devices
<CAKTje6H3_Rvxkt226zJBqzGZBhZRP2GAHry0nFSvWyes=Q3gYw@mail.gmail.com>: support for installing unconfigured systems (VM images, Debian Live images, preinstalled mobile/tablet images)
Talks
DebConf18: Building Debian-based system images by Ben Hutchings (notes)
Cambridge mini-DebConf 2017: Build disk images with FAI by Thomas Lange
DebConf17: Installing Debian BoF by Vagrant Cascadian (notes)
DebConf15: Creating bootable Debian images by Riku Voipio
DebConf9: Building Debian from Debian by Vagrant Cascadian
Packaging tools
Tools more relevant to packaging have been moved to PackagingTools. For details, see the discussion.