1. How do I enable snapshots for my /home file system?

    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
  2. Why does snapper never show changes in /var/log?

    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 /".

  3. How can I exclude directories from snapshotting?

    When you are using btrfs you can create btrfs subvolumes for the directories you want to exclude from snapshotting. Unfortunately there is no dedicated command to convert a directory to a subvolume.

    For all filesystem types you can exclude directories from snapshotting by making the directories mount points.

  4. Does snapper support ext4?

    Yes, but only experimentally and you need a special kernel and e2fsprogs. For more information see the next4 project.

  5. Does snapper support LVM?

    Since version 0.0.12 snapper can handle LVM snapshots with thin-provisioning. See the blog Snapper and LVM thin-provisioned Snapshots.

  6. My system has high I/O load after running YaST or zypper. What can I do?

    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.

  7. I'm not using openSUSE. Can I still use snapper?

    We provide snapper packages for various distributions in the openSUSE buildservice, see project and download. Of course you can also compile snapper from source, see development.

  8. I didn't install my system with YaST. How do I get started?

    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.

  9. How do I add pre and post hooks (like YaST)?

    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"
  10. Does snapper really revert everything?

    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.

  11. How should I name my snapper configs?

    Snapper does not require you to use special names for your configs. But here are some recommendations:

    • The config for / should be called "root".
    • Configs for home directories should be named "home_<username>".

    That way you can use pam_snapper with the default configuration.

  12. Are there GUIs for snapper?

    Yes, there are independend projects providing GUIs for snapper:

    For help and questions about those projects please contact the corresponding author.