consolidate filesystems./ across devices

This commit is contained in:
2022-12-28 01:36:22 +00:00
parent f5fbc206f5
commit 4bdb34775d
5 changed files with 20 additions and 41 deletions

View File

@@ -1,16 +1,7 @@
{ ... }: { ... }:
{ {
# root is a tmpfs so that we have an ephemeral system ("impermanence" handles the state) sane.impermanence.root-on-tmpfs = true;
fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = [
"mode=755"
"size=1G"
"defaults"
];
};
# we need a /tmp for building large nix things. # we need a /tmp for building large nix things.
# a cross-compiled kernel, particularly, will easily use 30+GB of tmp # a cross-compiled kernel, particularly, will easily use 30+GB of tmp
fileSystems."/tmp" = { fileSystems."/tmp" = {

View File

@@ -1,16 +1,7 @@
{ ... }: { ... }:
{ {
# root is a tmpfs so that we have an ephemeral system ("impermanence" handles the state) sane.impermanence.root-on-tmpfs = true;
fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = [
"mode=755"
"size=1G"
"defaults"
];
};
# we need a /tmp of default size (half RAM) for building large nix things # we need a /tmp of default size (half RAM) for building large nix things
fileSystems."/tmp" = { fileSystems."/tmp" = {
device = "none"; device = "none";

View File

@@ -1,17 +1,7 @@
{ ... }: { ... }:
{ {
# root is a tmpfs so that we have an ephemeral system ("impermanence" handles the state) sane.impermanence.root-on-tmpfs = true;
fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = [
"mode=755"
"size=1G"
"defaults"
];
};
fileSystems."/nix" = { fileSystems."/nix" = {
device = "/dev/disk/by-uuid/1f1271f8-53ce-4081-8a29-60a4a6b5d6f9"; device = "/dev/disk/by-uuid/1f1271f8-53ce-4081-8a29-60a4a6b5d6f9";
fsType = "btrfs"; fsType = "btrfs";

View File

@@ -1,16 +1,7 @@
{ ... }: { ... }:
{ {
# root is a tmpfs so that we have an ephemeral system ("impermanence" handles the state) sane.impermanence.root-on-tmpfs = true;
fileSystems."/" = {
device = "none";
fsType = "tmpfs";
options = [
"mode=755"
"size=1G"
"defaults"
];
};
# we need a /tmp for building large nix things # we need a /tmp for building large nix things
fileSystems."/tmp" = { fileSystems."/tmp" = {
device = "none"; device = "none";

View File

@@ -16,6 +16,11 @@ in
default = false; default = false;
type = types.bool; type = types.bool;
}; };
sane.impermanence.root-on-tmpfs = mkOption {
default = false;
type = types.bool;
description = "define / to be a tmpfs. make sure to mount some other device to /nix";
};
sane.impermanence.home-dirs = mkOption { sane.impermanence.home-dirs = mkOption {
default = []; default = [];
type = types.listOf (types.either types.str (types.attrsOf types.str)); type = types.listOf (types.either types.str (types.attrsOf types.str));
@@ -38,6 +43,17 @@ in
map-sys-dirs = map-dirs { user = "root"; group = "root"; mode = "0755"; directory = ""; }; map-sys-dirs = map-dirs { user = "root"; group = "root"; mode = "0755"; directory = ""; };
in mkIf cfg.enable { in mkIf cfg.enable {
fileSystems."/" = lib.mkIf cfg.root-on-tmpfs {
device = "none";
fsType = "tmpfs";
options = [
"mode=755"
"size=1G"
"defaults"
];
};
# XXX: why is this necessary?
sane.image.extraDirectories = [ "/nix/persist/var/log" ]; sane.image.extraDirectories = [ "/nix/persist/var/log" ];
environment.persistence."/nix/persist" = { environment.persistence."/nix/persist" = {
directories = (map-home-dirs cfg.home-dirs) ++ (map-sys-dirs [ directories = (map-home-dirs cfg.home-dirs) ++ (map-sys-dirs [