From f7fe0becd118efef3157f27dd225ac34fb70d72b Mon Sep 17 00:00:00 2001 From: muon Date: Thu, 31 Jul 2025 18:04:02 +0000 Subject: [PATCH] Fix murk --- README.md | 5 ++- hosts/murk/configuration.nix | 9 ++--- hosts/murk/disk-config.nix | 6 +-- hosts/murk/hardware-configuration.nix | 57 ++++++++++++++++++++++++--- modules/home/impermanence.nix | 17 ++++---- 5 files changed, 71 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index ff58ed5..d213455 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,10 @@ ```sh git clone https://codeberg.org/muon/home && cd home sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount hosts/$(hostname)/disk-config.nix -sudo btrfs subvolume snapshot -r /mnt /mnt/root-blank +sudo mkdir /tmp/mnt +sudo mount /dev/mapper/crypted /tmp/mnt +sudo btrfs subvolume snapshot -r /tmp/mnt/root /tmp/mnt/root-blank +sudo umount /tmp/mnt sudo nixos-generate-config --root /mnt cp /mnt/etc/nixos/hardware-configuration.nix hosts/$(hostname)/hardware-configuration.nix sudo nixos-install --root /mnt --no-root-passwd --flake .#$(hostname) diff --git a/hosts/murk/configuration.nix b/hosts/murk/configuration.nix index a500b4a..5f9f24c 100644 --- a/hosts/murk/configuration.nix +++ b/hosts/murk/configuration.nix @@ -5,10 +5,9 @@ in { # Hardware imports = [ ./hardware-configuration.nix - ./disk-config.nix inputs.impermanence.nixosModules.impermanence - (inputs.nixpkgs - + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix") + # (inputs.nixpkgs + # + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix") ]; environment.systemPackages = with inputs.nix-alien.packages.${system}; @@ -22,13 +21,13 @@ in { # Modules mods.desktop.enable = true; - mods.boot.enable = false; + mods.boot.enable = true; mods.theme.enable = true; mods.theme.scheme = "woodland"; mods.theme.wallpaper = ./wallpaper.png; - mods.impermanence.enable = false; + mods.impermanence.enable = true; services.xserver.windowManager.i3.enable = true; diff --git a/hosts/murk/disk-config.nix b/hosts/murk/disk-config.nix index 1154668..2e47e57 100644 --- a/hosts/murk/disk-config.nix +++ b/hosts/murk/disk-config.nix @@ -1,9 +1,9 @@ -{ inputs }: { - inputs.disko.devices = { +{ + disko.devices = { disk = { main = { type = "disk"; - device = "/dev/disk/by-diskseq/1"; + device = "/dev/sda"; content = { type = "gpt"; partitions = { diff --git a/hosts/murk/hardware-configuration.nix b/hosts/murk/hardware-configuration.nix index d986145..6ea19ce 100644 --- a/hosts/murk/hardware-configuration.nix +++ b/hosts/murk/hardware-configuration.nix @@ -4,16 +4,61 @@ { config, lib, pkgs, modulesPath, ... }: { - imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = - [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - boot.supportedFilesystems = [ "zfs" "ntfs" "btrfs" ]; - networking.useDHCP = lib.mkDefault true; + fileSystems."/" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + boot.initrd.luks.devices."crypted".device = "/dev/disk/by-uuid/1ca0c5f6-3cb3-4f86-94a5-4376461da227"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4BD8-A887"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + fileSystems."/home" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/nix" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/persist" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=persist" ]; + }; + + fileSystems."/swap" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=swap" ]; + }; + + fileSystems."/var/log" = + { device = "/dev/mapper/crypted"; + fsType = "btrfs"; + options = [ "subvol=log" ]; + }; + + swapDevices = [ ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/modules/home/impermanence.nix b/modules/home/impermanence.nix index db544ce..5c910f3 100644 --- a/modules/home/impermanence.nix +++ b/modules/home/impermanence.nix @@ -9,17 +9,18 @@ let # fs-diff.sh set -euo pipefail - OLD_TRANSID=$(sudo btrfs subvolume find-new /mnt/root-blank 9999999) - OLD_TRANSID=${OLD_TRANSID} + sudo mkdir /btrfs_tmp + sudo mount -o subvol=/ /dev/mapper/crypted /btrfs_tmp - sudo mkdir /mnt - sudo mount -o subvol=/ /dev/mapper/crypted /mnt - sudo btrfs subvolume find-new "/mnt/root" "$OLD_TRANSID" | - sed \'$d\' | + OLD_TRANSID=$(sudo btrfs subvolume find-new /btrfs_tmp/root-blank 9999999) + OLD_TRANSID=''${OLD_TRANSID#transid marker was } + + sudo btrfs subvolume find-new "/btrfs_tmp/root" "$OLD_TRANSID" | + sed '$d' | cut -f17- -d' ' | sort | uniq | - while read path; do + while read -r path; do path="/$path" if [ -L "$path" ]; then : # The path is a symbolic link, so is probably handled by NixOS already @@ -29,7 +30,7 @@ let echo "$path" fi done - sudo umount /mnt + sudo umount /btrfs_tmp ''; }; in with lib; {