this post was submitted on 27 May 2026
101 points (100.0% liked)

Linux

65528 readers
276 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 7 years ago
MODERATORS
 

I run dnstools.ws which lets you perform DNS lookups, pings, traceroutes, etc. from 25 locations around the world. Each location is powered by a VPS running Debian, running a C# service that's compiled to native code ahead-of-time using Native AOT. It uses ~60MB RAM.

Six of the the locations are powered by tiny "NAT VPSes" (native IPv6 with shared NAT IPv4) that only cost a few dollars a year, sponsored by various server providers. These usually have 256 MB RAM and 4-5 GB disk space.

This is great with OpenVZ and LXC. Since they're containers that share the kernel with the host, kernel memory doesn't count towards the container's memory limit. I'm using ~75 MB RAM on those systems: ~60MB for the DNSTools worker and ~15MB for everything else (sshd, systemd, cron, rsyslogd, and unattended-upgrades). Plenty of room left.

I also have a few KVM systems with 256 MB RAM. These are what I'm struggling with.

Debian 13 (Trixie) increased the minimum hardware requirements from 256 MB to 512 MB RAM. It seems like this is a hard requirement - When running on a system using 256 MB RAM, the installer complains about having too little RAM, and OOMs during the installation. Even with a successful installation (e.g. upgrading from bookworm to trixie), it kernel panics on boot: "System is deadlocked on memory".

I could try debootstrap to bootstrap a basic system, or Clonezilla to clone a working disk image over the network, but I think I'd hit the memory deadlock too.

Does Debian have smaller kernel images for VM environments, that use less RAM? Or should I just give up on Debian for this use case?

Does anyone have a recommendation for another distro I should use? I've been considering trying Alpine. C# does support compiling to use musl instead of glibc, so that's not an issue. I'm also not tightly-coupled to systemd and can get rid of it.

I can mount a custom ISO on the systems, so booting from an ISO isn't an issue.

Thanks!

Edit: Alpine looks very promising - no issue installing it and running my app on a 256MB VM. This is probably what I'll end up using.

you are viewing a single comment's thread
view the rest of the comments
[–] rrq@mastodon.au 2 points 3 days ago* (last edited 3 days ago) (1 children)

@dan @RIotingPacifist A "normal" debian starts by unpacking the initrd, which is into ram, so you'd need enough to cover that, plus initial runtime. Most likely you will need to tailor your initrd; i.e. go non-standard.

[–] dan@upvote.au 2 points 3 days ago (1 children)

That's what I was thinking. I might try the cloud kernel (linux-image-cloud-amd64). It only has drivers required for VM platforms, so maybe the initramfs might be smaller? Otherwise I could build a custom one with just the things I need (only ext4 and swap, only drivers for KVM, etc).

I'm trying Alpine as well, which looks promising.

[–] nyan@sh.itjust.works 1 points 2 days ago

If you're not encrypting or RAIDing your root fs, you may be able to get away without an initrd at all. You just need to make sure you build enough drivers into the kernel to be able to mount the root fs. Once that's done, the kernel will be able to late-load any other needed modules or firmware. (The machine I'm typing on right now has no initrd, and neither do any of my others.)