The Handbook

    Theme
    • Guides
        • Check a system before installing FreeBSD
        • Orient a Linux administrator on FreeBSD
        • Supported FreeBSD releases
        • Choose a FreeBSD documentation and support channel
        • Move files safely without GNU mv -t
        • Update, upgrade, or update packages?
        • Upgrade 14.4 or 15.0 to FreeBSD 15.1
        • Choose packages, ports, or poudriere
        • Choose the quarterly or latest package branch
        • Choose a FreeBSD download or package mirror
        • Make a system setting persistent
        • Configure locale, keyboard, and time zone
        • Configure a serial console for recovery
        • Choose a custom kernel, module, or loader setting
        • Run a Linux binary with the compatibility layer
        • Check desktop and laptop hardware before installation
        • Choose and check a graphics driver
        • Choose Xorg or Wayland
        • Build a maintainable desktop baseline
        • Install and check a desktop browser
        • Check laptop Wi-Fi, power, and suspend
        • Check multimedia readiness
        • Choose and configure a printing stack
        • Run Windows applications with Wine
        • Snapshot and replicate a ZFS dataset
        • Choose a filesystem and storage layout
        • Operate ZFS without losing the recovery path
        • Restore files from a ZFS snapshot
        • Read ZFS pool health and run a scrub
        • Replace a failed device in a ZFS mirror
        • Replicate a ZFS dataset over SSH
        • Change PF safely on a remote host
        • Configure a narrow WireGuard tunnel
        • Plan a FreeBSD home server
        • Choose a mail server or an outgoing relay
        • Publish a network service safely
        • Choose a jail network model
        • Choose native jails or a jail manager
        • Choose a jail or a bhyve virtual machine
        • Establish a FreeBSD security baseline
        • Choose a MAC policy
        • Audit security-relevant activity
        • Start a DTrace performance investigation
    • Integrations
        • Create a first jail with Bastille
        • Compare jail managers and OCI tooling
        • Publish a Bastille service through PF
        • Mount a ZFS dataset in a Bastille jail
        • Update and upgrade Bastille jails
        • Back up and restore a Bastille jail
        • Prepare bhyve and vm-bhyve
        • Choose NFS or Samba for file sharing
        • Choose ZFS backup automation
        • Operate a signed poudriere repository
        • Manage FreeBSD configuration with Ansible or Salt
        • Run Motion with webcamd on FreeBSD
        • Design a reverse proxy, certificates, and monitoring
    • FAQ
      • Troubleshooting
          • Recover an interrupted freebsd-update run
          • Resolve a package repository or ABI mismatch
          • Diagnose the FreeBSD boot path
          • Recover with a ZFS boot environment
          • Diagnose DNS, routing, and firewall paths
          • Diagnose network mbuf exhaustion
          • Bind a service to a low port without running it as root
          • Diagnose audio output or input
          • Diagnose webcamd, cuse, and a webcam
          • Fix USB device permissions without opening every device
      • About this handbook
      • Synopsis
      • Choose the task
      • Collect evidence first
      • Keep four protections separate
      • Escalate when the topology differs
      • Primary references

      Operate ZFS without losing the recovery path

      Last reviewed
      13 August 2026
      Applies to
      15.1-RELEASE, 15.0-RELEASE, 14.4-RELEASE

      Synopsis #

      ZFS combines filesystem and volume-management operations, so a short command can cross a large recovery boundary. Begin by identifying whether the task concerns local history, an independent copy, pool integrity, capacity, or hardware replacement. Those are different controls.

      This page routes common operational questions to focused procedures. It does not replace the complete ZFS reference in the official documentation.

      Choose the task #

      GoalProcedureImportant boundary
      Select ZFS or UFS and design datasetsChoose a filesystem and storage layoutLayout follows recovery and policy, not directory fashion.
      Create a recovery point and copy it to another poolSnapshot and replicate a ZFS datasetA snapshot on its source pool is not an independent backup.
      Recover selected filesRestore files from a ZFS snapshotCopy and validate files instead of rolling back the whole dataset.
      Send incremental snapshots to another hostReplicate a ZFS dataset over SSHRestrict remote receive authority and retain a common snapshot.
      Select a maintained replication schedulerChoose ZFS backup automationProve one manual transfer and restore before delegating retention.
      Check integrityRead ZFS pool health and run a scrubA scrub verifies existing copies; it is not a backup.
      Replace one failed member of a simple mirrorReplace a failed device in a ZFS mirrorProve topology and physical identity before writing the replacement.

      Collect evidence first #

      These read-only commands establish the starting point for most pool work:

      $ zpool status -P -v
      $ zpool list
      $ zfs list -o name,used,available,mountpoint
      $ zfs list -t snapshot -o name,creation,used -s creation
      

      Preserve the output before clearing errors, exporting a pool, detaching a device, destroying a snapshot, or changing mount points. A provider name without topology and physical identity is not enough evidence for a destructive command.

      Keep four protections separate #

      1. Redundancy can preserve availability after specific device failures.
      2. Snapshots preserve earlier references within the same pool.
      3. Replication places a point-in-time dataset copy on another pool or host.
      4. Restore testing proves that the copy can satisfy the application and ownership requirements.

      One control does not silently become another. A mirrored pool with many snapshots can still be lost with the host, and a successful replication job can still produce an unusable application state.

      Escalate when the topology differs #

      The local device-replacement guide deliberately covers only a simple surviving mirror. RAIDZ, dRAID, special and deduplication vdevs, encrypted raw sends, pool feature upgrades, corrective receive, and damaged metadata require the exact current manual-page procedure and a topology-specific recovery plan.

      When a command would remove the last known copy, destroy an incremental base, or change pool topology, preserve an independent backup and obtain a second review before proceeding.

      Primary references #

      • FreeBSD Handbook: The Z File System
      • zpool(8)
      • zfs(8)
      • zpoolconcepts(7)
      • zfsconcepts(7)

      Independent documentation. Not affiliated with or endorsed by the FreeBSD Project or the FreeBSD Foundation.

      Report a bug
      • Synopsis
      • Choose the task
      • Collect evidence first
      • Keep four protections separate
      • Escalate when the topology differs
      • Primary references