{ imports = [ ../../common/services/snapper.nix ]; # You need to make the snapshot directories manually: # sudo rm -rf /.snapshots /home/.snapshots /nix/.snapshots # sudo btrfs subvolume create /.snapshots # sudo btrfs subvolume create /nix/.snapshots # sudo btrfs subvolume create /home/.snapshots # sudo btrfs subvolume create /Storage/.snapshots # extra configs services.snapper.configs.Storage = { TIMELINE_CREATE = true; TIMELINE_CLEANUP = true; SUBVOLUME = "/Storage"; }; services.btrfs.autoScrub.enable = true; services.btrfs.autoScrub.interval = "weekly"; disko.devices.disk.nvme0 = { device = "/dev/nvme0n1"; content = { type = "table"; format = "gpt"; partitions = [ { name = "BOOT"; start = "0%"; end = "550MiB"; bootable = true; flags = [ "esp" ]; fs-type = "fat32"; content = { type = "filesystem"; format = "vfat"; mountpoint = "/boot"; }; } # partition 1 (ESP) { name = "LUKS"; start = "550MiB"; end = "100%"; content = { type = "luks"; name = "ROOT"; extraOpenArgs = [ "--allow-discards" ]; content = { type = "btrfs"; extraArgs = [ "-f" ]; subvolumes = { "/root" = { mountpoint = "/"; mountOptions = [ "compress=zstd" "noatime" ]; }; # root "/home" = { mountpoint = "/home"; mountOptions = [ "compress=zstd" "noatime" ]; }; # home "/nix" = { mountpoint = "/nix"; mountOptions = [ "compress=zstd" "noatime" ]; }; # nix "/Storage" = { mountpoint = "/Storage"; mountOptions = [ "compress=zstd" "noatime" ]; }; # Storage }; # subvolumes }; # content.content }; # content } # partition 2 (/ BTRFS) ]; # partitions }; # content }; # disko.devices.disk.nvme0 } # root