51 lines
1.7 KiB
Nix
51 lines
1.7 KiB
Nix
# 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;
|
|
};
|
|
};
|
|
};
|
|
}
|