# Legacy storage configuration for emergent # This file manually defines ZFS datasets matching the existing on-disk layout # to allow incremental migration to the new storage module (generateBase = true). # # Current on-disk dataset layout: # rpool/local/ - parent (canmount=off) # rpool/local/system/nix - nix store # rpool/local/system/root - root filesystem # # Migration plan: # Phase 1: Rename datasets on disk (boot from live USB) # zfs rename -p rpool/local/system/nix rpool/persist/local/nix # zfs rename rpool/local rpool/persist/local # # This moves: local/system/root -> persist/local/root (need to rename after) # # Actually, since local/system/root needs to become persist/local/root: # zfs rename rpool/persist/local/system/root rpool/persist/local/root # zfs destroy rpool/persist/local/system # now empty # # Recreate blank snapshot: # zfs destroy rpool/persist/local/root@blank # zfs snapshot rpool/persist/local/root@blank # # Phase 2: Delete this file, remove its import from default.nix, rebuild. {...}: { # Disable automatic base dataset generation so we can define them manually storage.generateBase = false; # Manually define ZFS datasets matching the existing on-disk layout storage.zfs.datasets = { "local" = { type = "zfs_fs"; mount = null; }; "local/system/nix" = { type = "zfs_fs"; mount = "/nix"; atime = "off"; relatime = "off"; snapshot = { autoSnapshot = false; }; }; "local/system/root" = { type = "zfs_fs"; mount = "/"; snapshot = { blankSnapshot = true; autoSnapshot = true; }; }; }; }