78 lines
2.3 KiB
Nix
78 lines
2.3 KiB
Nix
# 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
|
|
, devices ? { bootroot = "/dev/vda"; }
|
|
, ...
|
|
}:
|
|
|
|
{
|
|
# 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 = {
|
|
testbed-bootroot = {
|
|
type = "disk";
|
|
device = devices.bootroot;
|
|
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|