Ubuntu image builds¶
This page explains how Ubuntu ISO and preinstalled image builds work, from trigger to publication.
Overview¶
Ubuntu produces several image types:
Classic installer ISOs (Desktop, Server) — e.g.
ubuntu/daily-live/current/Classic preinstalled images — e.g.
ubuntu-server/daily-preinstalled/current/Core preinstalled images (ubuntu-core) — e.g.
ubuntu-core/18/stable/current/
Build pipeline¶
Trigger — An image build is triggered automatically via cron or manually using the web UI.
ubuntu-cdimage — The central orchestrator. It starts
livefsbuilds on Launchpad, downloads results, runsdebian-cd, and publishes images.Setup —
ubuntu-cdimageperforms basic project setup for the requested build configuration.livefsbuilds —ubuntu-cdimagestartslivefsbuilds on Launchpad for each requested architecture, usinglive-buildto create therootfs.livecd-
rootfs— An Ubuntu config overlay forlive-buildthat customizes therootfsbuild. Key customization hooks:auto/config— initial configuration (project, arch, sub-architecture).chroothooks — modify therootfscontentsauto/build— finalise therootfsbuild.binaryhooks — final customization
Mirror sync — A local mirror is synchronised in parallel to ensure no packages are stale.
Intermediate steps —
ubuntu-cdimagerunsgerminateand other preparation steps.Wait for
livefs—ubuntu-cdimagewaits for alllivefsbuilds to complete and downloads them. Failed builds are reported by email toubuntu-cdimagemembers.debian-cd —
ubuntu-cdimagecallsdebian-cdto create installer images:Prepares the installer package pool
Configures boot (Grub, kernel selection)
Makes images bootable
Generates ISOs via
xorrisoGenerates file manifests
Publishing —
ubuntu-cdimagecopies images to the relevant build-stamp directory and performs a mirror sync to publish.
Useful resources¶
Build logs:
https://ubuntu-archive-team.ubuntu.com/cd-build-logs/Crontab:
https://git.launchpad.net/ubuntu-cdimage/tree/etc/crontablivefsbuild testing: Testing a change to livecd-rootfson Launchpad