modularise out filesystem configuration, put /var/{tmp,cache,log} onto spare SSD

This commit is contained in:
Trolli Schmittlauch 2020-04-10 14:53:21 +02:00
parent 28d1fe6bbc
commit 3734b2d852
3 changed files with 52 additions and 36 deletions

View file

@ -5,7 +5,6 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
let let
fsOptions = [ "noatime" "ssd" "space_cache" "compress=zstd" ];
unstable = import <nixos-unstable> {}; unstable = import <nixos-unstable> {};
in in
@ -19,22 +18,6 @@ in
<home-manager/nixos> <home-manager/nixos>
]; ];
# encrypted partitions
boot.initrd.luks =
{
devices =
{
"system".device = "/dev/disk/by-uuid/85154131-b2a8-4ef5-9d74-47429cb267ef";
"cryptswap".device = "/dev/disk/by-uuid/ac586df6-6332-4809-beb1-f51906a2adaa";
};
reusePassphrases = true;
};
fileSystems."/".options = fsOptions ++ [ "subvol=nixos_root" "noatime" ];
fileSystems."/home".options = fsOptions ++ [ "subvol=home" "relatime" ];
boot.tmpOnTmpfs = true;
fileSystems."/tmp".fsType = "tmpfs";
services.davfs2.enable = true; services.davfs2.enable = true;
# try newer kernels # try newer kernels
@ -71,8 +54,6 @@ in
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
boot.kernelParams = [ "iwlwifi.fw_monitor=1" ]; # enable iwlwifi debugging
networking.hostName = "thinknix"; networking.hostName = "thinknix";
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
@ -93,6 +74,11 @@ in
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
# started in user sessions. # started in user sessions.
programs.bash.enableCompletion = true; programs.bash.enableCompletion = true;
programs.wireshark =
{
enable = true;
package = pkgs.wireshark-qt;
};
# programs.mtr.enable = true; # programs.mtr.enable = true;
# programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # programs.gnupg.agent = { enable = true; enableSSHSupport = true; };
@ -101,7 +87,7 @@ in
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
# services.openssh.enable = true; # services.openssh.enable = true;
programs.ssh.startAgent = true; #programs.ssh.startAgent = true;
# Open ports in the firewall. # Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedTCPPorts = [ ... ];
@ -127,10 +113,6 @@ in
enable = true; enable = true;
extraBackends = [ pkgs.hplip ]; extraBackends = [ pkgs.hplip ];
}; };
# nixpkgs.config.allowUnfreePredicate = (
# pkg:
# pkg.name == pkgs.hplipWithPlugin.name
# );
# Enable sound. # Enable sound.
sound.enable = true; sound.enable = true;
@ -164,7 +146,7 @@ in
xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ]; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ];
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.extraUsers.spiollinux = { users.users.spiollinux = {
isNormalUser = true; isNormalUser = true;
uid = 1000; uid = 1000;
extraGroups = [ "vboxusers" "wheel" "networkmanager" "scanner" "lp" "wireshark" "dialout" "cdrom" "input" ]; extraGroups = [ "vboxusers" "wheel" "networkmanager" "scanner" "lp" "wireshark" "dialout" "cdrom" "input" ];
@ -176,21 +158,13 @@ in
virtualisation.virtualbox.host.enable = true; virtualisation.virtualbox.host.enable = true;
users.extraGroups.vboxusers.members = [ "spiollinux" ]; users.extraGroups.vboxusers.members = [ "spiollinux" ];
# wireshark noroot gropu
users.groups.wireshark.gid = 500;
security.wrappers.dumpcap = {
source = "${pkgs.wireshark}/bin/dumpcap";
permissions = "u+xs,g+x";
owner = "root";
group = "wireshark";
};
programs.zsh = programs.zsh =
{ {
enable = true; enable = true;
autosuggestions.enable = true; autosuggestions.enable = true;
}; };
# profile sync daemon
services.psd.enable = true; services.psd.enable = true;
services.smartd = services.smartd =

View file

@ -1,5 +1,9 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
let
fsOptions = [ "noatime" "ssd" "space_cache" "compress=zstd" ];
in
{ {
imports = imports =
[ [
@ -16,10 +20,23 @@
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = []; boot.extraModulePackages = [];
# encrypted partitions
boot.initrd.luks =
{
devices =
{
"system".device = "/dev/disk/by-uuid/85154131-b2a8-4ef5-9d74-47429cb267ef";
"cryptswap".device = "/dev/disk/by-uuid/ac586df6-6332-4809-beb1-f51906a2adaa";
"ssd2".device = "/dev/disk/by-uuid/cadd4e1f-3642-4faa-8d4e-37dd85465df1";
};
reusePassphrases = true;
};
fileSystems."/" = fileSystems."/" =
{ {
device = "/dev/disk/by-uuid/cb5998ae-cfc9-447f-8756-1ceaec6ca4c4"; device = "/dev/disk/by-uuid/cb5998ae-cfc9-447f-8756-1ceaec6ca4c4";
fsType = "btrfs"; fsType = "btrfs";
options = fsOptions ++ [ "subvol=nixos_root" ];
}; };
fileSystems."/boot" = fileSystems."/boot" =
@ -33,8 +50,33 @@
{ {
device = "/dev/disk/by-uuid/cb5998ae-cfc9-447f-8756-1ceaec6ca4c4"; device = "/dev/disk/by-uuid/cb5998ae-cfc9-447f-8756-1ceaec6ca4c4";
fsType = "btrfs"; fsType = "btrfs";
options = fsOptions ++ [ "subvol=home" ];
}; };
fileSystems."/var/tmp" =
{
device = "/dev/disk/by-uuid/cd6b8f25-c029-49a6-b326-656faec3ce15";
fsType = "btrfs";
options = fsOptions ++ [ "subvol=vartmp" ];
};
fileSystems."/var/log" =
{
device = "/dev/disk/by-uuid/cd6b8f25-c029-49a6-b326-656faec3ce15";
fsType = "btrfs";
options = fsOptions ++ [ "subvol=varlog" ];
};
fileSystems."/var/cache" =
{
device = "/dev/disk/by-uuid/cd6b8f25-c029-49a6-b326-656faec3ce15";
fsType = "btrfs";
options = fsOptions ++ [ "subvol=varcache" ];
};
boot.tmpOnTmpfs = true;
fileSystems."/tmp".fsType = "tmpfs";
swapDevices = swapDevices =
[ [
{ device = "/dev/disk/by-uuid/bf928178-4e92-4e7e-8df2-18fbd658eecf"; } { device = "/dev/disk/by-uuid/bf928178-4e92-4e7e-8df2-18fbd658eecf"; }

View file

@ -71,8 +71,8 @@
#kmailtransport #kmailtransport
#kmbox #kmbox
#kmime #kmime
kontact #kontact
kontactinterface #kontactinterface
#korganizer #korganizer
#kpimtextedit #kpimtextedit
#libkdepim #libkdepim