docs: fix broken examples and stale output samples in the usage docs

All command lines were executed against scratch repositories and all
output samples regenerated from real runs (prettified, not invented):

- recreate: the example used the removed --recompress; show
  borg repo-compress instead; refresh the borg info samples.
- diff: default/text output has modified:/added:/removed: labels and
  mtime/ctime brackets now; the JSON-lines example used borg1 keys
  and lacked --json-lines on the command; add --content-only.
- mount: example passed the repository as a positional (it would have
  been taken as the mountpoint); use -r.
- tar: the archive-copy loop was a bash syntax error and used
  borg list with repo-list-only format keys; replaced with a working
  while-read loop over borg repo-list (verified end-to-end, identical
  archive contents in the destination repo).
- key: regenerate repo-create/change-passphrase samples (hex-id named
  keyfiles, Key location line, no "Synchronizing index"); the import
  example silently did nothing without --key-location=keyfile; fix
  the Windows keys path (AppData\Local, not Roaming); explain why the
  keyfile name changes on passphrase change.
- transfer: the borg1->borg2 upgrade steps were missing --from-borg1
  and used a ssh:// destination URL (rejected for current repos);
  fix the Windows keys path.
- notes: --noatime and --nobsdflags no longer exist (atime is opt-in
  via --atime); stray "|" removed.
- compact: segments wording removed.
- info/repo-info/repo-delete/list/find: output samples regenerated
  (new labels/order, UTC offsets, repo version line, prompt text;
  isomtime format and symlink size corrected in list).
- general: fix broken inline markup (stray backtick).
- serve: the authorized_keys forced command needs --rest (it is
  deliberately not client-suppliable); document the actual client
  argument allowlist including --backend.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
Thomas Waldmann
2026-08-28 12:48:17 +02:00
co-authored by Claude Fable 5
parent 8a817db167
commit df6f4201f8
15 changed files with 147 additions and 103 deletions
+1 -1
View File
@@ -4,6 +4,6 @@ Examples
~~~~~~~~
::
# Compact segments and free repository disk space
# Free repository disk space by deleting unused chunks (rewriting packs as needed)
$ borg compact
+24 -14
View File
@@ -4,23 +4,33 @@ Examples
~~~~~~~~
::
# By default, borg diff reports metadata changes (mode, mtime, ctime, ...) besides
# the content changes, so the lines can get quite long:
$ borg diff archive1 archive2
+17 B -5 B [-rw-r--r-- -> -rwxr-xr-x] file1
+135 B -252 B file2
added 0 B file4
removed 0 B file3
[mtime: Fri, 2026-08-28 12:26:23.433047048 +0200 -> Fri, 2026-08-28 12:26:24.204040020 +0200] [ctime: Fri, 2026-08-28 12:26:23.433047048 +0200 -> Fri, 2026-08-28 12:26:24.204040020 +0200] .
modified: +17 B -5 B [-rw-r--r-- -> -rwxr-xr-x] [mtime: Fri, 2026-08-28 12:26:23.431245244 +0200 -> Fri, 2026-08-28 12:26:24.199251801 +0200] [ctime: Fri, 2026-08-28 12:26:23.431245244 +0200 -> Fri, 2026-08-28 12:26:24.200688313 +0200] file1
modified: +135 B -252 B [mtime: Fri, 2026-08-28 12:26:23.432895166 +0200 -> Fri, 2026-08-28 12:26:24.202236091 +0200] [ctime: Fri, 2026-08-28 12:26:23.432895166 +0200 -> Fri, 2026-08-28 12:26:24.202236091 +0200] file2
added: 0 B file4
removed: 0 B file3
$ borg diff archive1 archive2
{"path": "file1", "changes": [{"type": "modified", "added": 17, "removed": 5}, {"type": "mode", "old_mode": "-rw-r--r--", "new_mode": "-rwxr-xr-x"}]}
{"path": "file2", "changes": [{"type": "modified", "added": 135, "removed": 252}]}
{"path": "file4", "changes": [{"type": "added", "size": 0}]}
{"path": "file3", "changes": [{"type": "removed", "size": 0}]}
# --content-only hides the metadata changes and only reports content differences:
$ borg diff --content-only archive1 archive2
modified: +17 B -5 B file1
modified: +135 B -252 B file2
added: 0 B file4
removed: 0 B file3
# Use --json-lines to get one JSON object per changed path:
$ borg diff --json-lines --content-only archive1 archive2
{"changes": [{"added": 17, "removed": 5, "type": "modified"}], "path": "file1"}
{"changes": [{"added": 135, "removed": 252, "type": "modified"}], "path": "file2"}
{"changes": [{"added": 0, "removed": 0, "type": "added"}], "path": "file4"}
{"changes": [{"added": 0, "removed": 0, "type": "removed"}], "path": "file3"}
# Use --sort-by with a comma-separated list; sorts apply stably from last to first.
# Here: primary by net size change descending, tie-breaker by path ascending
$ borg diff --sort-by=">size_diff,path" archive1 archive2
+17 B -5 B [-rw-r--r-- -> -rwxr-xr-x] file1
removed 0 B file3
added 0 B file4
+135 B -252 B file2
$ borg diff --content-only --sort-by=">size_diff,path" archive1 archive2
modified: +17 B -5 B file1
removed: 0 B file3
added: 0 B file4
modified: +135 B -252 B file2
+5 -5
View File
@@ -6,14 +6,14 @@ Examples
# In which archives is this file? Searched / printed from newest to oldest archive.
$ borg find home/user/file.txt
41a2ed21 docs -rw-rw-r-- user user 1522 Sun, 2022-02-06 21:02:18 home/user/file.txt
20e70e3a docs -rw-rw-r-- user user 1440 Sun, 2022-01-30 20:47:32 home/user/file.txt
41a2ed21 docs -rw-rw-r-- user user 1522 Sun, 2022-02-06 21:02:18 +0100 home/user/file.txt
20e70e3a docs -rw-rw-r-- user user 1440 Sun, 2022-01-30 20:47:32 +0100 home/user/file.txt
# Find all jpg files in the last 3 archives.
$ borg find 'sh:**/*.jpg' --last 3
39c8956e photos -rw-rw-r-- user user 919337 Sat, 2022-01-01 14:20:21 photos/paris/eiffel.jpg
39c8956e photos -rw-rw-r-- user user 1023881 Sun, 2022-02-06 09:12:44 photos/rome/colosseum.jpg
04061a53 photos -rw-rw-r-- user user 919337 Sat, 2022-01-01 14:20:21 photos/paris/eiffel.jpg
39c8956e photos -rw-rw-r-- user user 919337 Sat, 2022-01-01 14:20:21 +0100 photos/paris/eiffel.jpg
39c8956e photos -rw-rw-r-- user user 1023881 Sun, 2022-02-06 09:12:44 +0100 photos/rome/colosseum.jpg
04061a53 photos -rw-rw-r-- user user 919337 Sat, 2022-01-01 14:20:21 +0100 photos/paris/eiffel.jpg
# Only print the archive and the path, nothing else.
$ borg find --format '{archiveid:.8} {archivename} {path}{NL}' home/user/file.txt
+1 -1
View File
@@ -6,7 +6,7 @@ a number of arguments and options and interprets various environment variables.
The following sections will describe each command in detail.
Commands, options, parameters, paths, and similar elements are shown in ``fixed-width``.
Option values are `underlined. Borg has a few options that accept a fixed set
Option values are underlined. Borg has a few options that accept a fixed set
of values (e.g., ``--encryption`` of :ref:`borg_repo-create`).
.. container:: experimental
+13 -12
View File
@@ -4,18 +4,19 @@ Examples
~~~~~~~~
::
$ borg info aid:f7dea078
$ borg info aid:059743db
Archive name: source-backup
Archive fingerprint: f7dea0788dfc026cc2be1c0f5b94beb4e4084eb3402fc40c38d8719b1bf2d943
Archive fingerprint: 059743db538840c04ee323673ac579d0b5433f2741c41f9643975df6370474f0
Comment:
Hostname: mba2020
Username: tw
Time (start): Sat, 2022-06-25 20:51:40
Time (end): Sat, 2022-06-25 20:51:40
Duration: 0.03 seconds
Command line: /usr/bin/borg -r path/to/repo create source-backup src
Utilization of maximum supported archive size: 0%
Number of files: 244
Original size: 13.80 MB
Deduplicated size: 531 B
Hostname: host
Username: user
Tags:
Time (nominal): Fri, 2026-08-28 12:25:52 +0200
Time (start): Fri, 2026-08-28 12:25:52 +0200
Time (end): Fri, 2026-08-28 12:25:52 +0200
Duration: 0.006 seconds
Command line: /usr/bin/borg -r /path/to/repo create source-backup src
Working Directory: /home/user
Number of files: 3
Original size: 3.00 MB
+19 -10
View File
@@ -13,34 +13,43 @@ Examples
Initializing repository at "/path/to/repo"
Enter new passphrase:
Enter same passphrase again:
Do you want your passphrase to be displayed for verification? [yN]: n
Remember your passphrase. Your data will be inaccessible without it.
Key in "/root/.config/borg/keys/mnt_backup" created.
Key in "/root/.config/borg/keys/f23b5f0703c06dc7d9d889b5867496d8cb8ef5b42a5005221d3c7373ec6d6353" created.
Keep this key safe. Your data will be inaccessible without it.
Synchronizing index...
Archives: 0, w/ index: 0, w/ outdated index: 0, w/o index: 0.
Done.
...
# Change key file passphrase
$ borg key change-passphrase -v
Enter passphrase for key /root/.config/borg/keys/mnt_backup:
Enter passphrase for key /root/.config/borg/keys/f23b5f0703c06dc7d9d889b5867496d8cb8ef5b42a5005221d3c7373ec6d6353:
Enter new passphrase:
Enter same passphrase again:
Do you want your passphrase to be displayed for verification? [yN]: n
Remember your passphrase. Your data will be inaccessible without it.
Key updated
Key location: /root/.config/borg/keys/4881c2f73d9f173bd4c4d30a9f397a596bc742bfa1f652fac3f83cee3f26cb00
.. note::
Automatically placed key files are named after the SHA-256 hash of their own
contents, not after the repository directory name. Because changing the
passphrase re-encrypts the key, the key file is rewritten under a new name and
the previous one is removed — that is why the two paths above differ. Use
``BORG_KEY_FILE`` if you want to choose the key file name yourself.
The key file paths shown above are the defaults for Linux (``~/.config/borg/keys/``).
On macOS, key files are stored in ``~/Library/Application Support/borg/keys/``.
On Windows, they are stored in ``C:\Users\<user>\AppData\Roaming\borg\keys\``.
On Windows, they are stored in ``C:\Users\<user>\AppData\Local\borg\borg\keys\``.
See :ref:`env_vars` for details.
::
# Import a previously-exported key into the specified
# key file (creating or overwriting the output key)
# (keyfile repositories only)
$ BORG_KEY_FILE=/path/to/output-key borg key import /path/to/exported
# Import a previously-exported key into a key file, using BORG_KEY_FILE to
# choose the output key file (creating or overwriting it).
# --key-location=keyfile is required: "borg key import" defaults to
# --key-location=repokey, which stores the key in the repository and
# ignores BORG_KEY_FILE.
$ BORG_KEY_FILE=/path/to/output-key borg key import --key-location=keyfile /path/to/exported
Fully automated using environment variables:
+17 -17
View File
@@ -5,35 +5,35 @@ Examples
::
$ borg list root-2016-02-15
drwxr-xr-x root root 0 Mon, 2016-02-15 17:44:27 .
drwxrwxr-x root root 0 Mon, 2016-02-15 19:04:49 bin
-rwxr-xr-x root root 1029624 Thu, 2014-11-13 00:08:51 bin/bash
lrwxrwxrwx root root 0 Fri, 2015-03-27 20:24:26 bin/bzcmp -> bzdiff
-rwxr-xr-x root root 2140 Fri, 2015-03-27 20:24:22 bin/bzdiff
drwxr-xr-x root root 0 Mon, 2016-02-15 17:44:27 +0100 .
drwxrwxr-x root root 0 Mon, 2016-02-15 19:04:49 +0100 bin
-rwxr-xr-x root root 1029624 Thu, 2014-11-13 00:08:51 +0100 bin/bash
lrwxrwxrwx root root 6 Fri, 2015-03-27 20:24:26 +0100 bin/bzcmp -> bzdiff
-rwxr-xr-x root root 2140 Fri, 2015-03-27 20:24:22 +0100 bin/bzdiff
...
$ borg list root-2016-02-15 --pattern "- bin/ba*"
drwxr-xr-x root root 0 Mon, 2016-02-15 17:44:27 .
drwxrwxr-x root root 0 Mon, 2016-02-15 19:04:49 bin
lrwxrwxrwx root root 0 Fri, 2015-03-27 20:24:26 bin/bzcmp -> bzdiff
-rwxr-xr-x root root 2140 Fri, 2015-03-27 20:24:22 bin/bzdiff
drwxr-xr-x root root 0 Mon, 2016-02-15 17:44:27 +0100 .
drwxrwxr-x root root 0 Mon, 2016-02-15 19:04:49 +0100 bin
lrwxrwxrwx root root 6 Fri, 2015-03-27 20:24:26 +0100 bin/bzcmp -> bzdiff
-rwxr-xr-x root root 2140 Fri, 2015-03-27 20:24:22 +0100 bin/bzdiff
...
$ borg list archiveA --format="{mode} {user:6} {group:6} {size:8d} {isomtime} {path}{extra}{NEWLINE}"
drwxrwxr-x user user 0 Sun, 2015-02-01 11:00:00 .
drwxrwxr-x user user 0 Sun, 2015-02-01 11:00:00 code
drwxrwxr-x user user 0 Sun, 2015-02-01 11:00:00 code/myproject
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 code/myproject/file.ext
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 code/myproject/file.text
drwxrwxr-x user user 0 2015-02-01T11:00:00.000000+01:00 .
drwxrwxr-x user user 0 2015-02-01T11:00:00.000000+01:00 code
drwxrwxr-x user user 0 2015-02-01T11:00:00.000000+01:00 code/myproject
-rw-rw-r-- user user 1416192 2015-02-01T11:00:00.000000+01:00 code/myproject/file.ext
-rw-rw-r-- user user 1416192 2015-02-01T11:00:00.000000+01:00 code/myproject/file.text
...
$ borg list archiveA --pattern '+ re:\.ext$' --pattern '- re:^.*$'
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 code/myproject/file.ext
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 +0100 code/myproject/file.ext
...
$ borg list archiveA --pattern '+ re:.ext$' --pattern '- re:^.*$'
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 code/myproject/file.ext
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 code/myproject/file.text
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 +0100 code/myproject/file.ext
-rw-rw-r-- user user 1416192 Sun, 2015-02-01 11:00:00 +0100 code/myproject/file.text
...
# Use --sort-by with a comma-separated list; sorts apply stably from last to first.
+1 -1
View File
@@ -39,7 +39,7 @@ Examples
# Exclusion options are supported.
# These can speed up mounting and lower memory needs significantly.
$ borg mount /path/to/repo /tmp/mymountpoint only/that/path
$ borg mount -r /path/to/repo /tmp/mymountpoint only/that/path
$ borg mount --exclude '...' /tmp/mymountpoint
+12 -11
View File
@@ -14,7 +14,7 @@ resource usage (RAM and disk space) as the amount of resources needed is
(also) determined by the total number of chunks in the repository (see
:ref:`cache-memory-usage` for details).
``--chunker-params=fastcdc,10,23,16,2`` results in a fine-grained deduplication|
``--chunker-params=fastcdc,10,23,16,2`` results in a fine-grained deduplication
and creates a large number of chunks and thus uses a lot of resources to manage
them. This is good for relatively small data volumes and if the machine has a
good amount of free RAM and disk space.
@@ -60,19 +60,20 @@ a new repository when changing chunker parameters.
For more details, see :ref:`chunker_details`.
``--noatime / --noctime``
~~~~~~~~~~~~~~~~~~~~~~~~~
``--atime / --noctime / --nobirthtime``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can use these ``borg create`` options to not store the respective timestamp
into the archive, in case you do not really need it.
``borg create`` does not store atime by default — use ``--atime`` if you do
need it. ctime and birthtime are stored by default and can be omitted with
``--noctime`` and ``--nobirthtime``.
Besides saving a little space by omitting the timestamp, it might also
affect metadata stream deduplication: if only this timestamp changes between
backups and is stored into the metadata stream, the metadata stream chunks
will not deduplicate just because of that.
Besides saving a little space by omitting a timestamp, storing fewer timestamps
might also help metadata stream deduplication: if only such a timestamp changes
between backups and is stored into the metadata stream, the metadata stream
chunks will not deduplicate just because of that.
``--nobsdflags / --noflags``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``--noflags``
~~~~~~~~~~~~~
You can use this to avoid querying and storing (or extracting and setting) flags — in case
you don't need them or if they are broken for your filesystem.
+17 -10
View File
@@ -5,26 +5,33 @@ Examples
::
# Create a backup with fast, low compression
$ borg create archive /some/files --compression lz4
# Then recompress it — this might take longer, but the backup has already completed,
# so there are no inconsistencies from a long-running backup job.
$ borg recreate -a archive --recompress --compression zlib,9
$ borg create archive files --compression lz4
# Then recompress the data already stored in the repository — this might take longer,
# but the backup has already completed, so there are no inconsistencies from a
# long-running backup job. Note that recompressing existing repository data is the
# job of "borg repo-compress", not of "borg recreate".
$ borg repo-compress --compression zlib,9 --stats
Recompression stats:
Packs: 2 total, 2 rewritten.
Objects: 5 total, 2 recompressed, 0 already had the desired compression, 3 kept as-is (recompression brings no gain).
Repository size: 301.59 kB before, 301.53 kB after, shrunk by 60 B.
# Remove unwanted files from all archives in a repository.
# Note the relative path for the --exclude option — archives only contain relative paths.
$ borg recreate --exclude home/icke/Pictures/drunk_photos
# Change the archive comment
$ borg create --comment "This is a comment" archivename ~
# Change the archive comment. Note that recreate writes a new archive,
# so the archive fingerprint changes.
$ borg create --comment "This is a comment" archivename files
$ borg info -a archivename
Name: archivename
Fingerprint: ...
Archive name: archivename
Archive fingerprint: 6cfecdd4e963bbe150c08169407de0353a4c5f2f90221646a9ebb0ce9be2529a
Comment: This is a comment
...
$ borg recreate --comment "This is a better comment" -a archivename
$ borg info -a archivename
Name: archivename
Fingerprint: ...
Archive name: archivename
Archive fingerprint: 259b5302a8de9c889fb4915fe5df128f6c22776966db2dc3c7d3c8e741bf45b6
Comment: This is a better comment
...
+5 -4
View File
@@ -6,9 +6,10 @@ Examples
# delete the whole repository and the related local cache:
$ borg repo-delete
You requested to DELETE the repository completely *including* all archives it contains:
repo Mon, 2016-02-15 19:26:54
root-2016-02-15 Mon, 2016-02-15 19:36:29
newname Mon, 2016-02-15 19:50:19
You requested to DELETE the following repository completely *including* 2 archives it contains:
------------------------------------------------------------------------------
Repository ID: e7046adda9b2a76bb4fac8d707ab7dc12a836391c8c3612cc12d461e713c5bc1
Location: /path/to/repo
------------------------------------------------------------------------------
Type 'YES' if you understand this and want to continue: YES
+5 -8
View File
@@ -5,13 +5,10 @@ Examples
::
$ borg repo-info
Repository ID: 0e85a7811022326c067acb2a7181d5b526b7d2f61b34470fb8670c440a67f1a9
Location: /Users/tw/w/borg/path/to/repo
Repository ID: 0a2744f216526be75ae14a5fa5b123127bb218558219f6203e09e4f220e45903
Location: /path/to/repo
Repository version: 4
Encrypted: Yes (repokey, aes256-ocb, sha256)
Cache: /Users/tw/.cache/borg/0e85a7811022326c067acb2a7181d5b526b7d2f61b34470fb8670c440a67f1a9
Security dir: /Users/tw/.config/borg/security/0e85a7811022326c067acb2a7181d5b526b7d2f61b34470fb8670c440a67f1a9
Original size: 152.14 MB
Deduplicated size: 30.38 MB
Unique chunks: 654
Total chunks: 3302
Security directory: /home/user/.local/share/borg/security/0a2744f216526be75ae14a5fa5b123127bb218558219f6203e09e4f220e45903
Cache: /home/user/.cache/borg/0a2744f216526be75ae14a5fa5b123127bb218558219f6203e09e4f220e45903
+14 -2
View File
@@ -13,6 +13,15 @@ options. This list currently contains:
such as ``--verbose``, ``--info``, ``--debug``, ``--debug-topic``, etc.
- ``--lock-wait`` to allow the client to control how long to wait before
giving up and aborting the operation when another process is holding a lock.
- ``--backend`` to allow the client to choose *which* repository it wants to
use (see ``borg serve --rest``). The forced command keeps pinning the
restrictions: the client-given backend is validated against
``--restrict-to-path`` / ``--restrict-to-repository``.
Notably, ``--rest`` is *not* in the allowlist, so the forced command pins the
mode (current ``rest://`` repositories vs. legacy Borg 1.x repositories), and
neither are ``--restrict-to-path``, ``--restrict-to-repository``, ``--umask``
and ``--permissions``.
Environment variables (such as BORG_XXX) contained in the original
command sent by the client are *not* interpreted, but ignored. If BORG_XXX environment
@@ -24,12 +33,15 @@ locations like ``/etc/environment`` or in the forced command itself (example bel
# Allow an SSH keypair to run only borg, and only have access to /path/to/repo.
# Use key options to disable unneeded and potentially dangerous SSH functionality.
# This will help to secure an automated remote backup system.
# --rest serves a current (rest://) repository; without it, a legacy Borg 1.x
# repository would be served. The client supplies --backend FILE:<path>,
# which is validated against --restrict-to-path.
$ cat ~/.ssh/authorized_keys
command="borg serve --restrict-to-path /path/to/repo",restrict ssh-rsa AAAAB3[...]
command="borg serve --rest --restrict-to-path /path/to/repo",restrict ssh-rsa AAAAB3[...]
# Specify repository permissions for an SSH keypair.
$ cat ~/.ssh/authorized_keys
command="borg serve --permissions=read-only",restrict ssh-rsa AAAAB3[...]
command="borg serve --rest --permissions=read-only",restrict ssh-rsa AAAAB3[...]
# Set a BORG_XXX environment variable on the "borg serve" side
$ cat ~/.ssh/authorized_keys
+5 -3
View File
@@ -33,14 +33,16 @@ Examples
Archives transfer script
~~~~~~~~~~~~~~~~~~~~~~~~
Outputs a script that copies all archives from repo1 to repo2:
Outputs a script that copies all archives from repo1 to repo2
(``bash``, because it uses process substitution). Remove the ``echo`` to
actually run the commands instead of just printing them:
::
for N I T in `borg list --format='{archive} {id} {time:%Y-%m-%dT%H:%M:%S}{NL}'`
while read -r N I T
do
echo "borg -r repo1 export-tar --tar-format=BORG aid:$I - | borg -r repo2 import-tar --timestamp=$T $N -"
done
done < <(borg -r repo1 repo-list --format='{name} {id} {time:%Y-%m-%dT%H:%M:%S}{NL}')
Kept:
+8 -4
View File
@@ -8,7 +8,9 @@ locations and passphrases first:
::
export BORG_REPO=ssh://borg2@borgbackup/./tests/b20
# The destination is a Borg 2 repository: use a rest:// (or local) location,
# ssh:// is only supported for the legacy Borg 1.x source repository.
export BORG_REPO=rest://borg2@borgbackup/tests/b20
export BORG_PASSPHRASE='your-borg2-repo-passphrase'
export BORG_OTHER_REPO=ssh://borg2@borgbackup/./tests/b1x
export BORG_OTHER_PASSPHRASE='your-borg1-repo-passphrase'
@@ -27,7 +29,8 @@ locations and passphrases first:
# between old archives (copied with borg transfer) and future ones.
# The AEAD cipher does not matter (everything must be re-encrypted and
# re-authenticated anyway); you could also choose chacha20-poly1305.
$ borg repo-create -e aes256-ocb
# --from-borg1 is required so the other repository is opened as a Borg 1.x repository.
$ borg repo-create --from-borg1 -e aes256-ocb
# 2. Check what and how much it would transfer:
$ borg transfer --from-borg1 --dry-run
@@ -54,7 +57,8 @@ locations and passphrases first:
# use for all future Borg 2.0 archives.
# The AEAD cipher does not matter (everything must be re-encrypted and
# re-authenticated anyway); you could also choose -e chacha20-poly1305 -i blake3.
$ borg repo-create -e aes256-ocb -i blake3
# --from-borg1 is required so the other repository is opened as a Borg 1.x repository.
$ borg repo-create --from-borg1 -e aes256-ocb -i blake3
$ export CHUNKER_PARAMS="fastcdc,19,23,21,2"
# 2. Check what and how much it would transfer:
@@ -81,7 +85,7 @@ On **macOS**, Borg 1.x stored key files in ``~/.config/borg/keys/``,
but Borg 2 defaults to ``~/Library/Application Support/borg/keys/``.
On **Windows**, Borg 1.x used XDG-style paths (e.g. ``~/.config/borg/keys/``),
while Borg 2 defaults to ``C:\Users\<user>\AppData\Roaming\borg\keys\``.
while Borg 2 defaults to ``C:\Users\<user>\AppData\Local\borg\borg\keys\``.
If Borg 2 cannot find your key file, you have several options: