You will have to create a snapper config for /home by calling:
snapper -c home create-config /home
You can also have a subvolume for every single home directory. Then create a snapper config for e.g. the user "tux" by calling:
snapper -c home_tux create-config /home/tux
In that case you can allow user "tux" to work with the config by calling:
snapper -c home_tux set-config SYNC_ACL=yes ALLOW_USERS=tux
For some directories, openSUSE decided to disable snapshotting, e.g. "/var/log" since reverting logs makes searching for problems difficult. To exclude a path from snapshotting, openSUSE creates a subvolume for that path. You can see all subvolumes of "/" by calling "btrfs subvolume list /".
For all filesystem types you can exclude directories from snapshotting by making the directories mount points.
Yes, but only experimentally and you need a special kernel and e2fsprogs. For more information see the next4 project.
Since version 0.0.12 snapper can handle LVM snapshots with thin-provisioning. See the blog Snapper and LVM thin-provisioned Snapshots.
When running YaST or zypper, snapper creates two snapshots and compares them. This comparison can cause high I/O load.
Since snapper version 0.0.10, you can disable the background comparisons in the config file /etc/snapper/configs/root by setting:
Now you might also want to disable cleanup of empty pre-post snapshot pairs since otherwise the daily cleanup can cause high I/O.
After you have installed snapper packages, you will have to create a config for your root filesystem by calling:
snapper create-config /
Then continue with the tutorial.
You will have to insert two calls to snapper in your program or script. In the first call use the option --print-number, remember the value and pass it on to the second call. Have a look at /sbin/yast2 to see how this can be done in bash or at /usr/lib/zypp/plugins/commit/snapper.py for python.
Since snapper version 0.0.9, you can also provide a command to snapper and snapper will create pre and post snapshots running the command in between, e.g.:
snapper create --command "make install" --description "install mplayer"
Snapper will revert all files (text and binary) including permissions, ownership and extended attributes and also remove and recreate files and directories. File timestamps are not reverted. Some files are excluded, e.g. /etc/mtab.
It's recommended to always use the status command to see in advance what files snapper will process.
Snapper does not require you to use special names for your configs. But here are some recommendations:
That way you can use pam_snapper with the default configuration.
Yes, there are independend projects providing GUIs for snapper:
For help and questions about those projects please contact the corresponding author.