==== templates/ This directory contains dynamic templates used for dynamic configuration building and other such things. They are written in http://jinja.pocoo.org/[Jinja2^]. If you haven't used Jinja2 before, the http://jinja.pocoo.org/docs/dev/templates/[templating documentation^] will prove to be very useful. This allows you to customize low-level behaviour of BDisk without modifying the source. ===== BIOS/ The `isolinux.cfg.arch.j2` template controls boot options for the single-arch versions of BDisk. In other words if you only build an i686 or only an x86_64 version, this is the template that would be used for BIOS boot mode. The `isolinux.cfg.multi.j2` is used for multi-arch. It manages booting for both i686 and x86_64 versions. These files will let you change the behaviour of booting in BIOS systems. The menu colour, the menu entries, the menu default, etc. ===== EFI/ The files in here are https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/[systemd-boot^] configurations. The distributed defaults are: `base.conf.j2`, which controls the "main"/default entry. `loader.conf.j2`, the meta configuration file which tells the loader which entry to load by default and which entries to include. `ram.conf.j2` which allows BDisk to run entirely from RAM. `uefi1.conf.j2` which provides a UEFI shell (for older UEFI systems). `uefi2.conf.j2` which provides a UEFI shell (for newer UEFI systems). ===== GPG.j2 This file contains default parameters for the https://www.gnupg.org/documentation/manuals/gnupg/Unattended-GPG-key-generation.html[GPG key generation], if we need to automatically generate a key. ===== iPXE/ This directory holds templates for iPXE/mini builds. The `BIOS/` directory is similar to <> mentioned above, but it only needs one configuration file and is a much more minimal design (since its entire purpose is to chainload to the iPXE loader). The `EFI/` directory is similar to <> above also, but needs fewer configuration files (its only purpose is to bootstrap iPXE). `EMBED.j2` is the iPXE http://ipxe.org/scripting[embedded script^] (http://ipxe.org/embed[more info^]). This is what chainloads the remote resources (kernel, intird, squashed filesystem images, and so forth). The `patches/` directory largely control branding of the mini ISO. They are in https://www.gnu.org/software/diffutils/manual/html_node/Unified-Format.html[unified diff^] (or "patch") format. ===== overlay/ This directory contains *templated* overlays. These are intended to be templated by the user. See <> for more information on how to use this. Remember to suffix your template files with the `.j2` extension. ===== pre-build.d/ This directory contains *templated* overlays. These are intended to not be managed by the user, as they handle configuration necessary for building an ISO. See <> for more information on this. ===== VERSION_INFO.txt.j2 This template specifies a VERSION_INFO.txt file placed in various locations throughout the builds to help identify which version, build, etc. the ISO is.