# sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode disko /persist/dots/hosts/nixos-testbed/disko-config.nix # time sudo nixos-install --flake /persist/dots#nixos-testbed { lib, ... }: { # imports = [ disko.nixosModules.disko ]; boot.initrd.supportedFilesystems.btrfs = true; boot.supportedFilesystems.btrfs = true; # From Impermanence's README: "Important note: Make sure your persistent # volumes are marked with neededForBoot, otherwise you will run into # problems." fileSystems."/persist".neededForBoot = true; disko.devices = { disk = { bootroot = { type = "disk"; device = "/dev/disk/by-id/ata-Samsung_SSD_870_EVO_1TB_S75BNL0WA33853H"; content = { type = "gpt"; partitions = { ESP = { size = "512M"; type = "EF00"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; mountOptions = [ "umask=0077" ]; }; }; root = { size = "100%"; content = { type = "btrfs"; mountpoint = "/partition-root"; swap.swapfile.size = "4G"; # Override existing partitions. extraArgs = [ "-f" ]; # Subvolumes must set a mountpoint in order to be mounted, # *unless their parent is mounted*. subvolumes = { # Subvolume names do not necessarily correspond to # mountpoints, despite the structural resemblance to a file # path. "/rootfs" = { mountpoint = "/"; }; "/nix" = { mountpoint = "/nix"; }; "/persist" = { mountpoint = "/persist"; }; "/persist/home" = { mountpoint = "/persist/home"; }; "/swap" = { mountpoint = "/.swapvol"; swap.swapfile.size = "4G"; }; }; }; }; }; }; }; }; }; }