diff --git a/python/installer/__main__.py b/python/installer/__main__.py index ddf3c68..40e9d22 100644 --- a/python/installer/__main__.py +++ b/python/installer/__main__.py @@ -176,6 +176,21 @@ def create_zfs_datasets() -> None: run_output(("zfs", "create", "root_pool/home")) run_output(("zfs", "create", "-o", "reservation=1G", "root_pool/var")) run_output(("zfs", "create", "-o", "compression=zstd-9", "-o", "reservation=10G", "root_pool/nix")) + run_output( + ( + "zfs", + "create", + "-o", + "sync=disabled", + "-o", + "redundant_metadata=some", + "-o", + "normalization=none", + "-o", + "utf8only=off", + "root_pool/nix_build", + ) + ) datasets = run_output(("zfs", "list", "-o", "name")) expected_datasets = { @@ -183,6 +198,7 @@ def create_zfs_datasets() -> None: "root_pool/home", "root_pool/var", "root_pool/nix", + "root_pool/nix_build", } missing_datasets = expected_datasets.difference(datasets.splitlines()) if missing_datasets: @@ -248,6 +264,7 @@ def create_nix_hardware_file(mnt_dir: str, disks: Sequence[str], encrypt: str | ' "/home" = {\n device = "root_pool/home";\n fsType = "zfs";\n };\n\n' ' "/var" = {\n device = "root_pool/var";\n fsType = "zfs";\n };\n\n' ' "/nix" = {\n device = "root_pool/nix";\n fsType = "zfs";\n };\n\n' + ' "/nix_build" = {\n device = "root_pool/nix_build";\n fsType = "zfs";\n };\n\n' ' "/boot" = {\n' f' device = "/dev/disk/by-uuid/{get_boot_drive_id(disks[0])}";\n' ' fsType = "vfat";\n options = [\n "fmask=0077"\n' @@ -270,6 +287,7 @@ def install_nixos(mnt_dir: str, disks: Sequence[str], encrypt: str | None) -> No run_output(("mount", "-o", "X-mount.mkdir", "-t", "zfs", "root_pool/home", f"{mnt_dir}/home")) run_output(("mount", "-o", "X-mount.mkdir", "-t", "zfs", "root_pool/var", f"{mnt_dir}/var")) run_output(("mount", "-o", "X-mount.mkdir", "-t", "zfs", "root_pool/nix", f"{mnt_dir}/nix")) + run_output(("mount", "-o", "X-mount.mkdir", "-t", "zfs", "root_pool/nix_build", f"{mnt_dir}/nix_build")) for disk in disks: run_output(("mkfs.vfat", "-n", "EFI", f"{disk}-part1"))