# Framework 13 installation Target: Intel 11th-generation Core i5-1135G7. The flake imports `nixos-hardware.nixosModules.framework-11th-gen-intel` for model-specific tuning and enables firmware updates, KDE, shared development tools and Steam. ## Storage layout | Partition | Filesystem | Use | | --- | --- | --- | | EFI system partition | FAT32, suggested 1 GiB | `/boot` | | Linux root partition | ext4, suggested 128–160 GiB | `/`, including `/nix` and `/var` | | Remaining space | ZFS pool `tookland` | `tookland/home` at `/home`; later VM/ISO datasets | Adjust the root size for the drive capacity and your Nix store/container needs. The ext4 and ZFS partitions have separate space budgets; unused ZFS space does not automatically grow the ext4 partition. These instructions use unencrypted filesystems; any disk-encryption setup must be chosen before formatting. NixOS manages support, imports and mounts once the pool exists. This repo does not automate disk partitioning or pool/dataset creation. Use the installer disk utility to create this GPT layout. Formatting and pool creation erase the selected partitions: check the actual drive with `lsblk` and use its persistent `/dev/disk/by-id/…-partN` names. No commands here operate on a guessed device. ## Format and mount in the installer Boot a current NixOS installer with ZFS support and network access. Substitute the three partition paths below with the partitions you just created. The literal placeholders will not work as device names. ```sh sudo mkfs.fat -F 32 -n EFI "/dev/disk/by-id/REPLACE_WITH_EFI_PARTITION" sudo mkfs.ext4 -L nixos-root "/dev/disk/by-id/REPLACE_WITH_ROOT_PARTITION" sudo mount "/dev/disk/by-id/REPLACE_WITH_ROOT_PARTITION" /mnt sudo mkdir -p /mnt/boot /mnt/home sudo mount "/dev/disk/by-id/REPLACE_WITH_EFI_PARTITION" /mnt/boot sudo modprobe zfs sudo zpool create -o ashift=12 -o autotrim=on \ -O compression=lz4 -O acltype=posixacl -O xattr=sa -O relatime=on \ -m none -R /mnt tookland "/dev/disk/by-id/REPLACE_WITH_ZFS_PARTITION" sudo zfs create -o mountpoint=legacy tookland/home sudo mount -t zfs tookland/home /mnt/home sudo zpool status tookland sudo zfs list -o name,mountpoint ``` Do not format the ZFS partition with `mkfs`. `zpool create` initializes it. The pool's root dataset has no mountpoint; `tookland/home` uses a legacy mountpoint so the NixOS `fileSystems."/home"` declaration manages its mount. `-R /mnt` is an installer-only alternate root, not a permanent `/mnt` mountpoint. Neither the pool nor its datasets are recreated during a rebuild. ## Generate hardware configuration and install Generate configuration **after** all three filesystems, including `/mnt/home`, are mounted. This records your real hardware and filesystem layout. ```sh sudo nixos-generate-config --root /mnt # Obtain Git if it is not already available in the installer. nix --extra-experimental-features 'nix-command flakes' shell nixpkgs#git sudo git clone /mnt/etc/nixos-config sudo cp /mnt/etc/nixos/hardware-configuration.nix \ /mnt/etc/nixos-config/hosts/framework/hardware-configuration.nix sudo git -C /mnt/etc/nixos-config add hosts/framework/hardware-configuration.nix sudo nixos-install --flake /mnt/etc/nixos-config#framework sudo nixos-enter --root /mnt -c 'passwd clw' ``` Review the generated hardware file: `/` must be `ext4`, `/boot` must be `vfat`, and `/home` must refer to `tookland/home` with `fsType = "zfs"`. Identical `/home` declarations in the generated file and host configuration merge normally. The installer-generated `configuration.nix` is not used by this flake. Once installation and password setup are complete, leave any shell working under `/mnt/home`, export the pool cleanly, and reboot: ```sh sudo zpool export tookland sudo reboot ``` NixOS imports `tookland` and mounts home before user activation. Its fixed host ID is `fdc3ff7d`; retain it across reinstalls using this pool. Scrubs are enabled. Create other datasets yourself with explicit mountpoints, for example `zfs create -o mountpoint=/srv/isos tookland/isos`. Datasets with native mountpoints are mounted by ZFS; those with `mountpoint=legacy` also need a NixOS `fileSystems` declaration. Snapshot/backup policies are not configured. References: [Framework hardware profile](https://github.com/NixOS/nixos-hardware/tree/master/framework/13-inch/11th-gen-intel), [NixOS ZFS configuration](https://wiki.nixos.org/wiki/ZFS), [OpenZFS pool creation](https://openzfs.github.io/openzfs-docs/man/master/8/zpool-create.8.html). Validation: this host evaluates to a complete system derivation with a temporary installer-style ext4/EFI fixture and a duplicate generated `/home` declaration. Intel microcode, graphics, Steam and ZFS are enabled. Both existing hosts still evaluate. The actual disk layout and generated hardware file must be supplied on the Framework; no full build or disk operation was performed during checks.