From f53da444568b41d5fb49a6fcf216573ba3dbb8c5 Mon Sep 17 00:00:00 2001 From: andromeda Date: Tue, 30 Dec 2025 02:04:26 +0100 Subject: [PATCH] add btrfs root --- machines/laptop/hardware-configuration.nix | 33 ++++++++++++++++++++-- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/machines/laptop/hardware-configuration.nix b/machines/laptop/hardware-configuration.nix index e0a98d9..654a931 100644 --- a/machines/laptop/hardware-configuration.nix +++ b/machines/laptop/hardware-configuration.nix @@ -18,11 +18,38 @@ boot.extraModulePackages = []; fileSystems."/" = { - device = "none"; - fsType = "tmpfs"; - options = ["defaults" "size=60%" "mode=755"]; + #device = "none"; + #fsType = "tmpfs"; + #options = ["defaults" "size=60%" "mode=755"]; + device = "/dev/disk/by-uuid/16c93673-4f0e-4010-a7f4-7ccffb20edb7"; + fsType = "btrfs"; }; + boot.initrd.postResumeCommands = lib.mkAfter '' + mkdir /btrfs_tmp + mount ${config.fileSystems."/".device} /btrfs_tmp + if [[ -e /btrfs_tmp/root ]]; then + mkdir -p /btrfs_tmp/old_roots + timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:$M:%S") + mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp" + fi + + delete_subvolume_recursively() { + IFS=$'\n' + for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do + delete_subvolume_recursively "/btrfs_tmp/$i" + done + btrfs subvolume delete "$1" + } + + for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do + delete_subvolume_recursively "$i" + done + + btrfs subvolume create /btrfs_tmp/root + umount /btrfs_tmp + ''; + fileSystems."/nix" = { device = "/dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6"; fsType = "btrfs";