User:NeddySeagoon/Pi4 Root in LVM

Overview
Root in LVM is almost conventional. The path described here is for a kernel with everything built in and an initrd that contains only userspace tools, so that its like firmware. That means that its kernel agnostic.

The binaries for the initrd will be installed in their own space, so that they can be reused in years to come if the initrd init script needs to be changed.

The initrd will be compiled using the kernel provided usr/gen_init tool that is compiled with the kernel.

Drawbacks
Root in LVM on a Pi can be made to work but its a bit hacky. The main issue is that block devices are not instantly available, so that the vgchange command will fail as the underlying block device is not available when it runs.

The usual rootwait or rootdelay won't help as they wait for a block device and its the LV underlying block device, which isn't know, that needs to be waited for.

dm-init, the way to have root in LVM without an initrd will not work for this reason.