Mark D Horn 40e678ea00 initramfs: lvm sysroot
Only activate the Clear Linux OS rootfs volume.

Add lvm conf file to allow pvscan, but prevent starting the
lvmetad service. Otherwise, if non-root lvms exist, all lvms
are active and the Host OS will hang when starting lvmetad service.

Add new lvm2-mount-sysroot.service to only activate the rootfs
which is identified by the CLR_ROOT logical volume name.

Signed-off-by: Mark D Horn <mark.d.horn@intel.com>
2020-06-22 16:24:49 -05:00
2020-06-22 16:24:49 -05:00
2018-01-19 17:48:16 -06:00

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
S
Description
No description provided
Readme 1,005 KiB
Languages
Makefile 100%