2026/10/14 18:23:25

从Samba 3到4.25的踩坑编年史:TimeCapsuleSMB如何在古董NetBSD上跑通Time Machine

从Samba 3到4.25的踩坑编年史:TimeCapsuleSMB如何在古董NetBSD上跑通Time Machine 【免费下载链接】TimeCapsuleSMBHacking the Apple AirPort Time Capsule to run modern Samba项目地址https://gitcode.com/gh_mirrors/ti/TimeCapsuleSMB点击查看免费下载TimeCapsuleSMB 是一个把老旧 Apple AirPort Time Capsule时间舱改造为现代 Samba 文件服务器的开源项目。由于 macOS 27 移除了 AFP 协议、现代 macOS 又早已弃用 SMB1这台只能挂载 Time Machine 的古董网盘直接废了一半。TimeCapsuleSMB 直接在 Time Capsule 自带的 NetBSD 系统上部署 Samba 4.25让它重新支持 Time Machine 备份且旧备份无需抹盘即可继续使用。一、为什么值得折腾这台 20 年前的老设备Time Capsule 本质上是一台内置硬盘的 Wi-Fi 路由器Apple 官方早已放弃维护。但它的硬件里有一块 2TB 级别的硬盘对很多人来说是现成的家庭 NAS✅ 旧 Time Machine 备份可以直接在 SMB 协议下继续用无需抹盘✅ 通过 Bonjour 自动发现IP 变化也不用管Finder 和设置里的 Time Machine 面板都能直接看到✅ 卸载后设备可完全恢复出厂状态硬盘数据安全项目由两部分组成一个为 Time Capsule 深度定制的 Samba 4 fork以及一套通过终端 CLI 或 macOS GUI 应用完成安装的部署器。二、踩坑编年史从 Samba 3 走到 4.25这个项目并不是下载最新 Samba 编译一下这么简单。作者在 DETAIL.md 中完整记录了每一代版本的死法堪称一部微缩的 Samba 兼容性史版本结果卡点Samba 3.x⚠️ 部分成功SMB2 目录遍历 bugls直接失效Samba 4.0❌ 失败同样的目录遍历 bug编译难度陡增Samba 4.2❌ 失败首个客户端会话触发talloc/loadparm释放后使用use-after-freeSamba 4.3⚠️ 半成功普通共享可用但没有vfs_fruit当不了 Time Machine 目标Samba 4.8⚠️ 可用但慢首个完整的 Time Machine 方案速度却不到 1MB/sSamba 4.25.0rc2✅ 现役版本静态模块部署性能与功能全面达标几个细节值得展开Samba 3.x曾是最好的验证器——它小到只有 6MB能证明这台设备确实能对外服务文件。但它是最早支持 SMB2 的版本SMB2 实现尚不完整在 NetBSD 6 上连列目录都会失败。Samba 4.3证明了整套架构与部署模型是可行的真正的 Time Machine 语义vfs_fruit插件、fruit:time machine yes要到 4.8 才补齐。Samba 4.25.0rc2是当前发行版本配置中启用了catia、fruit、streams_xattr、acl_xattr、xattr_tdb等 VFS 模块原生支持 Mac 的 FinderInfo、扩展属性与资源分叉存储。完整的版本演进与工程背景见 DETAIL.md 中的 Why Samba 4.8, Then 4.25.0rc2 章节。三、编译侧的三记重锤NetBSD 工具链地狱就算选对了 Samba 版本在哪编译又是一道坎。Time Capsule 运行的是古董 NetBSD第 5 代为 NetBSD 6更早的几代为 NetBSD 4三条编译路线依次翻车NetBSD 6 源码官方源码树根本不支持earmv4目标 CPU 架构的构建输出推测 Apple 当年用的是自家定制工具链。NetBSD 10 工具链编出来的静态二进制能跑Samba 3.x 也一切正常但直接用目录 API 探测后发现关键的目录操作在这台 NetBSD 6 设备上会失败——路线作废。NetBSD 7 源码 静态earmv4构建最终可行的组合。可复现编译、在设备上正确执行、成功提供文件服务并支持 Time Machine 语义。当前的部署产物就是基于 NetBSD 7 / NetBSD 4 双 SDK 路线构建的 Samba 4.25.0rc2。维护者的构建脚本全部位于 build/ 目录例如 build/samba4x.shNetBSD 7 路线与 build/samba4xoldle.shNetBSD 4 小端路线补丁集存放在 build/patches/samba4x/。普通用户无需自己编译仓库直接附带了现成的静态二进制。四、16MB 内存、900KB 闪存怎么塞下整套 Samba这台设备的存储约束几乎决定了项目的所有设计详见 DETAIL.md 的 Device Profile 章节根文件系统约 15.5MB仅剩约 4.7MB 可用/mnt/Flash闪存仅约 1MB可用约 933KB/mnt/Memory内存盘只有 16MB内部硬盘容量巨大但 Apple 会在空闲时自动卸载它不能直接在上面跑二进制最终方案是三分法位置内容作用硬盘.samba4目录smbd、rsync、缓存、日志持久存储重启不丢/mnt/Flashrc.local、boot.sh、一个静态service可执行文件极小的常驻启动钩子/mnt/MemoryRAM运行时暂存的smbd与配置从内存安全执行启动流程是rc.local后台拉起boot.sh完成平台准备后执行service manager把smbd暂存进 RAM 并直接托管。第 5 代NetBSD 6设备开机自动启动第 1–4 代NetBSD 4设备需要先flash一个固件启动钩子或每次重启后手动activate——这是老设备最容易踩的坑。五、快速上手5 条命令部署 Time Machine方式 AmacOS GUI 应用推荐新手从 Release 页面下载并解压 App授予本地网络权限左侧边栏 Add Device 选择设备输入设备密码打开 Install / Update 页点击 Install / Update SambaGen 1-4 设备在 Maintenance 页执行 Persistent NetBSD4 Boot Hook 固件修补等待 5–10 分钟后到 Checkup 页跑一次体检方式 BPython CLI克隆仓库git clone https://gitcode.com/gh_mirrors/ti/TimeCapsuleSMB然后按 README.md 的顺序执行./tcapsule bootstrap准备本地 Python 虚拟环境与依赖.venv/bin/tcapsule configure自动发现设备并写入本地配置需要设备密码.venv/bin/tcapsule deploy部署 Samba 到设备并重启.venv/bin/tcapsule doctor非破坏性体检验证smbd监听 445 端口、Bonjour 广播、SMB 认证读写等.venv/bin/tcapsule flash --patch仅老设备写入开机自启钩子部署完成后Finder 的网络文件夹里会自动出现这台 Time Capsule用smb://设备名.local/共享名连接用户名任意、密码即 Time Capsule 设备密码。旧 Time Machine 备份直接续用无需重新备份。六、常见问题速查设备重启后 Samba 没了老设备每次重启后需tcapsule activate或提前flash启动钩子FAQ.md 有详细说明Finder 里看不到设备先用tcapsule doctor和dns-sd -B _smb._tcp local.判断是 Bonjour 问题还是 SMB 本身问题部署后列表失败老 CPU 启动慢等几分钟再跑doctor安全提醒请仅用于局域网不要把 SMB 端口暴露到公网旧固件下所有 SMB 用户会映射为root属于刻意的兼容性取舍总结TimeCapsuleSMB 的故事本质上是在一台 16MB 内存的 NetBSD 古董上把 Samba 从 3 一路试到 4.25再把工具链从 NetBSD 10 倒回 NetBSD 7的踩坑编年史。对普通用户来说这些弯路已经全部走完了——下载现成的二进制和应用几条命令就能让吃灰的 Time Capsule 重新扛起 Time Machine。更多技术细节可参考 DETAIL.md、FAQ.md 与 macos/LOCALIZATION_GLOSSARY.md。赞分享【免费下载链接】TimeCapsuleSMBHacking the Apple AirPort Time Capsule to run modern Samba项目地址https://gitcode.com/gh_mirrors/ti/TimeCapsuleSMB点击查看免费下载相关推荐3步搞定Deno本地npm包编译从踩坑到精通3步搞定Deno本地npm包编译从踩坑到精通 你是否在Deno项目中遇到过本地npm包引用失败、类型定义丢失或编译权限不足的问题作为使用Rust编写的Jav语言运行时3步掌握Remix CSS导出函数从踩坑到精通3步掌握Remix CSS导出函数从踩坑到精通 你是否在Remix项目中遇到过CSS样式加载混乱、路径引用错误或生产环境样式丢失的问题作为现代Web开发框架后端前端Web框架Thorium让老机器跑满的免费高性能 Chromium 浏览器完整指南Thorium让老机器跑满的免费高性能 Chromium 浏览器完整指南 Thorium 是一款专为老机器深度调校的 Chromium 浏览器按 CPU 类桌面应用跨平台创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考