Ben Hutchings

What is the initramfs for?

How the kernel uses an initramfs


The init system

Problems (1)

Root filesystem is not enough. Depenency-based boot means there's no clean split between root and /usr. So initramfs should mount it (implemented in 0.117). However:

Problems (2)

Device discovery by kernel is asynchronous. But that's why we have udev, right?

Unfortunately not everything needed for device setup is or can be in udev hooks (e.g. cryptsetup requires interaction)

Lots of hacks used (while ... do sleep... done, udevadm settle in too many places), and they still sometimes fail (#616689 and merged bugs)

Ubuntu has a somewhat better approach but we still haven't merged it back... fact, Debian and Ubuntu branches have been diverging for about 5 years

More information