Skip to content

Latest commit

 

History

History
57 lines (48 loc) · 3.56 KB

apt-installer-files.md

File metadata and controls

57 lines (48 loc) · 3.56 KB

Debian-family installer file coverage

Built-in and shipped YAML rules for Debian, Ubuntu and Ubuntu Ports recognize common files below dists/<suite>/<component>/installer-<architecture>/<version>/images/. The same exact filenames are accepted under legacy-images/, as published by Ubuntu Focal. The version can be current or a dated installer version. The configured mirror must actually publish these paths; this does not restore installer trees removed from newer Ubuntu releases.

Supported paths relative to images/:

  • MD5SUMS, SHA256SUMS, MANIFEST, MANIFEST.udebs, and udeb.list;
  • netboot/netboot.tar.gz, netboot/mini.iso, and netboot/pxelinux.0;
  • netboot/gtk/netboot.tar.gz and netboot/gtk/mini.iso for graphical installers;
  • netboot/{debian,ubuntu}-installer/<architecture>/{linux,initrd.gz}, including the corresponding netboot/gtk/ paths;
  • {hd-media,cdrom}/{vmlinuz,initrd.gz}, including their gtk/ paths;
  • hd-media/boot.img.gz;
  • netboot/pxelinux.cfg/default;
  • within netboot/{debian,ubuntu}-installer/<architecture>/ (also under GTK): pxelinux.0, pxelinux.cfg/default, bootnet{x64,ia32,aa64}.efi, grub{x64,ia32,aa64}.efi, boot menu resources and GRUB resources.

Boot menu resources are limited to boot-screens/<name>.cfg, <name>.c32, f1.txt through f10.txt, and splash.png. GRUB resources are limited to grub/grub.cfg, grub/font.pf2, and grub/<platform>-efi/<name>.{mod,lst}. Names use letters, digits, underscores and hyphens, starting with a letter or digit. This includes modular GRUB dependencies without allowing arbitrary nested downloads.

These names can be inspected in the Debian installer image directory. The rules require the complete installer hierarchy and an exact supported filename. They do not allow arbitrary ISO/tarball downloads, arbitrary PXE configuration filenames, scripts, signature files, or all architecture-specific installer artifacts. Consequently, this subset alone does not promise a complete PXE or offline installation.

All matched files use fallback max-age=3600, including dated directories. current is mutable, so the longer binary/source package fallback is inappropriate. Explicit upstream Cache-Control or Expires still takes precedence, including no-store. Existing private-request isolation, connection policy and cache length checks apply. No cache migration is needed. Existing custom distribution YAML must explicitly adopt these rules from the updated shipped example.

Files are cached individually. This change does not atomically refresh a whole installer tree, compare image bytes against checksum manifests, or verify signatures. Clients must perform integrity/authenticity checks and handle upstream updates; serving a manifest does not by itself authenticate the boot files.

Tests cover all three distributions and both rule sources, exact path/suffix boundaries, and daemon rewriting, byte preservation, cold/warm cache behavior, and upstream no-store. Mock boot bytes are not a real installer compatibility test.

PXE/UEFI support here means HTTP routing and caching of the listed resources. apt-proxy does not provide DHCP/TFTP, rewrite boot configuration contents, provision firmware, or validate Secure Boot signatures. Configuration URLs and relative references must be compatible with the chosen mirror and boot setup. Directory listings are not proxied. Files unavailable on the mirror remain unavailable.