summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Magnusson <mathias@magnusson.space>2025-11-23 19:13:40 +0100
committerMathias Magnusson <mathias@magnusson.space>2025-11-24 00:17:07 +0100
commitcffd1ca1dee075becdf91dae1a6bafa0ee072964 (patch)
tree7bfcd930531c88982c8366b8fd6fb0d6456badb8
parent23d1f05aa80f313f222d27c942b727343f8130c6 (diff)
downloadoden-cffd1ca1dee075becdf91dae1a6bafa0ee072964.tar.gz
add zfs
-rw-r--r--configuration.nix1
-rw-r--r--disko.nix131
2 files changed, 79 insertions, 53 deletions
diff --git a/configuration.nix b/configuration.nix
index 3528c89..3ea4a3a 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -23,6 +23,7 @@
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "oden";
+ networking.hostId = "0de6fce1"; # needed for zfs, taken from /etc/machine-id
# Set your time zone.
time.timeZone = "Europe/Stockholm";
diff --git a/disko.nix b/disko.nix
index cb4a05e..dd5bb26 100644
--- a/disko.nix
+++ b/disko.nix
@@ -1,63 +1,88 @@
{
- disko.devices.disk.main = {
- type = "disk";
- device = "/dev/nvme0n1";
- content = {
- type = "gpt";
- partitions.ESP = {
- priority = 1;
- name = "ESP";
- start = "1M";
- end = "512M";
- type = "EF00";
+ disko.devices = {
+ disk = {
+ main = {
+ type = "disk";
+ device = "/dev/nvme0n1";
content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [ "umask=0077" ];
- };
- };
- partitions.root = {
- size = "100%";
- content = {
- type = "btrfs";
- extraArgs = [ "-f" ];
- subvolumes = {
- "/root" = {
- mountpoint = "/";
- mountOptions = [
- "subvol=root"
- "compress=zstd"
- "noatime"
- ];
+ type = "gpt";
+ partitions.ESP = {
+ priority = 1;
+ name = "ESP";
+ start = "1M";
+ end = "512M";
+ type = "EF00";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ mountOptions = [ "umask=0077" ];
};
- "/home" = {
- mountpoint = "/home";
- mountOptions = [
- "subvol=home"
- "compress=zstd"
- "noatime"
- ];
- };
- "/nix" = {
- mountpoint = "/nix";
- mountOptions = [
- "subvol=nix"
- "compress=zstd"
- "noatime"
- ];
- };
- "/nix/persist" = {
- mountpoint = "/nix/persist";
- mountOptions = [
- "subvol=persist"
- "compress=zstd"
- "noatime"
- ];
+ };
+ partitions.root = {
+ size = "100%";
+ content = {
+ type = "btrfs";
+ extraArgs = [ "-f" ];
+ subvolumes = {
+ "/root" = {
+ mountpoint = "/";
+ mountOptions = [
+ "subvol=root"
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "/home" = {
+ mountpoint = "/home";
+ mountOptions = [
+ "subvol=home"
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "/nix" = {
+ mountpoint = "/nix";
+ mountOptions = [
+ "subvol=nix"
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ "/nix/persist" = {
+ mountpoint = "/nix/persist";
+ mountOptions = [
+ "subvol=persist"
+ "compress=zstd"
+ "noatime"
+ ];
+ };
+ };
};
};
};
};
+ draupner0 = {
+ type = "disk";
+ device = "/dev/disk/by-id/ata-ST8000VN004-3CP101_WWZ9VLCZ";
+ content = {
+ type = "zfs";
+ pool = "draupner";
+ };
+ };
+ };
+ zpool.draupner = {
+ type = "zpool";
+ rootFsOptions = {
+ compression = "lz4";
+ atime = "off";
+ acltype = "posixacl";
+ };
+ options.ashift = "12";
+ datasets.draupner = {
+ type = "zfs_fs";
+ mountpoint = "/media/draupner";
+ };
};
};