从格式化到满血复活:飞牛 NAS 一天重建记(附两桩网速悬案的破案过程)
起因 用了几年群晖,最终还是转投了飞牛(fnOS)。硬件是自组的:两条 NVMe(256G 系统 + 512G 致态)加五块西数 HC550 16T 氦气盘。既然换系统,索性全盘格式化推倒重来——代价是之前攒的一堆服务全没了:MoviePilot、Vaultwarden、Navidrome、Mihomo、qBittorrent、Transmission、Emby、IYUU…… 这次重建有个特殊情况:我当天要出差。所以整个过程变成了一场行为艺术——人在火车上和酒店里,通过 Tailscale 远程把一台刚格式化的 NAS 从零建成满血影音站。动手的主力是 Claude Code,我负责在手机上点头和输密码。 底座:SSH、Docker 和镜像加速 飞牛底层是 Debian 12,开 SSH 后第一件事是配免密钥登录(专用 ed25519 密钥,不跟其它服务器混用)。普通用户没有免密 sudo,但把用户加进 docker 组后,容器相关操作就完全不需要 root 了: sudo usermod -aG docker <用户名> 真正的第一道坎是拉镜像。Docker Hub 直连超时,国内镜像加速站又各有各的脾气: docker.m.daocloud.io:稳定,但有白名单——metacubex/mihomo、iyuucn/iyuuplus-dev、hisatri/lrcapi 这类小众镜像会被它明确拒绝(错误信息里还带 emoji 🚫); docker.1ms.run:没有白名单,但偶发 unknown blob,重试就好; 策略:主流镜像走 daocloud,被拒的换 1ms.run,全部在 compose 里写死镜像前缀,不依赖 daemon.json(那需要 root)。 服务栈与硬盘规划 十一个容器一个 compose 管完,核心规划两条: 配置与数据分家:所有容器的配置/数据库放 512G SSD(小文件随机读写快,Emby 元数据受益最明显),下载和媒体库放 16T 机械盘。 下载和媒体库必须同盘:MoviePilot 整理用硬链接,跨盘就退化成复制。qb、tr、MP、Emby 四个容器挂载同一个宿主目录、容器内路径统一叫 /data——这是整条自动化链路无缝衔接的前提: /data/downloads/qb/{movies,tv} ← qb 分类下载 /data/media/{movies,tv,music} ← MP 硬链接入库,Emby 直接读 五块机械盘的分工:一块主战场(下载+保种+媒体库),一块留作扩容,一块个人数据/相册,一块备份,一块冷备。SSD 上的容器配置以后定期往备份盘倒。 ...