devAlice
← Mac

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

  1. Time Machine — 自动每小时备份到外置 SSD 或 NAS(基础保障)
  2. Backblaze — 云备份($9/月,无限容量),或 iCloud Drive + 照片
  3. 添加开发者资产:dotfiles → /mac/dotfiles(Git),SSH 密钥 → /multi-os/password-manager(1Password)
  4. 测试恢复:不要只备份,要验证能否还原
  5. 加密外置 SSDdiskutil 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 测试恢复(最重要的一步)

每季度:

  1. 删除一个随机文件,通过 Time Machine 恢复 — 确认
  2. 拔掉外置盘,从 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. 下一步


参考资料

更新日志

  • 2026-05-16:首次发布。Time Machine + 云备份 + 开发者资产策略 + 四种恢复场景 + 六个故障排除案例。