firestar: Consolidate to one drive

This commit is contained in:
asonix 2024-05-05 22:17:53 -05:00
parent 2c2b0dd6d3
commit 4a28a9e671
3 changed files with 144 additions and 122 deletions

View file

@ -28,14 +28,19 @@ in
snapshot_preserve = "7d 5w"; snapshot_preserve = "7d 5w";
transaction_log = "/var/log/btrbk.log"; transaction_log = "/var/log/btrbk.log";
volume = { volume = {
"/btrfs/hdd" = volumeConfig [ "/btrfs/nvme1" = volumeConfig [
"@"
"@development"
"@documents" "@documents"
"@downloads" "@downloads"
"@home"
"@instantupload"
"@music" "@music"
"@pictures" "@notes"
"@photos"
"@root"
"@videos" "@videos"
]; ];
"/btrfs/nvme" = volumeConfig [ "@development" ];
}; };
}; };
}; };
@ -46,8 +51,7 @@ in
snapshot_preserve = "2h 2d"; snapshot_preserve = "2h 2d";
transaction_log = "/var/log/btrbk-games.log"; transaction_log = "/var/log/btrbk-games.log";
volume = { volume = {
"/btrfs/ssd" = volumeConfig [ "@games" ]; "/btrfs/nvme1" = volumeConfig [ "@games" ];
"/btrfs/nvme2" = volumeConfig [ "@games" ];
}; };
}; };
}; };

View file

@ -1,13 +1,12 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page, on
# and in the NixOS manual (accessible by running nixos-help). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
imports = imports =
[ [ # Include the results of the hardware scan.
# Include the results of the hardware scan.
./btrbk.nix ./btrbk.nix
./hardware-configuration.nix ./hardware-configuration.nix
./wireguard.nix ./wireguard.nix
@ -19,53 +18,55 @@
secret-key-files = /etc/nix/cache-priv-key.pem secret-key-files = /etc/nix/cache-priv-key.pem
''; '';
# Bootloader. # Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.efi.efiSysMountPoint = "/boot/efi";
# Setup keyfile boot.initrd.luks.devices."luks-18cf6425-3540-4121-9313-dc3307d8f42a".device = "/dev/disk/by-uuid/18cf6425-3540-4121-9313-dc3307d8f42a";
boot.initrd.secrets = {
"/crypto_keyfile.bin" = null;
"/keyfile" = null;
};
boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];
# Enable swap on luks
boot.initrd.luks.devices."luks-28ea4268-e74a-4ed7-9484-b113c676124e".device = "/dev/disk/by-uuid/28ea4268-e74a-4ed7-9484-b113c676124e";
boot.initrd.luks.devices."luks-28ea4268-e74a-4ed7-9484-b113c676124e".keyFile = "/crypto_keyfile.bin";
boot.initrd.luks.devices."cryptdrive4".device = "/dev/disk/by-uuid/d2119824-fe98-449b-9d1b-2ab552568493";
boot.initrd.luks.devices."cryptdrive4".keyFile = "/keyfile";
boot.initrd.luks.devices."cryptdrive3".device = "/dev/disk/by-uuid/99dd440d-c6ed-4149-85a1-e8f22a6f2535";
boot.initrd.luks.devices."cryptdrive3".keyFile = "/keyfile";
boot.initrd.luks.devices."cryptdrive2".device = "/dev/disk/by-uuid/fd0c26d4-db05-4218-826c-51a87dd39eb5";
boot.initrd.luks.devices."cryptdrive2".keyFile = "/keyfile";
boot.initrd.luks.devices."cryptdrive1".device = "/dev/disk/by-uuid/20515efa-5380-4116-946e-7fe527ed3b92";
boot.initrd.luks.devices."cryptdrive1".keyFile = "/keyfile";
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
boot.binfmt.emulatedSystems = [ "aarch64-linux" ]; boot.binfmt.emulatedSystems = [ "aarch64-linux" ];
fileSystems = { fileSystems = {
"/home/asonix/Development".options = [ "compress=zstd" ]; "/".options = ["compress=zstd"];
"/home/asonix/Diskimages".options = [ "compress=zstd" ]; "/home".options = ["compress=zstd"];
"/home/asonix/Documents".options = [ "compress=zstd" ]; "/nix".options = ["compress=zstd" "noatime"];
"/home/asonix/Downloads".options = [ "compress=zstd" ]; "/root".options = ["compress=zstd"];
"/home/asonix/Games".options = [ "compress=zstd" ]; "/var/log".options = ["compress=zstd"];
"/home/asonix/Games2".options = [ "compress=zstd" ]; "/home/asonix/Development".options = ["compress=zstd"];
"/home/asonix/Music".options = [ "compress=zstd" ]; "/home/asonix/Documents".options = ["compress=zstd"];
"/home/asonix/Pictures".options = [ "compress=zstd" ]; "/home/asonix/Downloads".options = ["compress=zstd"];
"/home/asonix/Videos".options = [ "compress=zstd" ]; "/home/asonix/Games".options = ["compress=zstd"];
"/home/asonix/InstantUpload".options = ["compress=zstd"];
"/home/asonix/Music".options = ["compress=zstd"];
"/home/asonix/Pictures".options = ["compress=zstd"];
"/home/asonix/Videos".options = ["compress=zstd"];
}; };
networking.hostName = "firestar"; # Define your hostname. networking.hostName = "firestar"; # Define your hostname.
services.btrfs.autoScrub = {
enable = true;
interval = "weekly";
fileSystems = [
"/"
"/home"
"/root"
"/var/log"
"/home/asonix/Development"
"/home/asonix/Documents"
"/home/asonix/Downloads"
"/home/asonix/Games"
"/home/asonix/InstantUpload"
"/home/asonix/Music"
"/home/asonix/Pictures"
"/home/asonix/Videos"
];
};
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ];
@ -74,12 +75,27 @@
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
# This value determines the NixOS release from which the default # Copy the NixOS configuration file and link it from the resulting system
# settings for stateful data, like file locations and database versions # (/run/current-system/configuration.nix). This is useful in case you
# on your system were taken. It's perfectly fine and recommended to leave # accidentally delete configuration.nix.
# this value at the release version of the first install of this system. # system.copySystemConfiguration = true;
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # This option defines the first version of NixOS you have installed on this particular machine,
system.stateVersion = "22.05"; # Did you read the comment? # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
} }

View file

@ -9,108 +9,110 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ]; boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "ahci" "nvme" "usbhid" "uas" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = fileSystems."/" =
{ device = "/dev/disk/by-uuid/09ed1efd-4baa-42f3-840b-6c4635f3acea"; { device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "ext4"; fsType = "btrfs";
options = [ "subvol=@" ];
}; };
boot.initrd.luks.devices."luks-0da55fa3-569a-4687-ab82-7618c5c8ec0a".device = "/dev/disk/by-uuid/0da55fa3-569a-4687-ab82-7618c5c8ec0a"; boot.initrd.luks.devices."cryptextroot".device = "/dev/disk/by-uuid/24d40dee-98f9-4126-8fed-fa6d433cf90d";
fileSystems."/boot/efi" = fileSystems."/root" =
{ device = "/dev/disk/by-uuid/53F9-82A1"; { device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@root" ];
};
fileSystems."/home" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@home" ];
};
fileSystems."/var/log" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@log" ];
};
fileSystems."/btrfs/nvme1" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/9881-231B";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = [ "fmask=0022" "dmask=0022" ];
}; };
fileSystems."/btrfs/nvme" =
{ device = "/dev/disk/by-uuid/344b7e72-1098-448e-9d4f-8170af224605";
fsType = "btrfs";
};
boot.initrd.luks.devices."cryptdrive1".device = "/dev/disk/by-uuid/20515efa-5380-4116-946e-7fe527ed3b92";
fileSystems."/home/asonix/Development" =
{ device = "/dev/disk/by-uuid/344b7e72-1098-448e-9d4f-8170af224605";
fsType = "btrfs";
options = [ "subvol=@development" ];
};
fileSystems."/btrfs/ssd" =
{ device = "/dev/disk/by-uuid/60d35aa5-d38d-4070-9c90-c5adaed90862";
fsType = "btrfs";
};
boot.initrd.luks.devices."cryptdrive3".device = "/dev/disk/by-uuid/99dd440d-c6ed-4149-85a1-e8f22a6f2535";
fileSystems."/home/asonix/Games" = fileSystems."/home/asonix/Games" =
{ device = "/dev/disk/by-uuid/60d35aa5-d38d-4070-9c90-c5adaed90862"; { device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@games" ]; options = [ "subvol=@games" ];
}; };
fileSystems."/btrfs/nvme2" =
{ device = "/dev/disk/by-uuid/fe880346-4ec8-4c64-8992-60127a484147";
fsType = "btrfs";
};
boot.initrd.luks.devices."cryptdrive2".device = "/dev/disk/by-uuid/fd0c26d4-db05-4218-826c-51a87dd39eb5";
fileSystems."/home/asonix/Games2" =
{ device = "/dev/disk/by-uuid/fe880346-4ec8-4c64-8992-60127a484147";
fsType = "btrfs";
options = [ "subvol=@games" ];
};
fileSystems."/btrfs/hdd" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e";
fsType = "btrfs";
};
boot.initrd.luks.devices."cryptdrive4".device = "/dev/disk/by-uuid/d2119824-fe98-449b-9d1b-2ab552568493";
fileSystems."/home/asonix/Videos" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e";
fsType = "btrfs";
options = [ "subvol=@videos" ];
};
fileSystems."/home/asonix/Pictures" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e";
fsType = "btrfs";
options = [ "subvol=@pictures" ];
};
fileSystems."/home/asonix/Diskimages" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e";
fsType = "btrfs";
options = [ "subvol=@diskimages" ];
};
fileSystems."/home/asonix/Music" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e";
fsType = "btrfs";
options = [ "subvol=@music" ];
};
fileSystems."/home/asonix/Documents" = fileSystems."/home/asonix/Documents" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e"; { device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@documents" ]; options = [ "subvol=@documents" ];
}; };
fileSystems."/home/asonix/Downloads" = fileSystems."/home/asonix/Downloads" =
{ device = "/dev/disk/by-uuid/bce8bc87-faf2-4b9e-90d2-cb8281c40c7e"; { device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs"; fsType = "btrfs";
options = [ "subvol=@downloads" ]; options = [ "subvol=@downloads" ];
}; };
fileSystems."/home/asonix/Pictures" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@photos" ];
};
fileSystems."/home/asonix/Videos" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@videos" ];
};
fileSystems."/home/asonix/Music" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@music" ];
};
fileSystems."/home/asonix/InstantUpload" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@instantupload" ];
};
fileSystems."/home/asonix/Notes" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@notes" ];
};
fileSystems."/home/asonix/Development" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@development" ];
};
fileSystems."/nix" =
{ device = "/dev/disk/by-uuid/fe8523dd-a04e-4f47-8ba8-f3874e51b06c";
fsType = "btrfs";
options = [ "subvol=@nix" ];
};
swapDevices = swapDevices =
[ { device = "/dev/disk/by-uuid/ec3f1ad9-5f72-4a8e-8562-f25156c936a2"; } [ { device = "/dev/disk/by-uuid/bc06c7f7-46e2-4372-aa79-ddb5150f35e8"; }
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking