← Back to context

Comment by kokada

4 days ago

> /bin and /sbin, needed for system boot. /usr/bin and /usr/sbin for normal runtime.

Nowadays most Linux systems boot with initramfs, that is a compressed image that includes everything the system needs to boot, so you're basically saying /bin and /sbin is useless.

> initramfs, that is a compressed image that includes everything the system needs to boot

Not always (raise your hand if you've had an unbootable system due to a broken or insufficient initrd).

In retrospect, the whole concept of the initrd seems like an enormous kludge that was thrown together temporarily and became the permanent solution.

  • Yes of course it can break. The point is that the stuff needs to be in initramfs. "includes everything" has an implicit "when working".

    What seems bad about it to you? Initrd means you only need /boot (or equivalent) to be working at boot time, which seems nice to me. And looking at mine, the image is smaller than the kernel, so it's not wasting a ton of space.

    • More than once I've run into weird issues with missing filesystem drivers and other important things that caused me major grief during an emergency.

      Sure it could be blamed on shitty distro maintenance and development but a better architecture would be putting essential things like filesystem drivers in /boot without this extra kludge of rebuilding an initrd (that you hopefully didn't forget to do before typing reboot) which depends on a pile of config files set just right (and oh by the way different in literally every distro).

      1 reply →

  • I rather like it for embedded systems because I can pop a simple installer into it and bundle that with the kernel.

  • > initrd seems like an enormous kludge that was thrown together temporarily and became the permanent solution.

    Eh, kinda. That's where "essential" .ko modules are packed into - those that system would fail to boot without.

    Alternative is to compile them into kernel as built-ins, but from distro maintainers' perspective, that means including way too many modules, most of which will remain unused.

    If you're compiling your own kernel, that's a different story, often you can do without initrd just fine.