Ubuntu Minimum Distribution FTW

Ubuntu Linux is available to download in many different ISO files. The main website gives you version choices (14.04, 16.04, 16.10), hardware architecture choices (armhf, i386, x86_64), and GUI front end choices (Gnome, KDE, LXDE, FXCE, None). But there’s one special version of Ubuntu I wanted to let you know more about – the minimum distro. Each of the other ISO files you get to choose from actually only differ in the lists of packages they put on the ISO, and the selection of packages they install by default.

The wonderful thing about the minimum distro (mini.iso) is that it lies at the root of every single one of them. It doesn’t include ANY packages on the ISO file, you are forced to download them from an Internet repository, not even the installer. You have to download it all, but you also get the latest bugfixed version of everything, and spend no time on updates. In fact, it does take longer to download everything, than it does, for example, to install the minimum packages from the 16.04 ISO and do updates, but it also is safer, and like I said, you can avoid loads of unneeded packages being installed.

When you get to the part of the install where the base OS is installed, and you get to choose which additional packages to install, that menu includes every one of the other Ubuntu distros as options. In other words, using mini.iso, you can not only install a minimal server, you can install a normal Ubuntu desktop, or an Lubuntu server, or a Kubuntu desktop, all from one boot image.

Another thing about the minimum distro I like is its truly tiny footprint. I re-created my Mac’s Lab VM and reinstalled the OS on all my physical lab servers, and the base OS of each only uses about 2 GB of disk. Each LXD or Docker container only adds another 2 to 4 GB of disk usage. It makes my firewall’s 64 GB SSD seem plenty big enough, and the servers 256 GB SSD just enormous.

So now, instead of installing the Ubuntu Server minimum distro on my physical servers, then having to turn some of the services I don’t want running, I only install the minimum distro, and none of the junk ever gets installed. No Network Manager, no Avahi daemon, nothing.

Also finally figured out my VirtualBox networking issue that was preventing me from using LXC, LXD, or Docker guests that were bridged to my home lan. I finally found the guest’s Network Adapter Advanced settings, where I needed to set Promiscuous Mode to “Allow All”, AND power cycle the VM, not simply reboot. The vbox process must exit and restart for the setting to take effect. That’s it. Suddenly I can use my 32 GB iMac more effectively.