Improve disko declarations

main
Hektor Misplon 2025-11-17 21:20:00 +00:00
parent 5f65c9ad92
commit e8c9ea3af0
3 changed files with 105 additions and 66 deletions

View File

@ -1,4 +1,5 @@
{
lib,
inputs,
config,
pkgs,
@ -13,7 +14,11 @@
inputs.home-manager.nixosModules.default
./hard.nix
../../modules/bootloader.nix
../../modules/disko.zfs-encrypted-root.nix
(import ../../modules/disko.zfs-encrypted-root.nix {
device = "/dev/nvme1n1";
inherit lib;
inherit config;
})
../../modules/gnome.nix
../../modules/bluetooth.nix
../../modules/keyboard
@ -26,6 +31,26 @@
../../modules/ssh/hardened-openssh.nix
];
disko.devices = {
disk.data = {
type = "disk";
device = "/dev/nvme0n1";
content = {
type = "gpt";
partitions = {
data = {
size = "100%";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/data";
};
};
};
};
};
};
hardware = {
graphics.enable = true;
nvidia = {

View File

@ -1,4 +1,5 @@
{
lib,
inputs,
config,
pkgs,
@ -13,7 +14,11 @@
inputs.home-manager.nixosModules.default
./hard.nix
../../modules/bootloader.nix
../../modules/disko.zfs-encrypted-root.nix
(import ../../modules/disko.zfs-encrypted-root.nix {
inherit lib;
inherit config;
device = "/dev/nvme0n1";
})
../../modules/gnome.nix
../../modules/bluetooth.nix
../../modules/keyboard

View File

@ -1,78 +1,87 @@
{ lib, config, ... }:
{
disko.devices = {
disk = {
root = {
type = "disk";
device = "/dev/vda";
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "nofail" ];
options.device = lib.mkOption {
type = lib.types.str;
example = "/dev/nvme0n1";
};
config = {
disko.devices = {
disk = {
root = {
type = "disk";
device = config.device;
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "nofail" ];
};
};
};
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "zroot";
zfs = {
size = "100%";
content = {
type = "zfs";
pool = "zroot";
};
};
};
};
};
};
};
zpool = {
zroot = {
type = "zpool";
rootFsOptions = {
mountpoint = "none";
compression = "zstd";
acltype = "posixacl";
xattr = "sa";
"com.sun:auto-snapshot" = "true";
};
options.ashift = "12";
datasets = {
"root" = {
type = "zfs_fs";
options = {
encryption = "aes-256-gcm";
keyformat = "passphrase";
#keylocation = "file:///tmp/secret.key";
keylocation = "prompt";
};
mountpoint = "/";
};
"root/nix" = {
type = "zfs_fs";
options.mountpoint = "/nix";
mountpoint = "/nix";
zpool = {
zroot = {
type = "zpool";
rootFsOptions = {
mountpoint = "none";
compression = "zstd";
acltype = "posixacl";
xattr = "sa";
"com.sun:auto-snapshot" = "true";
};
options.ashift = "12";
datasets = {
"root" = {
type = "zfs_fs";
options = {
encryption = "aes-256-gcm";
keyformat = "passphrase";
#keylocation = "file:///tmp/secret.key";
keylocation = "prompt";
};
mountpoint = "/";
# README MORE: https://wiki.archlinux.org/title/ZFS#Swap_volume
"root/swap" = {
type = "zfs_volume";
size = "10M";
content = {
type = "swap";
};
options = {
volblocksize = "4096";
compression = "zle";
logbias = "throughput";
sync = "always";
primarycache = "metadata";
secondarycache = "none";
"com.sun:auto-snapshot" = "false";
"root/nix" = {
type = "zfs_fs";
options.mountpoint = "/nix";
mountpoint = "/nix";
};
# # README MORE: https://wiki.archlinux.org/title/ZFS#Swap_volume
# "root/swap" = {
# type = "zfs_volume";
# size = "10M";
# content = {
# type = "swap";
# };
# options = {
# volblocksize = "4096";
# compression = "zle";
# logbias = "throughput";
# sync = "always";
# primarycache = "metadata";
# secondarycache = "none";
# "com.sun:auto-snapshot" = "false";
# };
# };
};
};
};