Create debian-installer ISO images using debian-cd for ports architectures
This website describes the basic steps how you can create such images yourself. The instructions should - with minor modifications - work for other architectures like alpha or sparc too.
What you need to know
Prebuilt debian unstable packages are available in the debian-ports repository.
In most cases it's not possible to install from the debian-ports repository, because:
- it is a moving target, which means that the Linux kernel udeb packages which are needed by the kernel on the ISO/liffile may not be available any longer at a later date, and
- the bootloader (e.g. palo for parisc, aboot for alpha, silo for sparc) is not available there (because those architectures are not any longer release architectures, so the bootloaders are not being built any long), and
- the partitioning tools during installation for the architecture might be missing for the same reason (e.g. partman-palo for parisc).
Basic steps
- Create a local copy of the debian-ports repository
- Build the debian-installer packages
- Add missing boot loader / partitioning tools packages to the repository
- Build the final iso image
Create a local copy of the debian-ports repository
Install reprepro apt install reprepro
- Create a directory which will hold the copied packages (around 60 GB storage needed!)
- Configure reprepro to pull the right packages
- Download packages using reprepro
apt install reprepro mkdir -p /srv/debian-sparc64-archive cd /srv/debian-sparc64-archive wget https://people.debian.org/~glaubitz/reprepro-conf-sparc64.tgz tar xf reprepro-conf-sparc64.tgz rm reprepro-conf-sparc64.tgz # now modify the files in conf/* to your needs # now run "reprepro update" to pull all files from debian-ports reprepro update
Build the debian-installer packages
Building debian-installer from source is much easier these days. It just involves checking out the source code from git and building it with sbuild.
git clone https://salsa.debian.org/installer-team/debian-installer.git cd debian-installer sbuild -d unstable -c unstable-sparc64-sbuild --arch=sparc64 --no-arch-all
The resulting debian-installer image will be created as debian-installer-images_202501XX_sparc64.tar.gz in the parent directory.
Adding custom debs or udebs to reprepro repo
In some case it may make sense to add customs deb and udeb packages to the local reprepro repository.
cd /srv/d-i/debian-sparc64-archive/ reprepro includedeb unstable /path/to/*deb reprepro includeudeb unstable /path/to/*udeb
Set up debian-cd
debian-cd is the tool that builds the actual ISO images.
git clone https://salsa.debian.org/images-team/debian-cd.git wget https://people.debian.org/~glaubitz/debian-cd-ports.tar.gz cd debian-cd tar xf ../debian-cd-ports.tar.gz
Edit CONF-ports.sh to adjust path names
Adjust the path names for MIRROR, TDIR, OUT and APTTMP
# Paths to the mirrors export MIRROR=/srv/mirrors/debian-ports # Path of the temporary directory export TDIR=/srv/home/glaubitz/tmp # Path where the images will be written export OUT=/srv/home/glaubitz/debian-cd-test # Where we keep the temporary apt stuff. # This cannot reside on an NFS mount. export APTTMP=/srv/home/glaubitz/tmp/apt
Edit easy-build-ports.sh to adjust path to unpacked d-i images
Adjust the path name for DI_DIR
# Use official images from the local mirror export DI_DIST=$DI_CODENAME # or, use official images from an outside mirror #export DI_WWW_HOME="http://ftp.nl.debian.org/debian/dists/$DI_CODENAME/main/installer-%ARCH%/current/images/" # or, use daily built d-i images (most from http://people.debian.org) #export DI_WWW_HOME=default # or, use custom / locally built images #export DI_DIR="$HOME/d-i_images/%ARCH%" export DI_DIR="/home/glaubitz/d-i/%ARCH%/installer-%ARCH%/current/images/"
Build the final ISO images
./easy-build.sh NETINST $ARCH ./easy-build.sh CD $ARCH
Other prebuilt files for parisc: * http://parisc.osuosl.org/debian/palo-installer_0.0.15_hppa.udeb * http://parisc.osuosl.org/debian/partman-palo_20_hppa.udeb