I have "one" machine which is static. The following never change: CPU, GPU, motherboard, harddrive, keyboard, mouse, USB ports

I have dual-boot Windows and Linux (specifically Windows 10 and Ubuntu)

As I understand the Linux boot process, it uses initrd to load an initial root filesystem, the load the kernel, get appropriate device drivers, prepare the kernel for user space processes and finally start some process like "init".

My question is: why? Given my machine configuration above, why not have the boot process completely optimized and in a way, inflexible, but fast. It could start by directly loading exactly what it needs for my machine, and bypassing this initrd/initial root FS -> then userspace processes.

Is there a way to achieve this?

  • Understand wrong. People use initramfs to gain flexibility. You can skip it by using root and init and kernel argument. unix.stackexchange.com/questions/473260/… – 炸鱼薯条德里克 May 30 '19 at 6:28
  • There's some interesting discussion around the usefulness of initramfs by Linus Torvalds yarchive.net/comp/linux/initramfs.html . The intention was to make startup more flexible without the need to "muck with kernel code". Where Sujay is right is that this partly meant reducing the reliance on compiled in drivers. But 炸鱼薯条德里克 is also right that it includes much more (or it does at least now). – Philip Couling May 30 '19 at 8:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.