u/sweatandgain

Is there any "real" downside to running Alpine straight out of initramfs?

Is there any "real" downside to running Alpine straight out of initramfs?

I'm a pretty long-term Linux user and avid distro-hopper. For a couple of years now, I've been using Alpine on my headless servers and it's been great.

On my laptop, I've recently been enjoying immutable distros (cycling through Fedora variants), and I finally got around to wanting to build my own custom one with bootc with all the software I care about, exactly how I want it.

I thought about moving my servers to Fedora as well and just making bootc images for each use case they have. I was up and running pretty quick, but the sheer size of a "minimal" Fedora image with systemd and all that was just silly for what it does.

That got me thinking about how I could make immutable Alpine images instead, which eventually led me down a rabbit-hole to ideas like Frood: https://words.filippo.io/frood/

My Alpine server image is genuinely tiny. The entire full image is smaller than Fedora's initramfs by an order of magnitude. So, I thought, why not skip a boot phase, speed up my startup, and run the whole thing from initramfs in memory.

If anyone has tried this, are there any real downsides to it? I don't mean "if you someday want to do XYZ, it'll be tough" - but like, "this is a bad idea today because of XYZ".

I've already built the system, it appears to work just fine on my hardware for the past week, but I assume there are some known unknowns I might be walking into. I've got a mounted FS for any persistence I might need, and I re-build and re-install if there are missing packages or updates I want.

*I should note that I've done this sorta thing for embedded ARM systems for years using Buildroot and Yocto, so building/maintaining a kernel, filesystem, and bootloaders is fine. I've never thought to try this on x86 as I just assumed it was much harder than it ended up being.

u/sweatandgain — 11 hours ago