Added Disko setup; And test impermanence on node 1 & 2

This commit is contained in:
2026-06-27 21:43:29 +02:00
parent e2e63fbcab
commit 57f6b25a9e
10 changed files with 254 additions and 164 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/sda"; # change to your actual disk, e.g. /dev/nvme0n1
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
+3 -22
View File
@@ -31,29 +31,10 @@
"mode=755"
];
};
"/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
};
"/nix" = {
device = "/dev/disk/by-label/NIXSTORE";
fsType = "ext4";
neededForBoot = true;
};
"/persist" = {
device = "/dev/disk/by-label/NIXPERSIST";
fsType = "ext4";
neededForBoot = true;
};
};
swapDevices = [
{ device = "/dev/disk/by-label/NIXSWAP"; }
];
"/nix".neededForBoot = true;
"/persist".neededForBoot = true;
};
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+1
View File
@@ -1,5 +1,6 @@
{
imports = [
./disko.nix
./hardware-configuration.nix
];
+68
View File
@@ -0,0 +1,68 @@
{
disko.devices.disk.main = {
type = "disk";
device = "/dev/sda";
content = {
type = "gpt";
partitions = {
ESP = {
size = "512M";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"fmask=0022"
"dmask=0022"
];
extraArgs = [
"-n"
"NIXBOOT"
];
};
};
swap = {
size = "4G";
content = {
type = "swap";
extraArgs = [
"-L"
"NIXSWAP"
];
};
};
nix = {
size = "50G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/nix";
mountOptions = [ "defaults" ];
extraArgs = [
"-L"
"NIXSTORE"
];
};
};
persist = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/persist";
extraArgs = [
"-L"
"NIXPERSIST"
];
};
};
};
};
};
}
+3 -25
View File
@@ -31,32 +31,10 @@
"mode=755"
];
};
"/boot" = {
device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [
"fmask=0022"
"dmask=0022"
];
};
"/nix" = {
device = "/dev/disk/by-label/NIXSTORE";
fsType = "ext4";
neededForBoot = true;
};
"/persist" = {
device = "/dev/disk/by-label/NIXPERSIST";
fsType = "ext4";
neededForBoot = true;
};
};
swapDevices = [
{
device = "/persist/swapfile";
size = 4096;
}
];
"/nix".neededForBoot = true;
"/persist".neededForBoot = true;
};
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}
+80
View File
@@ -0,0 +1,80 @@
{ modulesPath, pkgs, ... }:
{
imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ];
boot.zfs.forceImportRoot = false;
time.timeZone = "Europe/Berlin";
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
};
services.openssh = {
enable = true;
openFirewall = true;
settings = {
PermitRootLogin = "yes";
PasswordAuthentication = false;
};
};
users.users = {
root.openssh.authorizedKeys.keyFiles = [
../../secrets/ssh-key
];
phil = {
isNormalUser = true;
password = "nixos";
extraGroups = [ "wheel" ];
openssh.authorizedKeys.keyFiles = [
../../secrets/ssh-key
];
};
};
security.sudo = {
enable = true;
wheelNeedsPassword = false;
};
networking = {
useNetworkd = true;
useDHCP = false;
firewall.enable = false;
};
systemd.network = {
enable = true;
networks."10-ethernet" = {
matchConfig.Name = "en*";
networkConfig = {
Address = "192.168.2.99/24";
Gateway = "192.168.2.1";
DNS = "192.168.2.2";
DHCP = "no";
};
};
};
environment.systemPackages = with pkgs; [
htop
lsscsi
pciutils
usbutils
nvme-cli
];
system.stateVersion = "26.05";
}