mirror of
https://github.com/clearlinux/clr-init.git
synced 2026-10-04 16:08:34 +00:00
this initrd will work using systemd as init program then this repo provide the scripts to create a systemd initrd Signed-off-by: Josue David Hernandez <josue.d.hernandez.gutierrez@intel.com>
149 lines
7.9 KiB
Markdown
149 lines
7.9 KiB
Markdown
## 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
|
|
```
|