Skip to content

Commit e41bfc2

Browse files
committed
docs: Clarify preserve-var migration guarantees
Explain that atomic per-entry namespace visibility does not make the migration a tree-wide snapshot or transaction, and distinguish both from crash durability. This helps operators reason about partial migrations and live database data. Assisted-by: AI
1 parent 1b816a9 commit e41bfc2

2 files changed

Lines changed: 16 additions & 8 deletions

File tree

‎docs/src/bootc-installation.7.md‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,14 @@ previous installation.
296296

297297
With the OSTree backend, `--preserve-var` copies the old `/var` into the new
298298
deployment before rebooting. It uses reflinks when supported and otherwise makes a
299-
full copy; neither strategy is a consistent snapshot of live data. Stop stateful
300-
services before copying their data. A completed copy is not guaranteed to survive
301-
sudden power loss or a kernel failure. `/var/tmp`, `/var/cache`, `/var/log/journal`,
302-
and `/var/lib/containers` are always excluded. Use repeatable
299+
full copy. Each new entry is staged and renamed into place atomically for
300+
namespace visibility. This is not a tree-wide point-in-time snapshot or a
301+
global all-or-nothing transaction: the copy proceeds over time, and a later
302+
failure can leave a partial migration. Neither strategy provides a consistent
303+
snapshot of live data; stop stateful services before copying their data. There
304+
is no crash-durability guarantee: copied content and renames are not guaranteed
305+
to survive sudden power loss or a kernel failure. `/var/tmp`, `/var/cache`,
306+
`/var/log/journal`, and `/var/lib/containers` are always excluded. Use repeatable
303307
`--preserve-var-skip PATH` options or the `preserve-var-skip` install configuration
304308
key for additional relative paths below `/var`.
305309

‎docs/src/man/bootc-install-to-existing-root.8.md‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,14 @@ to be cleaned up if desired when rebooted into the new root.
1919
The opt-in `--preserve-var` option copies the running system's `/var` into the
2020
new deployment before rebooting. It requires the OSTree backend, uses reflinks
2121
when supported, and otherwise performs a full copy. Reflinks are created per
22-
file, not as an atomic snapshot; stop stateful services or use a consistent
23-
snapshot before copying live database data. A completed copy is not guaranteed
24-
to survive sudden power loss or a kernel failure. The paths `tmp`, `cache`,
25-
`log/journal`, and `lib/containers` are always excluded. Repeat
22+
file. Each new entry is staged and renamed into place atomically for namespace
23+
visibility, but the migration is not a tree-wide point-in-time snapshot or a
24+
global all-or-nothing transaction: it proceeds over time, and a later failure
25+
can leave a partial migration. The copy is not a consistent snapshot of live
26+
data; stop stateful services or use a consistent snapshot before copying live
27+
database data. There is no crash-durability guarantee: copied content and
28+
renames are not guaranteed to survive sudden power loss or a kernel failure.
29+
The paths `tmp`, `cache`, `log/journal`, and `lib/containers` are always excluded. Repeat
2630
`--preserve-var-skip` to exclude additional paths relative to `/var`; each path
2731
may contain at most one slash, for example `lib/rpm`.
2832

0 commit comments

Comments
 (0)