先做只读盘点
geom disk list
gpart show
mount
swapinfo -h
zpool status # 仅 ZFS
zfs list # 仅 ZFS
df -h
设备名可能因控制器和驱动不同而变化。任何 gpart add/delete/destroy、newfs、zpool create/attach/replace 前,都要用型号、序列号和容量二次确认设备,并保存 gpart backup 输出与异机数据备份。
ZFS 的层次
- zpool 管理物理设备、冗余与池健康。
- dataset 管理挂载点、配额、压缩、快照和委派。
- zvol 提供块设备,常用于虚拟机。
zpool status -v
zpool get all zroot
zfs get -r mountpoint,compression,quota,used,available zroot
zfs list -t snapshot
不要把 zpool status 的 ONLINE 等同于“已有备份”。镜像/RAIDZ 提高设备故障容忍,不能撤销误删、勒索或整机丢失。
快照与回滚
创建一致性快照前先让数据库进入支持的备份状态或停写。普通文件数据集示例:
zfs snapshot zroot/data@before-change
zfs diff zroot/data@before-change
zfs rollback 会丢弃目标快照之后的更改;不要把它作为第一反应。优先从快照复制单个文件,或 clone 到隔离数据集验证。快照占用空间随后续变化增加,应监控并设置保留策略。
UFS
UFS 依赖分区、文件系统与 /etc/fstab。修改 fstab 后先用明确挂载点测试,不要直接重启赌语法正确:
mount -p
fstab -p /etc/fstab
fsck 通常针对未挂载或只读文件系统;根文件系统损坏应从单用户模式或安装介质处理。不要对已挂载读写的 UFS 盲目强制修复。
容量与健康
ZFS 池应保留合理空闲空间,定期 scrub 并对错误告警;UFS 监控 inode 与块使用。磁盘 SMART 信息只是一种信号,不保证设备不会突然失败。任何 replace/attach 操作前先确认拓扑,完成后观察 resilver 和新错误计数。
加密
GELI 和 ZFS native encryption 的密钥模型、引导阶段和备份方式不同。使用 keylocation=prompt 的加密 ZFS 还要查看当前 RELEASE Errata;15.1 Errata 在 2026-07-30 仍列有相关启动等待问题。没有恢复密钥演练,不应把“已加密”当作完成。