borg README

The project's README from github.com/borgbackup/borg. As one markdown file: README.md.

This is borg2!

Please note that this is the README for (unstable) Borg2 / master branch.

For general project infos, versioned docs, screen casts, please see there:

https://www.borgbackup.org/

Borg2 is currently in beta testing and might get major and/or breaking changes between beta releases (and there is no beta to next-beta upgrade code, so you will have to delete and re-create repos).

Thus, DO NOT USE BORG2 FOR YOUR PRODUCTION BACKUPS! Please help with testing it, but set it up additionally to your production backups.

What is BorgBackup?

BorgBackup (short: Borg) is a deduplicating backup program. Optionally, it supports compression and authenticated encryption.

The main goal of Borg is to provide an efficient and secure way to back up data. The data deduplication technique used makes Borg suitable for daily backups since only changes are stored. The authenticated encryption technique makes it suitable for backups to targets not fully trusted.

See the installation manual_ or, if you have already downloaded Borg, docs/installation.rst to get started with Borg.

.. _installation manual: https://borgbackup.readthedocs.io/en/master/installation.html

Main features


**Space efficient storage**
  Deduplication based on content-defined chunking is used to reduce the number
  of bytes stored: each file is split into a number of variable length chunks
  and only chunks that have never been seen before are added to the repository.

  A chunk is considered duplicate if its id_hash value is identical.
  A cryptographically strong hash or MAC function is used as id_hash,
  e.g. (hmac-)sha256 or (keyed) blake3.

  To deduplicate, all the chunks in the same repository are considered, no
  matter whether they come from different machines, from previous backups,
  from the same backup or even from the same single file.

  Compared to other deduplication approaches, this method does NOT depend on:

  * file/directory names staying the same: So you can move your stuff around
    without killing the deduplication, even between machines sharing a repo.

  * complete files or time stamps staying the same: If a big file changes a
    little, only a few new chunks need to be stored - this is great for VMs or
    raw disks.

  * The absolute position of a data chunk inside a file: Stuff may get shifted
    and will still be found by the deduplication algorithm.

  Supported chunkers:

  * fastcdc (the default)
  * buzhash64 (improved), buzhash (as in borg 1.x)
  * toeplitz-aes / rabin-aes / goldilocks-aes (keyed, AES-based; they make
    chunk-boundary fingerprinting attacks much harder)
  * fixed (fixed blocksize, optionally with a differently sized header)

**Speed**
  * performance-critical code (chunking, compression, encryption) is
    implemented in C/Cython, using SIMD (NEON / AVX2 / AVX-512) where that
    is a win - the scan kernel is picked per platform
  * local caching
  * quick detection of unmodified files

**Data encryption**
    All data can be protected client-side using 256-bit authenticated encryption
    (AES-OCB or chacha20-poly1305), ensuring data confidentiality, integrity and
    authenticity.

    If you do not need confidentiality, there are also modes that only
    authenticate (``authenticated-sha256`` / ``authenticated-blake3``) and
    modes that do neither (``none-sha256`` / ``none-blake3``).

**Hashing**
    You can choose between HMAC-SHA256 and Blake3.

**Obfuscation**
    Optionally, Borg can actively obfuscate, e.g., the size of files/chunks to
    make fingerprinting attacks more difficult.

**Compression**
    All data can be optionally compressed:

    * lz4 (super fast, low compression)
    * zstd (wide range from high speed and low compression to high compression
      and lower speed)
    * zlib (medium speed and compression)
    * lzma (low speed, high compression)

**Off-site backups**
    Borg can store data on any remote host accessible via misc. protocols:

    * ``rest://`` (REST-http-over-stdio-over-ssh) and ``http(s)://``
      (REST-http-over-tcp). Significant performance gains can be achieved with
      these by having a remote agent (borg must be installed on the repo server).
    * ``sftp://``
    * ``s3://`` / ``b2://``
    * ``rclone:`` - lots of protocols / providers supported by rclone

**Backups mountable as file systems**
    Backup archives are mountable as user-space file systems for easy interactive
    backup examination and restores (e.g., by using a regular file manager).

**Easy installation on multiple platforms**
    We offer single-file binaries that do not require installing anything -
    you can just run them on these platforms:

    * Linux (x86_64, arm64)
    * macOS (arm64, x86_64)
    * FreeBSD (x86_64)
    * Windows (x86_64, MSYS2/MINGW borg.exe, experimental)

    Borg also runs on these platforms, but you need to install it from a
    package or from source:

    * NetBSD (xattrs, but no ACLs)
    * OpenBSD (no xattrs/ACLs support)
    * illumos / Solaris (xattrs, but no ACLs)
    * Cygwin (experimental)
    * Windows Subsystem for Linux (WSL) on Windows 10/11 (experimental)

**Free and Open Source Software**
  * security and functionality can be audited independently
  * licensed under the BSD (3-clause) license, see `License`_ for the
    complete license

Easy to use
~~~~~~~~~~~

For ease of use, set the BORG_REPO environment variable::

    $ export BORG_REPO=/path/to/repo

Create a new backup repository (see ``borg repo-create --help`` for encryption options)::

    $ borg repo-create --encryption=aes256-ocb --key-location=repokey

Create a new backup archive::

    $ borg create docs ~/Documents

Now do another backup, just to show off the great deduplication::

    $ borg create -v --stats docs ~/Documents
    Creating archive "docs" in repository /path/to/repo
    Repository: /path/to/repo
    Archive name: docs
    Archive fingerprint: 7714aef97c1a24539cc3dc73f79b060f14af04e2541da33d54c7ee8e81a00089
    Time (nominal): Mon, 2026-08-03 19:57:35 +0200
    Time (start):   Mon, 2026-08-03 19:57:35 +0200
    Time (end):     Mon, 2026-08-03 19:57:35 +0200
    Duration: 0.01 seconds
    Number of files: 24
    Original size: 29.73 MB
    Deduplicated size: 520 B
    ...


For demo videos, check out our homepage: https://www.borgbackup.org/#demo

Helping, donations and bounties, becoming a Patron
--------------------------------------------------

Your help is always welcome!

Spread the word, give feedback, help with documentation, testing or development.

You can also give monetary support to the project, see here for details:

https://www.borgbackup.org/#fund

Thanks to everyone who has helped so far - these are the people with the most
commits, see `FAME.md <https://github.com/borgbackup/borg/blob/master/FAME.md>`_
for the full list:

.. image:: https://raw.githubusercontent.com/borgbackup/borg/master/FAME.svg
   :alt: Borg contributors by commit count
   :target: https://github.com/borgbackup/borg/blob/master/FAME.md

Links
-----

* `Main website <https://www.borgbackup.org/>`_
* `Releases <https://github.com/borgbackup/borg/releases>`_,
  `PyPI packages <https://pypi.org/project/borgbackup/>`_ and
  `Changelog <https://github.com/borgbackup/borg/blob/master/docs/changes.rst>`_
* `GitHub <https://github.com/borgbackup/borg>`_ and
  `Issue tracker <https://github.com/borgbackup/borg/issues>`_.
* `Web chat (IRC) <https://web.libera.chat/#borgbackup>`_ and
  `Mailing list <https://mail.python.org/mailman/listinfo/borgbackup>`_
* `License <https://borgbackup.readthedocs.io/en/master/authors.html#license>`_
* `Security contact <https://borgbackup.readthedocs.io/en/master/support.html#security-contact>`_

Compatibility notes
-------------------

EXPECT THAT WE WILL BREAK COMPATIBILITY REPEATEDLY WHEN MAJOR RELEASE NUMBER
CHANGES (like when going from 0.x.y to 1.0.0 or from 1.x.y to 2.0.0).

NOT RELEASED DEVELOPMENT VERSIONS HAVE UNKNOWN COMPATIBILITY PROPERTIES.

THIS IS SOFTWARE IN DEVELOPMENT, DECIDE FOR YOURSELF WHETHER IT FITS YOUR NEEDS.

Security issues should be reported to the `Security contact`_ (or
see ``docs/support.rst`` in the source distribution).

.. start-badges

|doc| |build| |coverage| |bestpractices|

.. |doc| image:: https://readthedocs.org/projects/borgbackup/badge/?version=master
        :alt: Documentation
        :target: https://borgbackup.readthedocs.io/en/master/

.. |build| image:: https://github.com/borgbackup/borg/actions/workflows/ci.yml/badge.svg?branch=master
        :alt: Build Status (master)
        :target: https://github.com/borgbackup/borg/actions

.. |coverage| image:: https://codecov.io/github/borgbackup/borg/coverage.svg?branch=master
        :alt: Test Coverage
        :target: https://codecov.io/github/borgbackup/borg?branch=master

.. |bestpractices| image:: https://www.bestpractices.dev/projects/271/badge
        :alt: Best Practices Score
        :target: https://www.bestpractices.dev/projects/271

.. end-badges

borg (borgbackup/borg)

Searching Database…

13.9K ·GitHub
这是什么?BorgBackup 是一款支持重复数据删除的备份程序,可选择启用压缩和带认证的加密。它只存储发生变化的数据,让你能够高效、安全地进行日常备份。
这是图形界面应用还是命令行工具?这是一个命令行程序(CLI),通过 'borg repo-create'、'borg create' 等命令操作。备份归档还可以挂载为文件系统,用普通的文件管理器浏览。
我该怎么开始使用?将环境变量 BORGREPO 设置为你的仓库路径,运行 'borg repo-create --encryption=aes256-ocb --key-location=repokey' 创建仓库,然后运行 'borg create docs ~/Documents' 创建你的第一个归档。
我需要安装 Python 吗,还是直接运行二进制文件就行?Linux、macOS、FreeBSD 以及(实验性的)Windows 提供无需安装的单文件二进制程序;在其他平台(NetBSD、OpenBSD、illumos/Solaris、Cygwin、WSL)上,则需要通过软件包或源代码安装,这需要 Python。
我可以用这个分支的版本做正式备份吗?不建议。本 README 针对的是不稳定的 Borg2/master 分支,它仍处于测试版阶段,测试版之间没有升级路径,因此每次更新测试版都必须删除并重新创建仓库。README 明确警告不要将其用于生产环境备份。
Borg 实际上能在哪些平台上运行?它可在 Linux(x86_64、arm64)、macOS(arm64、x86_64)和 FreeBSD 上原生运行;Windows 则通过 MSYS2/MINGW 实验性支持;NetBSD、OpenBSD、illumos/Solaris、Cygwin 和 WSL 可通过源代码支持。
我能通过 SSH 备份到远程服务器吗?可以。Borg 可以通过基于 SSH 的协议(如 rest:// 和 sftp://)、S3/B2 以及 rclone 支持的任何服务商,将数据存储到远程主机上;为获得更好的性能,应在仓库服务器上安装 Borg 的远程代理。
Borg 会在把数据发送到异地之前加密吗?会。所有数据都可以在客户端使用 256 位带认证的加密(AES-OCB 或 chacha20-poly1305)进行保护,然后才离开你的机器,从而确保机密性、完整性和真实性。
Borg 的重复数据删除到底是怎么工作的?每个文件会通过基于内容的分块被切分成长度可变的数据块,只有之前从未见过的数据块(通过 SHA256 或 BLAKE3 等加密哈希值识别)才会被存储,无论它们来自哪台机器、哪次备份或哪个文件。
我可以选择哪些压缩算法?你可以选择 lz4(速度快)、zstd(速度与压缩率兼顾)、zlib(速度和压缩率中等)或 lzma(压缩率最高,但速度较慢)。
我能像浏览普通文件夹一样浏览备份吗?可以。备份归档可以挂载为用户空间文件系统,让你用普通的文件管理器交互式地查看或还原文件。
为了防止指纹识别攻击,Borg 支持哪些哈希或分块选项?Borg 支持多种分块器,包括 fastcdc、buzhash 变体,以及基于密钥的 AES 分块器(toeplitz-aes、rabin-aes、goldilocks-aes)。这些分块器可以增加分块边界指纹攻击的难度,同时还可以选择性地混淆文件或数据块的大小。
What are similar projects?restic, tailcat, acme.sh, turbocrypt, bpytop, age, tmux, onedump
Creator
borgbackup
Size
44.6 MB
Stars
13.9K
Age
11y
Commits · 90 Days