How to Use Timeshift to Backup and Restore Linux System

Timeshift is an open-source system restore tool that creates incremental filesystem snapshots using either of 2 modes: BTRFS snapshots or rsync+hardlinks.

With it, you can schedule backups at multiple levels using filters and the backups can be restored from Live CD/USB or directly from the system while it is running.

The goal of Timeshift is to maintain the history and integrity of your file system files and settings and not to back up your media files or documents. To do that, you will need a different backup app.

What’s the difference between BTRFS mode and RSYNC mode?

BTRFS Mode creates backups using the BTRFS filesystem’s inbuilt features and the snapshots are supported on only systems that have an Ubuntu-type subvolume layout.

RSYNC Mode backups are made using rsync and hard-links and while each snapshot is a full backup that can be browsed using a file manager, all snapshots share common files in order to save disk space.

How to Install Timeshift in Linux

Timeshift is comes pre-installed on Linux Mint. To install it on other Linux distributions such as Ubuntu and its derivatives, enter the terminal commands below.

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

On Arch Linux, you can install Timeshift using yaourt command as shown.

$ sudo yaourt timeshift

On other Linux distributions such as Fedora, CentOS and RHEL, you can download the Timeshift installer and execute it in your terminal.

$ sudo sh ./timeshift* # 64-bit
$ sudo sh ./timeshift*  # 32-bit

Running Timeshift for the first time will launch a setup wizard and on completion, you will be ready to start creating snapshots.

Timeshift Setup Wizard
Timeshift Setup Wizard
Timeshift - Linux System Restore
Timeshift – Linux System Restore

I advise that you reconfigure the app after completing the setup wizard steps so you will be able to select user directories that you want to include or use filters to specify files that you want the backup process to include or ignore.

Timeshift Backup Files
Timeshift Backup Files

You can always change your settings to fit a different backup scheme from the settings tab.

Within the Settings tab are 5 other tabbed sections: Type, Location, Schedule, Users and Filters.

Timeshift Settings
Timeshift Settings
  • Type – select to create snapshots using RSYNC or BTRFS mode.
  • Location – select the memory location to which snapshots will be saved.
  • Schedule – select how often you want to create snapshots and how many of each category to keep.
  • Users – where you can enable user home directory backups since they are disabled by default.
  • Filters – where you can select files and directories to exclude from snapshots.

Creating & Restoring Backups Using Timeshift

Creating backups is as simple as clicking on the Create button and Timeshift will create a system snapshot using your configured settings.

Timeshift Create Linux System Snapshot
Timeshift Create Linux System Snapshot

All snapshots will be listed in Timeshift’s main screen. Highlight anyone on the list and click the Restore button to revert to a previous time as saved in the snapshot.

Timeshift Restore Linux System Backup
Timeshift Restore Linux System Backup

Remember that using Timeshift, requires you to have a sufficient amount of memory to hold at least 1 snapshot. You can reduce the number of backup levels to as little as 1 by unchecking the backup levels to keep only one selected.

You can reduce the snapshots count in the Schedule tab and set the snapshot number to 5 or less. You can also disable automatic backups and create snapshots manually whenever you need one done.

Timeshift Scheduled Backups
Timeshift Scheduled Backups

As you can see, Timeshift is easy to use thanks to its helpful descriptions and hints.

How much of a Timeshift user are you? Do you use it to also backup your documents and media files or do you use it for only system snapshots and use a different backup tool for your files?

Drop your comments in the discussion section below.

Divine Okoi is a cybersecurity postgrad with a passion for the open-source community. With 700+ articles covering different topics in IT, you can always trust him to inform you about the coolest tech.

Each tutorial at GeeksMint is created by a team of experienced writers so that it meets our high-quality writing standards.

10 thoughts on “How to Use Timeshift to Backup and Restore Linux System”

  1. Hi Experts,

    I’ve messed up my system big time. Trying to install pipewire I accidentally erased some part of the core file and nothing work – Not even cinnamon desktop. NOTHING.

    My question is if there’s any possibility to restore my system FROM TIMESHIFT once I install the new OS. I’ve saved the backup in an external drive and there it is.

    Hope you can help me. Have a good weekend!

    • @Benjamin,


      I’m sorry to hear about the trouble you’re facing. Yes, you can definitely restore your system using Timeshift from your external drive backup.

      After you install the new OS:

      1. Install Timeshift.
      2. Connect your external drive.
      3. Launch Timeshift and choose ‘Restore‘.
      4. Select the appropriate backup from your external drive and follow the on-screen instructions.

      This should restore your system to the state it was in when you made the backup. Always ensure you have all your important data backed up before proceeding.

      Wishing you a smooth recovery process. Have a great weekend!”

  2. Timeshift is installed with the Raspberry PI OS, but timeshift will not allow one to browse backups. When my R-PI got corrupted, the timeshift wouldn’t restore. I had to start all over again.

    It is best to simply use rsync.

  3. I would love a facility like rsync to work similar to git. On 1 Jan, I would like to have a full backup of 3 specified directories.

    On Jan 15, I would like to rsync the directories, comparing changes to the 1 January backup, but backing up only the files created since 1 January.

    On Feb 1, to rsync the directories, comparing the changes to the 15 Feb backup.
    In effect, if abc is a file being backed up. abc(0) is the base, abc(1) is created if it is a change from the base version. abc(2) is created if it is a change from the abc(1) version.
    I may keep a list per filename that indicates
    20190101 : bkup 2
    20190115 : bkup 1
    20190201 : bkup 0

    To compare bkup(0) to bkup(1) for changes, I would use sha1sum.

    Most of my files are under 1megabyte. A one terrabyte disk per year would suffice for me.


  4. I intend to backup /Development, /LinuxStuff and /home. Obviously, from the names, these first two directories are of importance to me.

    /LinuxStuff is a directory in which I have many configuration files that I use after installing a new OS. Using crontab, that directory is backed up every two weeks on the 15th and the last day of the month.

    I can recreate the OS

    I may want to only use timeshift just prior to a system update.

    I do backup my stuff usign rsync with crontab’s scheduling and as well, I use the crontab @reboot feature to take daily backups. (I do power down my desktop system nightly).
    Since I use both gnome and KDE, During the day when I log into my accounts. I use the autostart feature of either gnome or kde, to take a snapshot

  5. What is it even for? What problem is it trying to solve? I came here trying to find out because I recently installed Linux Mint on my laptop and the snapshot setup nagging is persistently relentless.

    I don’t really care about backing up system files, because I can always recover those by reinstalling the OS and my applications. The most important files to backup are the files that I create. They are irreplaceable and so they are my number one concern. Timeshift seems to be a backup (snapshot) solution that doesn’t solve the number one problem that backups are supposed to solve.

    If it is designed to allow you to more easily recover from something like a ransomware attack, then I can see the benefit there. Otherwise it seems pointless to back up files that are so easily re-acquired.

    I’m going to go elsewhere to do some research on this, but was just wondering about it and thought I’d get the conversation started here.

    • The main point is to make things “safer” for the end user due to system errors. While you can just reinstall the OS, that takes time. So if you are going to do something that might harm your system, like a system update or upgrade, you can take a snapshot and revert back if something goes wrong. It’s far faster that starting anew. I always use this when doing a system upgrade and have twice needed to roll back to fix an unexpected critical error that prevented a full graphical boot.

      If you keep your data backed up and don’t spend a lot of time tweaking your system then yes, it’s pointless. But the vast majority of every day users could benefit.

      BTW. Updating to mint 19.2 now and just took a snapshot. My laptop has a flaky PMU and some packages cause issues with it. So I always have to assume an update will break my machine. No version of windows runs on this machine without issues because of the faulty PMU (tried windows from 3.11 to 10, all cause the laptop to shut down within 5 min). I’m glad such a tool exists and this use case is a prime example of what it’s for. Prior to timeshift, I’d have to start anew in the system was borked by a bad update.

    • It has saved me lots of time because I like to test software that doesn’t always exist in the distribution, modify the distro files and generally hack around with things. I do not stay only within the systems default repositories. I start with a nice distro and I seek out the remainder of what I need and if its not available I figure out how to make it myself. So I have broken the system quite a bit during testing. sometimes there is just software that you want to use and would prefer not to wait for others to prepare it for you. For instance I installed ocenaudio on my Linux Mint 19.1 Cinnamon there was a deb package so I didn’t care if it was not in the repository as long as my system could be made to meet the dependency requirements without me needing to remove something either the system needs or I want or need specifically. Often though I run into software that is not even released with deb packages but they tend to give enough info for me to collect the required dependencies and see if it will work or can be made to work on my system. I may compile from source code or pull from PPA it all depends on the specifics. But one thing for sure is that Timeshift has been more than valuable to me. I installed a slew of special USB development packages one day not long ago. Well I did it in haste because I was being hasty and in a hurry. What happened? I lost my systems USB access meaning the system I was on could not use the touch screen, mouse, or keyboard. I was attempting to hack a method to get a mac ati usb tv card to work with linux. I will continue to see if I can because the system can see it so I will try. I will need to probably write a driver to make it work. I have gone against the grain and used timeshift to back up my entire filesystem including home and root home before it has those options.
      I do not recommend doing that. At the moment I have roughly 20-21 20gb snapshot and am getting ready to choose which to reduce. This go around I am using this much space and not backing up home but just keeping a rolling backup for testing. It would take much more space than this system has at the moment to back up my system with the settings I am using. But I must say it has kept me from needing to reinstall or lose modifications and software installs.

      I feel comfortable now with this software’s ability to perform to my expectations. I will be improving on my backup scheme by augmenting my plan to include scripts or programs that rsync all of my files in the same fashion then compress the files and store in iso format to be burned. Once burned to disc the backup files on drive all but the latest can be deleted.

      I am doing all of the testing now because I want a list of everything I want in my system when I compile from source a new Gentoo system distro for my uses. That system will have timeshift and the augmentations I speak of regarding non system personal file backup. I am thinking of using some sort of script to detect the best compression format based on the file format being compressed. As far as text files that is likely to be a PAQ6-PAQ8 algorithm based compression. But as far as video and audio I want lossess compression such as FLAC for audio albums or collections but I may choose to use 320kbps MP3. Video Will be between h.264 & h.265 mkv or mp4 I like mkv usually. I may wind up writing scripts for the process of scanning these files organizing based on a list of criteria and then choosing the setup based on this info.

      As far as files generated by the user it should be easy enough to get an adequate system in place.

      The video process and audio process I will have to write or find scripts which pipe data to each other to formulate an adequate scan and then create an on the fly configuration to use to run all the processes in the proper order.

      I realize I have given more data then you requested and apologize but I figured you may find the data interesting or potentially useful.


Got Something to Say? Join the Discussion...