Donations

Donations received in June: $70 Donate: Paypal | Patreon | Bitcoin

Timeshift BTRFS


Timeshift BTRFS is a fork of Timeshift for BTRFS filesystem. You can use this application only if your Linux system is installed on a BTRFS partition.

BTRFS is an advanced, experimental file system with in-built support for filesystem snapshots. Since snapshots are natively supported by the filesystem, creation and restoration of snapshots is extremely fast and takes less than two seconds. The snapshots initially do not take any space on disk and slowly "grow" in size as the original system files get modified over time. Read more about it at the following links:

Bitrot and atomic COWs: Inside "next-gen" filesystems

Features:

Super-fast Snapshot Creation

Creating a BTFS snapshot is very fast. It usually takes one or two seconds.

BTRFS snapshots are created by creating a subvolume that shares files with the root subvolume. Files don't need to be copied (only file system metadata needs to be updated) which makes the process very fast.

Snapshots takes ZERO space initially

BTRFS is a copy-on-write filesystem. This means that when an existing file is modified, changes are written to new data blocks instead of overwriting older data blocks. So we can have multiple copies of a file which share data blocks with each other thus saving disk space.

Because of this, snapshots do not occupy any extra space on disk when it is first created. As the system files get modified over a period of time, the modified files will get duplicated by the file system and the snapshot will gradually "grow" to take up extra space.

Super-fast Restore

Snapshots are restored by renaming subvolumes. Since files don't need to be copied or deleted, restoring a snapshot is very fast and takes less than a second.

You can continue working on your current system after restoring. There is no need to reboot. The restored snapshot will become active the next time you reboot your system.

Your current system will be preserved as a "snapshot" which you can restore later to undo the restore.

Also since the snapshot is a perfect copy of your system (nothing is excluded) the system that you get after restore will be perfectly same as the system that you had snapshotted.

Differences between Timeshift RSYNC and Timeshift BTRFS

The differences are listed below.

Timeshift BTRFSTimeshift RSYNC
Snapshots are a perfect copy of the root and home subvolumes. Snapshots are not perfect copies as some files and directories are always excluded.
No option to exclude files and directories. All files in user's home directory (including documents) will be reverted to the previous version after doing a restore. Latest versions of files will be preserved in a new snapshot created before restore Files and directories can be excluded to save disk space. Dynamic directories are excluded by default (/dev, /proc, ..) and additional directories can be specified by user (internet cache, ..)
Snapshot do not take any extra space on disk initially First snapshot requires space equal to system size. Subsequent snapshots create copies of files that have changed.
System partition must be formatted with BTRFS file system. System partition can be formatted with any file system. Backup partition can have any Linux file system that supports hard-links (ext3, ext4, reiserfs, etc)
Snapshot must be saved on the same device Snapshot can be saved on other devices also
Snapshot creation takes less than 2 seconds First snapshot can take upto 10 minutes to create since all files are copied. Subsequent snapshots are faster since only changed files are copied.
Snapshots can be restored without having to reboot the running system immediately. System will be rebooted after snapshot is restored.
Restoring a snapshot does not delete or overwrite any files on the current system. There is no data loss as the current system will be preserved as another snapshot. Modified system files will be overwritten by files from snapshot. New files are copied and extra files are deleted.


Installation

Ubuntu 12.04, 14.04 and 14.10 users can install from PPA:

sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift-btrfs

Installers for other Linux distributions are available at following links:

timeshift-btrfs-latest-i386.run (32-bit, 200 KB)
timeshift-btrfs-latest-amd64.run (64-bit, 200 KB)


Donate

If you wish to support the development of this program, please consider purchasing a support subscription for $10 or leaving a donation using the PayPal link below. Your contributions will help in keeping this project alive and to develop it further.

Options

7 comments:

  1. Mouse cursor theme changes when moving around in Timeshift BTRFS window. I guess it changes to some fallback theme (i.e. Adwaita)? This is not a big issue, but very annoying. Is the a way to fix this?
    Regards/ Tomas Nilzon, Sweden

    ReplyDelete
    Replies
    1. Timeshift BTRFS is not being maintained anymore. Install Timeshift and select BTRFS mode from the Settings window. Let me know if the cursor issue occurs with Timeshift.

      Delete
  2. Thank you for a fast reply. I installed the latest Timeshift (v17.2), and the issue with the mouse cursor theme is the same as in Timeshift BTRFS. I guess it is some problem with setting cursor theme in the KDE System Settings for user root, but there are no problem in my other software. Is Timeshift written in Qt5 or Qt4, or something else? You can also reach me on my e-mail tomas.nilzon@telia.com
    Thanks/ Tomas Nilzon, Sweden

    ReplyDelete
  3. Screen dump System Cursor Theme: http://pc.cd/N6YotalK
    Screen dump Cursor theme in Timeshift window: http://pc.cd/bEYotalK
    / Tomas Nilzon, Sweden

    ReplyDelete
    Replies
    1. Will be fixed in next update. Thanks

      Delete
  4. Great, Thanks. Could you also then please correct the same issue in some of the dialogues in 'Aptik' (i.e. "Backup/Themes and Icons", and "Backup/System Settings").
    Thanks for supplying useful tools!
    / Tomas

    ReplyDelete
  5. The download link not working

    ReplyDelete