NixOS
NixOS is a minimal and flexible Linux distribution which doesn’t use any of the existing package manager.
NixOS is a Linux distribution with a unique approach to package and configuration management. Built on top of the Nix package manager, it is completely declarative, makes upgrading systems reliable, and has many other advantages.
I wanted to test NixOS and see if it could be a candidate for a very minimal KVM hypervisor running just Qemu, libvirt and Apache CloudStack.
With this post I just wanted to share how you can quickly install NixOS inside a VirtualBox VM.
VirtualBox
On my desktop and laptop I usually use VirtualBox to quickly test something inside Virtual Machines. In this case I downloaded the NixOS minimal 64-bit ISO and created a VM:
- 1024MB of memory
- 8GB SATA disk
- NixOS ISO attached
Installation
After you start the VM it will boot from the ISO. You will then find yourself in a root prompt saying just nixos.
The first step is to format your disk and mount it under /mnt.
parted /dev/sda mklabel msdos parted /dev/sda mkpart primary 0% 100% mkfs.xfs /dev/sda1 mount /dev/sda1 /mnt
If you have that done you can run:
nixos-generate-config
This will generate /mnt/etc/nixos/configuration.nix from where you can configure your OS.
This is what I used as my configuration:
{ config, pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; boot.loader.grub.enable = true; boot.loader.grub.version = 2; boot.loader.grub.device = "/dev/sda"; boot.kernelPackages = pkgs.linuxPackages_4_1; time.timeZone = "Europe/Amsterdam"; networking.firewall.enable = false; environment.systemPackages = with pkgs; [ wget git screen ceph ]; services.openssh.enable = true; services.openssh.permitRootLogin = "yes"; virtualisation.libvirtd.enable = true; virtualisation.libvirtd.extraOptions = ["-l"]; virtualisation.libvirtd.extraConfig = "listen_tls = 0\nlisten_tcp = 1"; system.stateVersion = "15.09"; }
A minimal installation with just OpenSSH and libvirt installed.
Now you can actually install NixOS:
nixos-install
After a few minutes you will be prompted for a root-password and that’s it!
Reboot and you have a running NixOS installation 🙂