123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- '\" t
- .\" Man page generated from reStructuredText.
- .
- .
- .nr rst2man-indent-level 0
- .
- .de1 rstReportMargin
- \\$1 \\n[an-margin]
- level \\n[rst2man-indent-level]
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
- -
- \\n[rst2man-indent0]
- \\n[rst2man-indent1]
- \\n[rst2man-indent2]
- ..
- .de1 INDENT
- .\" .rstReportMargin pre:
- . RS \\$1
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
- . nr rst2man-indent-level +1
- .\" .rstReportMargin post:
- ..
- .de UNINDENT
- . RE
- .\" indent \\n[an-margin]
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .nr rst2man-indent-level -1
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
- ..
- .TH "BORG-INIT" "1" "2025-04-18" "" "borg backup tool"
- .SH NAME
- borg-init \- Initialize an empty repository
- .SH SYNOPSIS
- .sp
- borg [common options] init [options] [REPOSITORY]
- .SH DESCRIPTION
- .sp
- This command initializes an empty repository. A repository is a filesystem
- directory containing the deduplicated data from zero or more archives.
- .SS Encryption mode TLDR
- .sp
- The encryption mode can only be configured when creating a new repository \-
- you can neither configure it on a per\-archive basis nor change the
- encryption mode of an existing repository.
- .sp
- Use \fBrepokey\fP:
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .EX
- borg init \-\-encryption repokey /path/to/repo
- .EE
- .UNINDENT
- .UNINDENT
- .sp
- Or \fBrepokey\-blake2\fP depending on which is faster on your client machines (see below):
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .EX
- borg init \-\-encryption repokey\-blake2 /path/to/repo
- .EE
- .UNINDENT
- .UNINDENT
- .sp
- Borg will:
- .INDENT 0.0
- .IP 1. 3
- Ask you to come up with a passphrase.
- .IP 2. 3
- Create a borg key (which contains 3 random secrets. See \fIkey_files\fP).
- .IP 3. 3
- Encrypt the key with your passphrase.
- .IP 4. 3
- Store the encrypted borg key inside the repository directory (in the repo config).
- This is why it is essential to use a secure passphrase.
- .IP 5. 3
- Encrypt and sign your backups to prevent anyone from reading or forging them unless they
- have the key and know the passphrase. Make sure to keep a backup of
- your key \fBoutside\fP the repository \- do not lock yourself out by
- \(dqleaving your keys inside your car\(dq (see \fIborg_key_export\fP).
- For remote backups the encryption is done locally \- the remote machine
- never sees your passphrase, your unencrypted key or your unencrypted files.
- Chunking and id generation are also based on your key to improve
- your privacy.
- .IP 6. 3
- Use the key when extracting files to decrypt them and to verify that the contents of
- the backups have not been accidentally or maliciously altered.
- .UNINDENT
- .SS Picking a passphrase
- .sp
- Make sure you use a good passphrase. Not too short, not too simple. The real
- encryption / decryption key is encrypted with / locked by your passphrase.
- If an attacker gets your key, he can\(aqt unlock and use it without knowing the
- passphrase.
- .sp
- Be careful with special or non\-ascii characters in your passphrase:
- .INDENT 0.0
- .IP \(bu 2
- Borg processes the passphrase as unicode (and encodes it as utf\-8),
- so it does not have problems dealing with even the strangest characters.
- .IP \(bu 2
- BUT: that does not necessarily apply to your OS / VM / keyboard configuration.
- .UNINDENT
- .sp
- So better use a long passphrase made from simple ascii chars than one that
- includes non\-ascii stuff or characters that are hard/impossible to enter on
- a different keyboard layout.
- .sp
- You can change your passphrase for existing repos at any time, it won\(aqt affect
- the encryption/decryption key or other secrets.
- .SS More encryption modes
- .sp
- Only use \fB\-\-encryption none\fP if you are OK with anyone who has access to
- your repository being able to read your backups and tamper with their
- contents without you noticing.
- .sp
- If you want \(dqpassphrase and having\-the\-key\(dq security, use \fB\-\-encryption keyfile\fP\&.
- The key will be stored in your home directory (in \fB~/.config/borg/keys\fP).
- .sp
- If you do \fBnot\fP want to encrypt the contents of your backups, but still
- want to detect malicious tampering use \fB\-\-encryption authenticated\fP\&.
- To normally work with \fBauthenticated\fP repos, you will need the passphrase, but
- there is an emergency workaround, see \fBBORG_WORKAROUNDS=authenticated_no_key\fP docs.
- .sp
- If \fBBLAKE2b\fP is faster than \fBSHA\-256\fP on your hardware, use \fB\-\-encryption authenticated\-blake2\fP,
- \fB\-\-encryption repokey\-blake2\fP or \fB\-\-encryption keyfile\-blake2\fP\&. Note: for remote backups
- the hashing is done on your local machine.
- .\" nanorst: inline-fill
- .
- .TS
- box center;
- l|l|l|l.
- T{
- Hash/MAC
- T} T{
- Not encrypted
- no auth
- T} T{
- Not encrypted,
- but authenticated
- T} T{
- Encrypted (AEAD w/ AES)
- and authenticated
- T}
- _
- T{
- SHA\-256
- T} T{
- none
- T} T{
- \fIauthenticated\fP
- T} T{
- repokey
- keyfile
- T}
- _
- T{
- BLAKE2b
- T} T{
- n/a
- T} T{
- \fIauthenticated\-blake2\fP
- T} T{
- \fIrepokey\-blake2\fP
- \fIkeyfile\-blake2\fP
- T}
- .TE
- .\" nanorst: inline-replace
- .
- .sp
- Modes \fImarked like this\fP in the above table are new in Borg 1.1 and are not
- backwards\-compatible with Borg 1.0.x.
- .sp
- On modern Intel/AMD CPUs (except very cheap ones), AES is usually
- hardware\-accelerated.
- BLAKE2b is faster than SHA256 on Intel/AMD 64\-bit CPUs
- (except AMD Ryzen and future CPUs with SHA extensions),
- which makes \fIauthenticated\-blake2\fP faster than \fInone\fP and \fIauthenticated\fP\&.
- .sp
- On modern ARM CPUs, NEON provides hardware acceleration for SHA256 making it faster
- than BLAKE2b\-256 there. NEON accelerates AES as well.
- .sp
- Hardware acceleration is always used automatically when available.
- .sp
- \fIrepokey\fP and \fIkeyfile\fP use AES\-CTR\-256 for encryption and HMAC\-SHA256 for
- authentication in an encrypt\-then\-MAC (EtM) construction. The chunk ID hash
- is HMAC\-SHA256 as well (with a separate key).
- These modes are compatible with Borg 1.0.x.
- .sp
- \fIrepokey\-blake2\fP and \fIkeyfile\-blake2\fP are also authenticated encryption modes,
- but use BLAKE2b\-256 instead of HMAC\-SHA256 for authentication. The chunk ID
- hash is a keyed BLAKE2b\-256 hash.
- These modes are new and \fInot\fP compatible with Borg 1.0.x.
- .sp
- \fIauthenticated\fP mode uses no encryption, but authenticates repository contents
- through the same HMAC\-SHA256 hash as the \fIrepokey\fP and \fIkeyfile\fP modes (it uses it
- as the chunk ID hash). The key is stored like \fIrepokey\fP\&.
- This mode is new and \fInot\fP compatible with Borg 1.0.x.
- .sp
- \fIauthenticated\-blake2\fP is like \fIauthenticated\fP, but uses the keyed BLAKE2b\-256 hash
- from the other blake2 modes.
- This mode is new and \fInot\fP compatible with Borg 1.0.x.
- .sp
- \fInone\fP mode uses no encryption and no authentication. It uses SHA256 as chunk
- ID hash. This mode is not recommended, you should rather consider using an authenticated
- or authenticated/encrypted mode. This mode has possible denial\-of\-service issues
- when running \fBborg create\fP on contents controlled by an attacker.
- Use it only for new repositories where no encryption is wanted \fBand\fP when compatibility
- with 1.0.x is important. If compatibility with 1.0.x is not important, use
- \fIauthenticated\-blake2\fP or \fIauthenticated\fP instead.
- This mode is compatible with Borg 1.0.x.
- .SH OPTIONS
- .sp
- See \fIborg\-common(1)\fP for common options of Borg commands.
- .SS arguments
- .INDENT 0.0
- .TP
- .B REPOSITORY
- repository to create
- .UNINDENT
- .SS options
- .INDENT 0.0
- .TP
- .BI \-e \ MODE\fR,\fB \ \-\-encryption \ MODE
- select encryption key mode \fB(required)\fP
- .TP
- .B \-\-append\-only
- create an append\-only mode repository. Note that this only affects the low level structure of the repository, and running \fIdelete\fP or \fIprune\fP will still be allowed. See \fIappend_only_mode\fP in Additional Notes for more details.
- .TP
- .BI \-\-storage\-quota \ QUOTA
- Set storage quota of the new repository (e.g. 5G, 1.5T). Default: no quota.
- .TP
- .B \-\-make\-parent\-dirs
- create the parent directories of the repository directory, if they are missing.
- .UNINDENT
- .SH EXAMPLES
- .INDENT 0.0
- .INDENT 3.5
- .sp
- .EX
- # Local repository, repokey encryption, BLAKE2b (often faster, since Borg 1.1)
- $ borg init \-\-encryption=repokey\-blake2 /path/to/repo
- # Local repository (no encryption)
- $ borg init \-\-encryption=none /path/to/repo
- # Remote repository (accesses a remote borg via ssh)
- # repokey: stores the (encrypted) key into <REPO_DIR>/config
- $ borg init \-\-encryption=repokey\-blake2 user@hostname:backup
- # Remote repository (accesses a remote borg via ssh)
- # keyfile: stores the (encrypted) key into ~/.config/borg/keys/
- $ borg init \-\-encryption=keyfile user@hostname:backup
- .EE
- .UNINDENT
- .UNINDENT
- .SH SEE ALSO
- .sp
- \fIborg\-common(1)\fP, \fIborg\-create(1)\fP, \fIborg\-delete(1)\fP, \fIborg\-check(1)\fP, \fIborg\-list(1)\fP, \fIborg\-key\-import(1)\fP, \fIborg\-key\-export(1)\fP, \fIborg\-key\-change\-passphrase(1)\fP
- .SH AUTHOR
- The Borg Collective
- .\" Generated by docutils manpage writer.
- .
|