先冻结现场
不要把“重启看看”当作第一步。记录时间、最近变更、影响范围和可复现条件,先采集只读信息:
freebsd-version -kru
uname -a
uptime
dmesg | tail -n 100
tail -n 200 /var/log/messages
df -h
mount
service -e
sockstat -4 -6 -l
公开日志前删除公网 IP、主机名、用户名、序列号、密钥、token 和业务数据。
无法启动
确认固件启动模式、磁盘是否被识别、loader 错误与最后一个内核消息。ZFS 根从 loader 选择旧启动环境或旧内核;UFS 可进入单用户模式。不要在没有备份时反复执行 fsck -y、强制导入池或重写 bootcode。
磁盘或 ZFS 告警
zpool status -v
zpool events -v | tail -n 100
gpart show
先判断是设备错误、池拓扑、容量耗尽还是应用层损坏。replace/attach 前核对序列号;scrub 不是数据恢复工具,故障盘持续恶化时可能增加 I/O 压力。
网络与 DNS
ifconfig -a
netstat -rn
route -n get default
ping -c 3 1.1.1.1
drill freebsd.org
pfctl -sr 2>/dev/null
ipfw list 2>/dev/null
从链路、地址、路由、DNS、防火墙到应用端口逐层定位。只有名称解析失败时才改 DNS;只有端口被过滤时才改防火墙。
服务无法启动
service servicename rcvar
service servicename status
service servicename configtest
tail -n 100 /var/log/messages
把 servicename 替换成实际 rc 脚本。不是所有服务支持 configtest。检查有效配置、权限、端口冲突、证书、依赖服务和磁盘空间;不要先删除 pid 文件或用 kill -9 掩盖原因。
包升级后异常
查看 /var/log/pkg.log、pkg check -da、配置中的 .pkgnew/.pkgsave,确认 FreeBSD ABI 和内核模块来源。大版本升级后应按官方要求强制重装第三方包;普通单包故障则先确定依赖图,不整体降级系统。
提问所需最小证据
提供版本、架构、硬件或虚拟化平台、精确命令、完整错误、预期与实际、最近变更和已尝试的单变量步骤。把图片中的文本同时转成可搜索文字;不要只写“不能用”。