将飞牛远程目录通过 bind mount 挂载到本地相册目录,例如 /vol1/1000/Photos,解决系统盘空间不足时无法继续扩展相册目录的问题。
项目现在已经补齐:
.deb安装包构建- 飞牛
Native应用.fpk打包 systemd服务安装与开机自启- GitHub Actions 自动发布到 GitHub Releases
- 二进制文件:
/usr/bin/check_mount_daemon - 配置文件:
/etc/check_mount_daemon/config.json - 服务文件:
/lib/systemd/system/check-mount.service
安装后编辑 /etc/check_mount_daemon/config.json:
{
"mounts": [
{
"source": "/vol02/1000-0-1fd91f9b/Picture",
"target": "/vol1/1000/Photos",
"checkFile": "remote"
},
{
"source": "/vol02/1001-1-750eb99a/Photos",
"target": "/vol1/1001/Photos",
"checkFile": "remote"
}
]
}说明:
source:远程挂载目录target:飞牛本地相册目录checkFile:用于判断挂载是否正常的标记文件,默认值为remote
在每个 source 根目录下创建检查文件,例如:
touch /vol02/1000-0-122ea9fa/Photos/remote程序会定期检查 target/checkFile 是否存在;如果不存在,就重新执行 mount --bind source target。
从 GitHub Releases 下载对应架构的安装包后执行:
sudo dpkg -i check-mount-daemon_<version>_<arch>.deb
sudo systemctl status check-mount.service安装脚本会自动:
- 安装二进制和默认配置
- 注册
check-mount.service - 执行
systemctl enable - 自动启动或重启服务
常用命令:
sudo systemctl restart check-mount.service
sudo systemctl stop check-mount.service
sudo systemctl status check-mount.service
journalctl -u check-mount.service -f仓库现在也会生成飞牛 Native 应用包,适合手动安装到 fnOS 上测试:
appcenter-cli install-fpk check-mount-daemon_<version>_fnos_x86.fpk或者先开启手动安装入口,再通过应用中心页面上传安装包:
appcenter-cli manual-install enable说明:
fpk包内置为无 UI 的服务型应用- 应用会以
root权限运行,因为mount --bind本身需要特权 - 首次安装会把默认配置复制到应用的
etc/config.json - 该形态更适合自用或测试安装,不适合作为普通第三方应用上架应用中心
建议在 Linux 或 WSL 中执行:
go run github.com/goreleaser/goreleaser/v2@latest release --snapshot --clean --skip=publish构建产物会输出到 dist/ 目录。
- 下载官方
fnpack
curl -L -o fnpack https://static2.fnnas.com/fnpack/fnpack-1.2.1-linux-amd64
chmod +x fnpack- 先编译 Linux 二进制,再打包:
GOOS=linux GOARCH=amd64 go build -o dist/check_mount_daemon ./check_mount_daemon.go
go run ./scripts/build_fpk.go \
--fnpack ./fnpack \
--binary dist/check_mount_daemon \
--version 1.0.1 \
--platform x86 \
--stage dist/fpk-x86 \
--output dist/check-mount-daemon_1.0.1_fnos_x86.fpk仓库已经配置 .github/workflows/release.yml。只要创建并推送版本标签,就会自动构建:
- Linux
amd64二进制包 - Linux
arm64二进制包 amd64/arm64的.deb安装包x86/arm的飞牛.fpk安装包checksums.txt
发布方式:
git tag v1.1.0
git push origin v1.1.0工作流会自动创建对应的 GitHub Release 并上传产物。