Thing to implement for using LVM on rootfs: - if rootfs device have unsupported name then check if this is block device with major 58 - check PVDEVICES and if empty do: -- run lvdisplay to determine volumen group (vg) -- run pvscan to find physical volumens (pv) belong to determined vg (better write help application to parse /etc/lvmtab.d/[vgname] or /etc/lvmconf/[vgname].conf - ask malekith for help) - for all found pvs find needed modules (support all devices that are supported for rootfs device) - add to startup: mount /proc mount /tmp mkdir /tmp/lvmtab.d mkdir /tmp/lvmconf lvm-initrd vgscan lvm-initrd vgchange -a y umount /tmp umount /proc NOTE: vgscan need writable /etc/lvmtab and /etc/lvmtab.d/. Distrib kernels are built only with romfs, so mount tmpfs on /tmp and symlink writable files from original location to /tmp. But tmpfs are only in kernel series 2.4.x or later. There is also problematic case with LVM on top of for example SOFTRAID. You would need to find all pvdevices and set them up in initrd so there would be multiple rootdevs with multiple dev_lists.