Home Explore Blog CI



nixpkgs

nixos/doc/manual/administration/zfs-state.section.md
ee51189e6bac9a45552dde0597cd5f462280932cc4ba50b50000000300000335
# ZFS {#sec-zfs-state}

When using ZFS, `/etc/zfs/zpool.cache` should be persistent (or a symlink to a persistent
location) as it is the default value for the `cachefile` [property](man:zpoolprops(7)).

This cachefile is used on system startup to discover ZFS pools, so ZFS pools
holding the `rootfs` and/or early-boot datasets such as `/nix` can be set to
`cachefile=none`.

In principle, if there are no other pools attached to the system, `zpool.cache`
does not need to be persisted; it is however *strongly recommended* to persist
it, in case additional pools are added later on, temporarily or permanently:

While mishandling the cachefile does not lead to data loss by itself, it may
cause zpools not to be imported during boot, and services may then write to a
location where a dataset was expected to be mounted.

Chunks
a96d8821 (1st chunk of `nixos/doc/manual/administration/zfs-state.section.md`)
Title: ZFS Cache File Considerations
Summary
When using ZFS, the `/etc/zfs/zpool.cache` file should be persistent as it helps discover ZFS pools during system startup. Pools holding the root filesystem or early-boot datasets can have `cachefile=none`. While not mandatory if no other pools are attached, persisting the cache file is highly recommended to prevent boot issues and potential service conflicts if additional pools are added later.