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
      • Begin with evidence
      • Choose the failing layer
        • Updates, packages, and boot
        • Network and service exposure
        • Desktop and devices

      Troubleshooting

      Begin with evidence #

      Before changing configuration, record the installed and running release, the complete error, and the service state. A useful initial record often includes:

      $ freebsd-version -kru
      $ uname -a
      # service service-name status
      

      Replace service-name with the rc service being investigated. Then inspect that service’s log and manual page. Avoid applying a tunable or compatibility workaround until the failing component has been identified.

      Choose the failing layer #

      Updates, packages, and boot #

      • Recover an interrupted freebsd-update run resumes or rolls back from recorded state.
      • Resolve a package repository or ABI mismatch checks architecture, release, branch, and repository policy.
      • Recover with a ZFS boot environment selects or activates a known boot environment.
      • Diagnose the FreeBSD boot path separates firmware, loader, kernel, root-filesystem, and service failures.

      Network and service exposure #

      • Diagnose DNS, routing, and firewall paths proves resolution, route, packet, firewall, and listening-service layers in order.
      • Diagnose network mbuf exhaustion requires measured exhaustion before considering kern.ipc.nmbclusters.
      • Bind a service to a low port compares MAC policy, redirection, and service privilege boundaries.

      Desktop and devices #

      • Diagnose audio output or input separates detection, default device, mixer, permissions, and applications.
      • Diagnose webcamd, cuse, and a webcam traces attachment through the application-facing device.
      • Fix USB device permissions narrowly avoids opening every device node.

      The Linux binary compatibility guide includes the initial diagnostic path for Linux binaries that do not start.

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

      Report a bug
      • Begin with evidence
      • Choose the failing layer
        • Updates, packages, and boot
        • Network and service exposure
        • Desktop and devices