Mac 备份 — Time Machine + 云备份 + 加密外置 SSD
Time Machine 配置、Backblaze/iCloud 云备份组合、加密外置 SSD,以及四种真实恢复场景。
「没有备份的代码,迟早会消失。」备份开发者的 Mac 与备份度假照片截然不同——Git 仓库、SSH 密钥、1Password 保险库、dotfiles、开发环境,一旦丢失,恢复时间就是代价。
我认为备份策略的本质不在于工具选择,而在于恢复场景覆盖度。以前我们只想着备份;如今通过 3-2-1 规则,不同故障场景各有对应方案,因为未经验证的备份和没有备份没有区别。
本指南将 3-2-1 备份规则(3 份副本、2 种介质、1 份异地)应用于 Mac:Time Machine + 外置 SSD + 云备份,并附四种恢复场景。
适用对象:macOS 14+ 用户。企业设备请优先遵循雇主政策。
TL;DR
- Time Machine — 自动每小时备份到外置 SSD 或 NAS(基础保障)
- Backblaze — 云备份($9/月,无限容量),或 iCloud Drive + 照片
- 添加开发者资产:dotfiles → /mac/dotfiles(Git),SSH 密钥 → /multi-os/password-manager(1Password)
- 测试恢复:不要只备份,要验证能否还原
- 加密外置 SSD —
diskutil apfs encryptVolume或在 Finder 中右键加密
前提条件
- macOS 14+ + 管理员账户
- 外置 SSD 或 NAS(用于 Time Machine)— 容量应为 Mac 内置磁盘的 2-3 倍
- (可选)付费云备份服务
1. 为什么单靠 Time Machine 不够
Time Machine 的弱点:
- 外置硬盘一起丢失或被盗 — 数据消失(盗窃、火灾)
- 外置硬盘故障 — 数据消失(机械硬盘平均寿命 5-7 年)
- 外置硬盘连接时,勒索软件可同时加密两块磁盘
应用 3-2-1 规则:
- 3 份副本:工作磁盘 + Time Machine + 云
- 2 种介质:SSD/HDD + 云
- 1 份异地:云端,或家/办公室以外的地方
2. Time Machine 设置(15 分钟)
2.1 选择外置硬盘
推荐规格:
- 容量:内置磁盘的 2-3 倍(1TB 内置 → 2-3TB 外置)
- 接口:USB 3.2 或 Thunderbolt(USB-C)
- 类型:推荐 SSD(机械硬盘备份更快,但噪音大且较慢)
NAS 也可以(Synology / QNAP),通过 AFP / SMB 挂载。
2.2 格式化(推荐 APFS)
磁盘工具 → 选择外置磁盘 → 抹掉:
- 格式:APFS
- 方案:GUID 分区映射
- 名称:如
TimeMachine
如果需要与 Windows 共享,使用
ExFAT——但 Time Machine 将无法使用,需要其他备份方案。
2.3 加密(必须)
磁盘工具 或在 Finder 中右键:
- 「加密」→ 设置密码 + 提示
- 忘记密码 = 数据永久丢失
不加密的话,被盗的磁盘会暴露所有备份。必须开启。
2.4 启用 Time Machine
系统设置 → 通用 → Time Machine → + → 选择外置磁盘 → 使用磁盘。
选项:
- 自动备份:开启(推荐)
- 在菜单栏显示 Time Machine:开启
首次备份根据磁盘大小需要数小时。之后每小时增量备份。
2.5 排除项目(节省空间)
系统设置 → 通用 → Time Machine → 选项... → 排除:
node_modules ← 每个 JS 项目中的大型文件夹
.next ← Next.js 构建缓存
target ← Rust 构建产物
build ← C/C++ 构建产物
Library/Caches ← 系统缓存
.DS_Store ← Finder 元数据
排除整个 ~/Library/Caches 可节省数 GB 空间。
2.6 验证
tmutil status # 备份进度
tmutil listbackups | tail # 最近备份时间戳或通过菜单栏 Time Machine 图标查看上次备份时间。
3. 云备份(异地)
三种选择:
3.1 Backblaze Personal Backup($9/月,无限容量)
性价比最高。将所有用户文件备份到云端。连接的外置硬盘也会自动包含在内。
# 从 https://www.backblaze.com/ 下载 macOS 客户端
# 在后台运行,文件变更时自动上传注意:仅限单用户(企业许可证单独计费)。
3.2 iCloud Drive + 照片(有限)
- iCloud Drive:50GB($0.99/月)到 12TB($59.99/月)
- 自动将「文稿」/「桌面」同步到 iCloud
- ⚠️ 这是同步,不是备份 — 一端删除,另一端也会删除
- 不适合开发资产(大量小文件)
3.3 Arq Backup($50 一次性,自备 S3)
- 备份到自己的 S3 存储桶或 Backblaze B2
- 软件免费,只需支付存储费用
- 强大功能(去重、加密、定时)
4. 开发者资产 — 独立策略
4.1 代码(Git)
- 本地提交 + 推送到 GitHub / GitLab — 已备份
- 但未提交的更改和本地分支不在其中 — 勤提交勤推送
4.2 dotfiles
.zshrc / .gitconfig / ~/.config/* 等 — 用 chezmoi 纳入 Git 管理。新机器一条命令即可恢复。
4.3 SSH 密钥
- ✅ Time Machine:已备份(磁盘加密为必须)
- ✅ 推荐:1Password SSH agent — 密钥存入保险库(/multi-os/password-manager)
- ❌ GitHub Gist / 明文公开:绝对禁止
4.4 .env 文件
- ✅ 存储为 1Password 安全备注
- ✅ 或使用
op run在运行时从保险库注入 - ❌ 不要只依赖 Time Machine(迟早会不小心提交到 git)
4.5 本地开发数据库
# Postgres 定期备份
pg_dump -U postgres mydb > ~/backups/mydb-$(date +%F).sql或备份 Docker 卷:
docker run --rm -v mydata:/data -v $(pwd):/backup alpine \
tar czf /backup/mydata-$(date +%F).tar.gz -C /data .输出放到 ~/backups 下,Time Machine 会自动纳入。
5. 推荐备份频率
| 资产 | 频率 | 方式 |
|---|---|---|
| 系统 + OS | 每小时(自动) | Time Machine |
| 代码(未提交) | 立即(自动) | Time Machine |
| 代码(已提交) | 每次推送 | Git 远端 |
| dotfiles | 有变更时 | chezmoi commit + push |
| 1Password 保险库 | 自动 | 1Password 自有云 |
| 照片 / 文档 | 每日(自动) | iCloud 照片 + Time Machine |
| 本地数据库 | 每周(手动) | pg_dump + Time Machine |
| 所有内容 | 实时 | Backblaze(订阅后) |
6. 恢复场景
6.1 误删文件
Time Machine 界面:
- 菜单栏 Time Machine 图标 → 进入 Time Machine
- 拖动时间轴 → Finder 显示过去某时刻 → 右键文件 → 恢复
或通过命令行:
tmutil listbackups
tmutil restore /Volumes/TimeMachine/.../path/to/file ~/Desktop/recovered/6.2 Mac 本身损坏(磁盘故障)
在新 Mac 上或同一台 Mac 抹盘后:
- 设置助理 → 「从 Time Machine 恢复」
- 连接外置磁盘 → 选择备份 → 恢复(需要数小时)
或部分恢复:
- 安装 macOS 后,用迁移助理仅恢复用户数据
6.3 外置备份盘故障
Time Machine 外置盘损坏时:
- 从云备份(Backblaze)恢复
- 或从 Git 远端 + 1Password + chezmoi 重建环境(需数小时)
6.4 勒索软件(所有磁盘被加密)
需要离线备份才能恢复:
- 外置磁盘平时不要一直连接
- 实用模式:每周连接一次外置磁盘,让 Time Machine 备份,然后断开
- 或依靠云备份版本控制(恢复勒索事件前的版本)
Backblaze 默认保留 30 天版本;额外付费可保留一年。
7. 验证
7.1 备份是否正常运行
# 最近一次备份
tmutil latestbackup
# /Volumes/TimeMachine/Backups.backupdb/MacBook/2026-05-16-103015
# 备份完整性
sudo tmutil verifychecksums /Volumes/TimeMachine/Backups.backupdb/...7.2 测试恢复(最重要的一步)
每季度:
- 删除一个随机文件,通过 Time Machine 恢复 — 确认
- 拔掉外置盘,从 Backblaze 下载一个随机文件 — 确认
从未尝试过恢复的备份,本质上等于「没有备份」。至少做一次。
8. 故障排除
「Time Machine 无法完成备份」
- 检查磁盘是否已连接(
diskutil list) - 运行磁盘工具 → 急救
- 备份磁盘损坏:在新磁盘上重新开始
备份耗时很长
- 首次备份覆盖整个磁盘(几 GB 到几 TB)— 正常
- 之后每小时增量备份
- 如果每小时备份需要超过 5 分钟,说明你频繁修改大文件(如 Docker 镜像)— 添加排除项
反复提示「Time Machine 需要创建新备份」
- 磁盘损坏或备份链断裂
- 等待合适时机后,
tmutil delete <旧备份>重新开始
外置 SSD 在 macOS Sequoia 上无法识别
- USB-C 线缆 / 集线器兼容性问题(使用 Apple 原装或认证线缆)
- SMC 重置(Intel Mac)或 NVRAM 重置
- 换一个接口
1Password 保险库如何备份?
- 1Password 自行处理云备份(Apple 服务器 + AWS)
- 另外:打印紧急套件(PDF + Secret Key + 主密码)并存放在安全地方
- 企业保险库不单独备份 — 请确认 IT 政策
Backblaze 漏掉了一些文件
- Backblaze 默认自动排除
node_modules等文件夹 - 在客户端设置中查看排除项,确认重要文件夹已包含
9. 下一步
- Mac 安全(FileVault · 防火墙) — /mac/security-firewall
- 管理 dotfiles — /mac/dotfiles
- 密码管理器 — /multi-os/password-manager
- 文件同步(Syncthing) — /multi-os/file-sync — 与备份用途不同
参考资料
更新日志
- 2026-05-16:首次发布。Time Machine + 云备份 + 开发者资产策略 + 四种恢复场景 + 六个故障排除案例。