Hey folks, trying to use MicroVMs on my NixOS host:
{ config, lib, secret, ...}:
{
imports = [
# inputs.sops-nix.nixosModules.sops
./microvm.nix
# ../../../nixosModules/nextdns.nix
];
sops.secrets.nextdns-server-config = {
sopsFile = secret "nextdns-server-config";
format = "binary";
};
networking.hostName = "nextdns";
}
base config:
{ inputs, config, lib, pkgs, secretUploadDirectory, ...}:
let
hostName = config.networking.hostName;
baseDir = "/var/lib/microvms/${hostName}";
in
{
imports = [
inputs.sops-nix.nixosModules.sops
inputs.microvm.nixosModules.microvm
];
microvm = {
hypervisor = lib.mkDefault "cloud-hypervisor";
vcpu = lib.mkDefault 1;
hotplugMem = lib.mkDefault 1536;
socket = lib.mkDefault "control.socket";
shares = [
{
source = "/nix/store";
mountPoint = "/nix/.ro-store";
tag = "store";
proto = "virtiofs";
socket = "${baseDir}/store.socket";
}
{
source = "/persist/microvm/${hostName}/journal";
mountPoint = "/var/log/journal";
tag = "journal";
proto = "virtiofs";
socket = "journal.sock";
}
{
source = secretUploadDirectory;
mountPoint = "/var/lib/sops-nix";
tag = "sops-nix";
proto = "virtiofs";
readOnly = true;
socket = "${baseDir}/sops.socket";
}
{
source = "/persist/microvm/${hostName}/ssh";
mountPoint = "/etc/ssh";
tag = "ssh";
proto = "virtiofs";
socket = "${baseDir}/ssh.socket";
}
{
source = "/persist/microvm/${hostName}";
mountPoint = "/persist";
tag = "persist";
proto = "virtiofs";
socket = "${baseDir}/persist.socket";
}
];
writableStoreOverlay = "/nix/.rw-store";
volumes = [
{
image = "nix-store-overlay.img";
mountPoint = "/nix/.rw-store";
size = 2048;
}
];
interfaces = [
{
type = "tap";
id = "vm-${
if builtins.stringLength hostName <= 8
then hostName
else builtins.substring (builtins.stringLength hostName - 8) 8 hostName
}";
mac = let
hash = builtins.hashString "sha256" hostName;
octets = lib.genList (i: builtins.substring (i * 2) 2 hash) 5;
in "02:${lib.concatStringsSep ":" octets}";
}
];
};
fileSystems = lib.genAttrs (map (share: share.mountPoint) config.microvm.shares) (_: {
neededForBoot = true;
});
system.stateVersion = "25.11";
}
here is the error:
Jan 01 13:51:43 nextdns dbus-daemon[602]: Cannot setup inotify for '/nix/store/irz8md9brygv51qi83hsmhv8hqjbi6wq-system-path/share/dbus-1/system.d'; error 'Operation not supported'
Jan 01 13:51:43 nextdns systemd[1]: Started D-Bus System Message Bus.
Jan 01 13:51:43 nextdns dbus-daemon[602]: [system] Successfully activated service 'org.freedesktop.systemd1'
Jan 01 13:51:43 nextdns (networkd)[613]: systemd-networkd.service: Failed to execute /nix/store/2jfxgvg1fqabjp65aqdrk50ljfmkd6pl-systemd-258.2/lib/systemd/systemd-networkd: Operation not supported
Jan 01 13:51:43 nextdns (networkd)[613]: systemd-networkd.service: Failed at step EXEC spawning /nix/store/2jfxgvg1fqabjp65aqdrk50ljfmkd6pl-systemd-258.2/lib/systemd/systemd-networkd: Operation not supported
Jan 01 13:51:43 nextdns systemd[1]: systemd-networkd.service: Main process exited, code=exited, status=203/EXEC
Jan 01 13:51:43 nextdns systemd[1]: systemd-networkd.service: Failed with result 'exit-code'.
Jan 01 13:51:43 nextdns systemd[1]: Failed to start Network Configuration.
Jan 01 13:51:43 nextdns systemd[1]: Dependency failed for Enable Persistent Storage in systemd-networkd.
Jan 01 13:51:43 nextdns systemd[1]: systemd-networkd-persistent-storage.service: Job systemd-networkd-persistent-storage.service/start failed with result 'dependency'.
Jan 01 13:51:43 nextdns systemd[1]: systemd-networkd.service: Scheduled restart job, restart counter is at 4.
Jan 01 13:51:43 nextdns systemd[1]: Starting Network Configuration...
Jan 01 13:51:43 nextdns (networkd)[617]: systemd-networkd.service: Failed to execute /nix/store/2jfxgvg1fqabjp65aqdrk50ljfmkd6pl-systemd-258.2/lib/systemd/systemd-networkd: Operation not supported
Jan 01 13:51:43 nextdns (networkd)[617]: systemd-networkd.service: Failed at step EXEC spawning /nix/store/2jfxgvg1fqabjp65aqdrk50ljfmkd6pl-systemd-258.2/lib/systemd/systemd-networkd: Operation not supported
I really have no clue now…