How the Netinst Image is Done
The netinst system is a set of initrd and .iso images that can be used to install a Trisquel system by grabbing the needed packages from the network. It can be used as an standalone .iso image, loaded via PXE, or booted from any conventional bootloader. The netinst image is available for the LTS editions, and it is included as an alternative boot menu entry in the LiveCDs.
The netinst or netinstall system is built around the debian-installer set of packages, and the images themselves are built by compiling the debian-installer package. The typical netinst image, in the form of a tiny .iso, consists of a kernel binary and an initrd image. This image is loaded into the system memory and contains the minimal set of tools needed to download the rest of the installer (packaged in udeb files) at runtime. Once downloaded and installed in the minimal ramdisk system, it is able to debootstrap and configure a complete Trisquel system.
A Debian source package usually compiles to a set of udeb packages, which are designed to be used by dpkg and package managers such as apt in standard installations. The debian-installer needs a lighter package system, as it will be run from a minimal system loaded into a ramdisk. Because of this, the source packages that conform the Debian installer set gives us udeb packages upon compiling. Those udeb packages are not listed by apt-cache, as they have their own repository. The source packages for the udeb ones are in the normal repository, though.
To make our netinst image from the Ubuntu upstream source files we need to modify several (but not all) of the debian-installer set of packages, changing references to Ubuntu with the proper Trisquel ones, removing non-free installers, and replacing the repository selector system. This is the list of debian-installer packages we modify:
- apt-setup: It configures the sources.list of the installed system.
- base-installer: Debootstraps a Trisquel system from a mirror.
- choose-mirror: Lists all the official Trisquel archive mirrors.
- debian-installer: The main package, it builds the install images. The boot logo, GPG key and several text chains are replaced.
- grub-installer: Installs the bootloader.
- main-menu: The installer main-menu. References to Ubuntu are replaced.
- netcfg: It configures the network and sets the system name. The name is changed from Ubuntu to Trisquel.
- net-retriever: Downloads the required packages. The GPG signing key is replaced with the Trisquel one.
The repository definitions for the debian-installer set can be found here: http://archive.trisquel.info/trisquel/dists/robur/main/debian-installer/