## DISCONTINUATION OF PROJECT. This project will no longer be maintained by Intel. Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel. If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project. Contact: webadmin@linux.intel.com ## clr-init Initrd created using systemd as init program ## Luks Encryption support The systemd rd parameters for luks most be added to the kernel cmdline to know who is the encrypted root partition: https://www.freedesktop.org/software/systemd/man/systemd-cryptsetup-generator.html#Kernel%20Command%20Line This initrd most not be using with LVM partitons, how ever it could be complemented adding services in an additional initrd ## How this works This is the flow of an initrd with systemd: ``` +----------------+ | systemd (init) | +----------------+ + v +--------------------------------+ | system-generators | |--------------------------------| | nfs-server-generator | | rpc-pipefs-generator | | systemd-cryptsetup-generator | | systemd-debug-generator | | systemd-fstab-generator | | systemd-getty-generator | | systemd-gpt-auto-generator | | systemd-system-update-generator| | systemd-veritysetup-generator | +--------------------------------+ + | v +-------------------+ |local-fs-pre.target| +-------------------+ + | | | v +-----------------------------+ +-----------------+ +-----------------------+ | local-fs.target | | swap.target | | cryptsetup.target | |-----------------------------| |-----------------| |-----------------------| | | | | | | | tmp.mount | | (various swap | | (various cryptsetup | | systemd-remount-fs.service | | devices...) | | devices...) | | | | | | | +-----------------------------+ +-----------------+ +-----------------------+ + | | | | | +------------------------------>|<------------------------------+ v +--------------------------------------+ | sysinit.target | |--------------------------------------| | systemd-ask-password-console.path | | systemd-tmpfiles-setup-dev.service | | systemd-tmpfiles-setup.service | | systemd-udevd.service | | systemd-udev-trigger.service | +--------------------------------------+ + | +------------------+-----------------+|+---------------+------------------------+ | | | | | | | | | | v v | v v +----------------+ +----------------+ | +------------------------------++---------------+ | timers.target | | paths.target | | | sockets.target || rescue.target | |----------------| |----------------| | |------------------------------|+---------------+ | (various | | (various | | | systemd-udevd-control.socket| | timers...) | | paths...) | | | systemd-udevd-kernel.socket | | | | | | | | +----------------+ +----------------+ | +------------------------------+ + | + | | | | | | +------------------>|<---------------+ | | | v +------------+ |basic.target| +------------+ + | v +--------------------------------+ +----------------+ | initrd-root-device.target | |emergency.target| |--------------------------------| +----------------+ | sysroot.mount | +--------------------------------+ + | v +--------------------------------+ | initrd-root-fs.target | |--------------------------------| | initrd-parse-etc.service | +--------------------------------+ + | v +--------------------------------+ | initrd-fs.target | |--------------------------------| | (sysroot-usr.mount and | | various mounts marked | | with fstab option | | x-initrd.mount...) | +--------------------------------+ + | v +------------------------------------+ | initrd.target | |------------------------------------| | initrd-cleanup.service | | initrd-udevadm-cleanup-db.service | +------------------------------------+ + | v +-------------------------------+ | initrd-switch-root.target | |-------------------------------| | | | initrd-switch-root.service | | | +-------------------------------+ + | v +------------------------+ | Transition to Host OS | +------------------------+ ``` ## Create and Install This will install clr-init.cpio.gz in /usr/lib/initrd ``` make && make install ```