summaryrefslogtreecommitdiff
path: root/modules/xnet/disk.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/xnet/disk.nix')
-rw-r--r--modules/xnet/disk.nix139
1 files changed, 0 insertions, 139 deletions
diff --git a/modules/xnet/disk.nix b/modules/xnet/disk.nix
deleted file mode 100644
index caef61d..0000000
--- a/modules/xnet/disk.nix
+++ /dev/null
@@ -1,139 +0,0 @@
-{ config, lib, modulesPath, ... }:
-let
- cfg = config.xnet.disk;
- commonOpts = {
- acltype = "posixacl";
- atime = "off";
- compression = "on";
- normalization = "formD";
- relatime = "off";
- xattr = "sa";
- "com.sun:auto-snapshot" = "false";
- };
-
- inherit (lib) mkOption mkDefault mkIf types;
-in
-{
- imports = [
- (modulesPath + "/installer/scan/not-detected.nix")
- ];
-
- options.xnet.disk = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Apply xnet-standard ZFS disk layout.";
- };
-
- device = mkOption {
- type = types.str;
- description = "Device used for zroot ZFS pool.";
- };
- };
-
- config = mkIf cfg.enable {
- networking.hostId = builtins.substring 0 8
- (builtins.hashString "md5" config.networking.hostName);
-
- services.zfs = {
- autoScrub.enable = true;
- trim.enable = true;
- };
-
- # With root running in memory, swap should be required unless
- # otherwise specified
- zramSwap.enable = mkDefault true;
-
- boot = {
- kernelParams = [ "nohibernate" "elevator=none" ];
- supportedFilesystems = [ "vfat" "zfs" ];
- zfs.devNodes = "/dev/disk/by-partuuid";
- loader = {
- systemd-boot.enable = true;
- efi.canTouchEfiVariables = true;
- };
- initrd = {
- systemd.enable = true;
- availableKernelModules = [
- "xhci_pci"
- "ahci"
- "nvme"
- "usb_storage"
- "sd_mod"
- "sdhci_pci"
- ];
- };
- tmp.cleanOnBoot = mkDefault true;
- };
-
- disko.devices.disk.main = {
- type = "disk";
- device = cfg.device;
- content = {
- type = "gpt";
- partitions.ESP = {
- size = "1G";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- };
- };
- partitions.ZFS = {
- size = "100%";
- content = {
- type = "zfs";
- pool = "zroot";
- };
- };
- };
- };
-
- disko.devices = {
- nodev."/" = {
- fsType = "tmpfs";
- mountOptions = [ "defaults" "size=2G" "mode=755" ];
- };
-
- zpool.zroot = {
- type = "zpool";
- options = {
- ashift = "12";
- autotrim = "on";
- };
-
- datasets = {
- "local" = {
- type = "zfs_fs";
- options = commonOpts // {
- mountpoint = "none";
- };
- };
-
- "local/nix" = {
- type = "zfs_fs";
- mountpoint = "/nix";
- options.mountpoint = "legacy";
- };
-
- "local/reserved" = {
- type = "zfs_fs";
- options = {
- refreservation = "10G";
- mountpoint = "none";
- };
- };
-
- "persist" = {
- type = "zfs_fs";
- mountpoint = "/persist";
- options = commonOpts // {
- mountpoint = "legacy";
- };
- };
- };
- };
- };
- };
-}