diff --git a/modules/system/activation/activation-script.nix b/modules/system/activation/activation-script.nix index 5c6ca55add82..8924041ae600 100644 --- a/modules/system/activation/activation-script.nix +++ b/modules/system/activation/activation-script.nix @@ -133,6 +133,7 @@ let /nix/var/nix/chroots mkdir -m 1777 -p /nix/var/nix/gcroots/per-user mkdir -m 1777 -p /nix/var/nix/profiles/per-user + mkdir -m 1777 -p /nix/var/nix/gcroots/tmp ln -sf /nix/var/nix/profiles /nix/var/nix/gcroots/ ln -sf /nix/var/nix/manifests /nix/var/nix/gcroots/ diff --git a/modules/system/boot/stage-2-init.sh b/modules/system/boot/stage-2-init.sh index 8859e5716ffb..834ad9548ed3 100644 --- a/modules/system/boot/stage-2-init.sh +++ b/modules/system/boot/stage-2-init.sh @@ -130,6 +130,10 @@ mkdir -m 1777 /tmp/.ICE-unix rm -rf /nix/var/nix/chroots # recreated in activate-configuration.sh +# Also get rid of temporary GC roots. +rm -rf /nix/var/nix/gcroots/tmp /nix/var/nix/temproots + + # Use a tmpfs for /var/run to ensure that / or /var can be unmounted # or at least remounted read-only during shutdown. (Upstart 0.6 # apparently uses nscd to do some name lookups, resulting in it