# 飞牛 fnOS 读写缓存异常,无法加载存储空间,无法移除问题解决教程
## 问题描述
飞牛 fnOS 系统开启 SSD 读写缓存后,无法正常移除缓存,导致:
- 存储空间显示"缓存异常"
- 无法挂载存储空间
- 点击删除缓存提示"正在同步数据"但一直卡在 99.99%
## 适用场景
- 读写缓存(writeback)模式
- 只读缓存也可参考
- 缓存损坏导致存储空间无法挂载
---
## 解决步骤
### 第一步:开启 SSH 并连接
1. 进入飞牛 Web 界面
2. 系统设置 → 终端机 → 开启 SSH
3. 使用 SSH 工具连接(Putty、FinalShell 等)
### 第二步:提权到 root
`bash
sudo -i
第三步:检查系统状态
# 查看逻辑卷状态
lvs
# 查看缓存设备状态
dmsetup status
# 查看磁盘使用情况
df -h
# 查看 LVM 结构
lsblk
第四步:清理系统盘空间(如果空间不足)
问题:系统盘 100% 满会导致操作失败
# 查看大文件目录
du -sh /var/* 2>/dev/null | sort -rh | head -10
# 清理 CUDA 仓库(如果占用空间大)
rm -rf /var/cuda-repo-debian12-12-8-local
rm -rf /var/cuda-repo-debian12-13-0-local
rm -rf /var/cudnn-local-repo-debian12-9.20.0
# 清理日志
rm -f /var/log/*.log
rm -f /var/log/*.gz
> /var/log/syslog
> /var/log/kern.log
# 清理临时文件
rm -rf /tmp/*
rm -rf /var/tmp/*
# 确认空间已释放
df -h
第五步:移除缓存设备
# 移除 dm-cache 设备
dmsetup remove 你的卷组名-0
# 查看是否成功
lvs
第六步:删除缓存池
# 删除缓存池(名称通常为 0cache_cpool)
lvremove 你的卷组名/0cache_cpool
# 如果提示被占用,先停用
lvchange -an 你的卷组名/0cache_cpool_cdata
lvchange -an 你的卷组名/0cache_cpool_cmeta
第七步:激活存储空间
# 激活卷组
vgchange -ay 你的卷组名
# 验证
lvs
第八步:Web 界面挂载
- 打开飞牛 Web 界面
- 系统设置 → 存储空间管理
- 点击 挂载 存储空间
第九步:如遇数据库错误
# 检查数据库状态
systemctl status postgresql
# 重启数据库
systemctl restart postgresql
# 或强制挂载(只读模式,导出数据用)
mount -t btrfs -o ro,usebackuproot,rescue=all /dev/mapper/你的卷组名-0 /mnt/test
关键命令速查
| 操作 |
命令 |
| 查看缓存状态 |
dmsetup status |
| 查看 LVM |
lvs / lsblk |
| 查看磁盘空间 |
df -h |
| 移除缓存设备 |
dmsetup remove <设备名> |
| 删除缓存池 |
lvremove <卷组名>/0cache_cpool |
| 激活卷组 |
vgchange -ay <卷组名> |
| 查看日志 |
dmesg |
注意事项
- 读写缓存风险高:读写模式下 SSD 丢失可能导致数据丢失,务必通过界面操作删除缓存
- 提前备份:重要数据先备份
- 系统盘空间:保持系统盘有足够空间(建议 10GB 以上)
- 物理拔除法:如软件方法无效,可尝试关机后拔掉 SSD,再开机删除缓存
相关错误信息
Cache data is missing - 缓存数据丢失
database read/write error - 数据库读写错误,可能系统盘满
No space left on device - 系统盘空间不足
官方渠道
如以上方法均无效,建议联系飞牛官方:
- 加入飞牛微信/QQ 群
- 提供设备 ID 和日志
- 或使用系统降级法(刷入 0.8.43 版本后删除缓存,再升级)