BorgBackup · 去重加密备份程序 · 中文部署与使用全指南
项目仓库: https://github.com/borgbackup/borg
开源协议:BSD 3-Clause · 实现语言:Python + C/Cython · 平台:Linux / macOS / FreeBSD / Windows(实验性) · 形态:单文件二进制 / 包 · 远端协议:ssh / http(s) / sftp / s3 / b2 / rclone
说明:BorgBackup 官方 README 未提供 logo 或界面截图,按规程本篇不设封面、正文不强配图。 版本提示:仓库 master 是 Borg2(beta),官方明确 "DO NOT USE BORG2 FOR YOUR PRODUCTION BACKUPS",生产请用稳定的 Borg 1.x 发布版。
1 项目简介
BorgBackup(简称 Borg,仓库名
borgbackup/borg)是一个去重备份程序:可选压缩与认证加密。它用内容定义分块(content-defined
chunking)做去重,每次备份只存从未见过的数据块,因此适合每天备份。认证加密让它适合备份到不完全可信的目标。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | BorgBackup(Borg) |
| 仓库地址 | github.com/borgbackup/borg |
| 项目定位 | 去重、压缩、加密的备份程序 |
| 开源协议 | BSD 3-Clause |
| 实现语言 | Python + C/Cython(性能关键路径 SIMD) |
| 去重算法 | 内容定义分块,id_hash 用 HMAC-SHA256 / Blake3 |
| 加密 | 256 位认证加密(AES-OCB / chacha20-poly1305) |
| 压缩 | lz4 / zstd / zlib / lzma |
| 远端 | ssh:// / http(s):// / sftp:// / s3:// / b2:// / rclone: |
| 单文件二进制 | Linux x86_64/arm64、macOS、FreeBSD、Windows |
1.2 适用场景
- 每天增量备份大量数据,靠去重省空间。
- 备份到不完全可信的远端(对象存储、共享服务器),需要客户端加密。
- 想把备份仓库挂载成文件系统,用文件管理器交互式浏览恢复。
1.3 能力边界(官方口径)
- 去重不依赖文件名 / 时间戳 / 块位置不变——移动文件、大文件小改、块移位都不影响去重。
- master 分支为 Borg2 beta,不要用于生产备份;生产用稳定 1.x 发布版。
2 功能特性
- 空间高效:内容定义分块去重,跨机器 / 跨备份共享同一块仓库。
- 快:C/Cython + SIMD 关键路径、本地缓存、快速识别未修改文件。
- 数据加密:客户端 256 位认证加密;也有仅认证模式(authenticated-sha256 / authenticated-blake3)。
- 压缩:lz4(超快低压缩)、zstd(宽区间)、zlib、lzma。
- 异地备份:ssh / http(s) / sftp / s3 / b2 / rclone 多协议。
- 可挂载:备份归档可挂载为用户态文件系统浏览。
- 单文件二进制:免安装直接跑。
3 官方界面预览
Borg 是纯命令行工具,无图形界面,按规程不配图。官方网站有演示视频。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/borgbackup/borg | 源码与 README |
| 官网 | borgbackup.org | 项目信息、版本化文档、演示视频 |
| 安装手册 | installation.html | 各平台安装 |
| Release | releases | 稳定版 / beta |
| PyPI | pypi.org/project/borgbackup | Python 包 |
| 安全联系 | support.html#security-contact | 漏洞报告 |
5 前置要求
- 安装 Borg(单文件二进制或发行版包 / pip)。
- 远端备份时目标机需能 ssh(且若用 ssh 性能模式,目标机也要装 borg)。
- 选好加密口令并安全保管。
6 方式一:快速上手(本地仓库)
export BORG_REPO=/path/to/repo
# 创建仓库(加密方式:aes256-ocb,密钥放仓库内)
borg repo-create --encryption=aes256-ocb --key-location=repokey
# 创建归档
borg create docs ~/Documents
# 再次备份,看去除重复后的实际大小
borg create -v --stats docs ~/Documents官方示例输出:
Archive name: docs
Number of files: 24
Original size: 29.73 MB
Deduplicated size: 520 B7 方式二:远端备份
# ssh 远端(REST-over-ssh)
export BORG_REPO=ssh://user@host/./path/to/repo
# 也支持 s3:// / b2:// / rclone: 前缀注意:要获得 ssh 模式的显著性能提升,目标仓库服务器上也要安装 borg(远端 agent 模式)。
8 配置项说明
BORG_REPO:仓库路径 / URL。- 加密:
--encryption(aes256-ocb / chacha20-poly1305 / authenticated-*)、--key-location(repokey 或 keyfile)。 - 哈希:HMAC-SHA256 或 Blake3;压缩:lz4 / zstd / zlib / lzma。
- 分块器:fastcdc(默认)、buzhash64、AES 系列、fixed。
9 常用运维命令
borg repo-create ... # 建仓库
borg create ... # 建归档
borg list # 列归档
borg extract # 恢复
borg mount /mnt/borg # 挂载浏览
borg prune # 按策略清理旧归档
borg check # 校验仓库10 常见故障排查
- 用了 Borg2 beta 出问题:官方明确 beta 勿用于生产;换稳定 1.x 版本。
- 忘了口令 / 丢了 keyfile:数据不可恢复,务必离线备份 key。
- ssh 备份慢:确认远端机器也装了 borg(远端 agent),否则退化为普通转发。
- 去重不如预期:确认用同一仓库;Borg 跨归档共享块。
11 风险与合规说明
- BSD-3-Clause 许可;master 为 Borg2 beta,生产务必用稳定 1.x 发布版。
- 加密口令与密钥是唯一凭证,离线安全保管;备份到不可信目标前先在本地加密。
- 本文命令来自官方 README(master/beta 文档),稳定版命令名可能略有差异,以官网版本化文档为准。