summaryrefslogtreecommitdiff
path: root/hosts/snorlax/disk-config.nix
diff options
context:
space:
mode:
authorJasper Ras <jaspert.ras@gmail.com>2025-02-01 23:22:15 +0100
committerJasper Ras <jaspert.ras@gmail.com>2025-02-01 23:22:15 +0100
commit32a01c43c0d910ac349e3c5c806a7f1811a7179f (patch)
tree2fb0ae8902dd85807387fba9aecd618bb8631741 /hosts/snorlax/disk-config.nix
parent24eb87d36b150f6364b843bbd9483c8586755354 (diff)
snorlax2
Diffstat (limited to 'hosts/snorlax/disk-config.nix')
-rw-r--r--hosts/snorlax/disk-config.nix80
1 files changed, 80 insertions, 0 deletions
diff --git a/hosts/snorlax/disk-config.nix b/hosts/snorlax/disk-config.nix
new file mode 100644
index 0000000..9087825
--- /dev/null
+++ b/hosts/snorlax/disk-config.nix
@@ -0,0 +1,80 @@
+# USAGE in your configuration.nix.
+# Update devices to match your hardware.
+# {
+# imports = [ ./disko-config.nix ];
+# disko.devices.disk.main.device = "/dev/sda";
+# }
+{
+ disko.devices = {
+ disk = {
+ main = {
+ type = "disk";
+ content = {
+ type = "gpt";
+ partitions = {
+ ESP = {
+ size = "1G";
+ type = "EF00";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ mountOptions = [ "umask=0077" ];
+ };
+ };
+ zfs = {
+ size = "100%";
+ content = {
+ type = "zfs";
+ pool = "zroot";
+ };
+ };
+ };
+ };
+ };
+ };
+ zpool = {
+ zroot = {
+ type = "zpool";
+ rootFsOptions = {
+ # https://wiki.archlinux.org/title/Install_Arch_Linux_on_ZFS
+ acltype = "posixacl";
+ atime = "off";
+ compression = "zstd";
+ mountpoint = "none";
+ xattr = "sa";
+ };
+ options.ashift = "12";
+
+ datasets = {
+ "local" = {
+ type = "zfs_fs";
+ options.mountpoint = "none";
+ };
+ "local/home" = {
+ type = "zfs_fs";
+ mountpoint = "/home";
+ # Used by services.zfs.autoSnapshot options.
+ options."com.sun:auto-snapshot" = "true";
+ };
+ "local/nix" = {
+ type = "zfs_fs";
+ mountpoint = "/nix";
+ options."com.sun:auto-snapshot" = "false";
+ };
+ "local/persist" = {
+ type = "zfs_fs";
+ mountpoint = "/persist";
+ options."com.sun:auto-snapshot" = "false";
+ };
+ "local/root" = {
+ type = "zfs_fs";
+ mountpoint = "/";
+ options."com.sun:auto-snapshot" = "false";
+ postCreateHook = "zfs list -t snapshot -H -o name | grep -E '^zroot/local/root@blank$' || zfs snapshot zroot/local/root@blank";
+ };
+ };
+ };
+ };
+ };
+}