[NonPersistence] drop

This commit is contained in:
Antoine Viallon 2025-01-27 11:06:26 +01:00
parent e60c75cde6
commit 9c6a2050f2
Signed by: aviallon
GPG key ID: 186FC35EDEB25716
2 changed files with 0 additions and 61 deletions

View file

@ -15,7 +15,6 @@
./power.nix
./overlays.nix
./optimizations
./non-persistence.nix
./windows
];
}

View file

@ -1,60 +0,0 @@
{config, pkgs, lib, ...}:
with lib;
let
cfg = config.aviallon.non-persistence;
impermanenceSrc = builtins.fetchGit {
url = "https://github.com/nix-community/impermanence.git";
ref = "master";
rev = "ff2240b04ffb9322241b9f6374305cbf6a98a285";
};
persistFolder = "/persist";
impermanence = import "${impermanenceSrc}/nixos.nix";
mkLink = dest: src: ''L+ "${dest}" - - - - ${src}'';
mkDir = dest: ''d "${dest}" - - - -'';
mkPersist = path: concatLists [
(optional (dirOf path != path) (mkDir (dirOf path)))
[ (mkLink path "${persistFolder}/${path}") ]
];
in
{
imports = [
impermanence
];
options.aviallon.non-persistence = {
enable = mkEnableOption "non-persitent root";
};
config = mkIf cfg.enable {
assertions = [
{ assertion = hasAttr persistFolder config.fileSystems;
message = "A ${persistFolder} partition is needed for non-persistence";
}
{ assertion = hasAttr "/var/log" config.fileSystems;
message = "A /var/log separate parition is needed to avoid missing early logs.";
}
];
environment.etc = {
nixos.source = "${persistFolder}/etc/nixos";
NIXOS.source = "${persistFolder}/etc/NIXOS";
machine-id.source = "${persistFolder}/etc/machine-id";
};
systemd.tmpfiles.rules = mkAfter (traceValSeq (concatLists [
(mkPersist "/etc/NetworkManager/system-connections")
]));
fileSystems = {
"/var/log" = {
neededForBoot = true;
autoFormat = true;
label = "nixos-persistent-logs";
};
"${persistFolder}" = {
neededForBoot = true;
label = "nixos-persistent-data";
};
};
};
}