Workflow

List of snapshots

In the beginning there is a list of old snapshots, each one based on the previous one, and the newest one is the current root file system.

List of snapshots with a read-write clone of the current root file system.

In the first step, a new snapshot of the current root file system will be created. This snapshot is set read write.

List of snapshots with a read-write clone of current root file system, which will be updated with zypper.

In the second step the snapshot will be updated. This can be zypper up or zypper dup, the installation or removal of a package or any other modification to the root file system.

List of snapshots with the clone set read-only.

In the third step the snapshot will be changed back to read-only, so that the data cannot be modified anymore.

List of snapshots with the read-only clone set as the new default.

The last step is to mark the updated snapshot as new root file system. This is the atomic step: If the power would have been pulled before, the unchanged old system would have been booted. Now the new, updated system will boot.

List of snapshots with the current root file system as newest at the end.

After reboot, the newly prepared snapshot is the new root file system. In case anything goes wrong a rollback to any of the older snapshots can be performed.

List of snapshots with a read-write clone of current root filesystem, which will be updated with zypper.

If the system is not rebooted and transactional-update is called again a new snapshot will be created and updated. This new snapshot is based on the current running root filesystem again, not on the new default snapshot! For stacking changes (i.e. if several commands are supposed to be combined in one single snapshot) the shell command can be used to perform any number of operations, or the --continue can be used to continue the latest snapshot while preserving a separate snapshot for each step.