When Citadel is installed two disk partitions are created on the target disk.
The first partition is an EFI boot partition and the second partition is LUKS encrypted and contains multiple LVM volumes when decrypted.
There are three logical volumes. Two root filesystem partitions so that one partition can be updated while the other one is in use, and the remaining space is contained in a volume called 'storage'.
The kernel initramfs has an /etc/crypttab file which guides the discovery of the LUKS partition. The UUID of the LUKS partition is hardcoded to the value listed below. If citadel is installed on more than one device on the system, the intended LUKS partition may not be chosen correctly. This problem can be addressed by changing the UUID of other citadel LUKS partitions and passing the UUID on kernel commandline to override /etc/crypttab. See systemd-cryptsetup-generator(8).
The initramfs boot stage is orchestrated by various systemd unit files which can be found in the citadel source tree at:
The same kernel and initramfs is used for the installer image. One task of these unit files is to set up a live mode boot when a certain kernel command line option is set. For a regular boot, a pair of unit files will attempt to mount the root filesystem partition when it becomes available:
The .path unit triggers every time /dev/mapper changes and the corresponding .service unit is activated only when all of the LVM volumes inside