# Configuration common to all my encrypted Linode VMs
{
  config,
  pkgs,
  lib,
  ...
}: {
  imports = [
    # Import the NixOS Qemu guest settings
    <nixpkgs/nixos/modules/profiles/qemu-guest.nix>
  ];

  boot = {
    extraModulePackages = [];
    initrd = {
      availableKernelModules = ["virtio_pci" "ahci" "sd_mod"];
      kernelModules = ["dm-snapshot"];
      luks = {
        devices = {
          root = {
            device = "/dev/sdb";
            preLVM = true;
          };
        };
      };
    };
    kernelModules = [];
    kernelParams = ["console=ttyS0,19200n8"];
    loader = {
      grub = {
        forceInstall = true;
        version = 1;
        extraPerEntryConfig = "root (hd0)";
        extraConfig = ''
          serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
          terminal_input serial;
          terminal_output serial
        '';
        device = "nodev";
      };
      timeout = 10;
    };
  };

  # File systems configuration for the Linode VMs
  fileSystems."/" = {
    device = "/dev/disk/by-label/nixos";
    fsType = "ext4";
  };

  swapDevices = [{device = "/dev/disk/by-label/swap";}];

  nix.settings.max-jobs = lib.mkDefault 8;
}