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 |
ocaml |
read/write |
qcow2, raw |
||
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 |
|
|
WARNING: some questionable customizations |
|
Shell, Perl |
read/write |
dir, ISO, raw, qcow2, vdi, vhdx, vmdk |
can do installations, chroots, disk images, cross architecture |
|
Go |
|
|
Data driven rootless image creation tool. debos intro |
|
python |
|
|
Creates (chroots and) bootable virtual machine images |
|
python |
|
|
|
|
C |
|
|
developed by Pengutronix |
|
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 |
||||
uses fai-cd |
writeable data partition possible |
|
UEFI boot and legacy boot |
|
Cloud related
Tools for managing Debian instances in the cloud.
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
|
Python |
|
|
removed in bullseye |
||
shell, python |
|
|
removed in bullseye |
||
shell |
|||||
|
|
|
removed in trixie |
||
Perl |
|||||
fai-diskimage, The Debian cloud team is using FAI for official cloud images |
|||||
|
|
|
wapper around FAI |
|
|
Python |
|
|
wapper around virt-install |
|
Embedded related
Tools for managing Debian instances on embedded devices.
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
Python |
||||
Python |
|
|
For Olimex devices |
|
shell |
|
|
Build ready-to-burn Debian image for RISC-V boards (Hifive Unmatched, Visionfive v2, Allwinner D1 board) |
|
Python |
|
|
Manual install related
Tools for manually installing Debian on a machine.
Tool |
Language |
Read-only/Writable |
Formats |
Comments |
shell, C |
|
|
|
|
calamares |
|
|
|
used on the LiveCD |
Haskell |
|
|
||
Ubuntu/Mint installer, uses d-i in backend. |
||||
|
|
|
based on vmdb2, announcement |
|
Common Lisp |
|
|
similarish to propellor |
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.
