If you've ever used a Mac, you're probably familiar with its Time Machine feature. It's a system restore feature that lets you roll back to a saved point in macOS if something goes wrong while you are experimenting on your Mac. Windows also have a similar system restore feature. On Linux, however, such a type of safety net is absent by default. That's where Timeshift comes into play.

Even if you are an avid Linux user, things can go sideways quickly, especially when you're experimenting with new kernels, distros, or system updates. Timeshift gives your Linux system a similar capability to Time Machine on macOS. It can create system snapshots that act like restore points, which you can use if something goes wrong with your distros.

It's easy to install and get started with it.

What is Timeshift?

A snapshot-based system restore tool

Timeshift is a powerful, free, open-source tool designed to protect your system by taking incremental screenshots of essential system files and configurations that can be easily restored if things go south or when you need them. Unlike a typical backup tool, Timeshift focuses entirely on system-level files and, by default, doesn't include your personal files in its snapshots. This makes system recovery tasks faster and more efficient.

Timeshift supports two snapshot methods: RSYNC (which copies individual files) and BTRFS (which uses filesystem-level snapshots if you're using a BTRFS partition). It supports all major Linux distributions, including Linux Mint, Ubuntu, Debian, Arch, and more.

I installed it on my Ubuntu 24 system, and it fitted into my setup without much effort.

How I set it up

Quick and straightforward installation and setup

It's pretty straightforward to install Timeshift on a Linux system, and you can do so with a single command via a package manager. However, before that, ensure that your system has these prerequisites:

  • meson
  • help2man
  • gettext
  • valac
  • libvte-2.91-dev
  • libgee-0.8-dev
  • libjson-glib-dev
  • libxapp-dev

On my Ubuntu system, I installed these dependencies by using the following command:

sudo apt install meson \
help2man \
gettext \
valac \
libvte-2.91-dev \
libgee-0.8-dev \
libjson-glib-dev \
libxapp-dev

After that, simply use this command to install it:

sudo apt install timeshift

It was installed within seconds. Once installed, here are the steps to set it up:

  1. I launched it from the App menu. You can do the same or use this command on the terminal: sudo timeshift-gtk. Your system will ask for your password to launch it.
  2. You'll first see the option to choose the snapshot type from RSYNC or BTRFS. I chose RSYNC because it works on all files and was the default option (also BTRFS was greyed out for me since my system isn't installed on a BTRFS file system).
  3. Next, you'll have to select the snapshot location. I chose an external drive I already have, but you can also go with an internal partition with sufficient free space.
  4. Now, you will have the option to select snapshot levels, i.e, a schedule. You can set it to Hourly, Daily, Weekly, Monthly, or At Boot. You can choose multiple levels; for example, I selected Daily and Weekly.
  5. Next, you'll have the option to include your personal files that Timeshift doesn't include in its snapshot by default. I didn't want to include those, so I left them unchecked.
  6. Finally, I reviewed the options I selected and clicked the Finish button.
  7. Next, the main Timeshift interface was launched. I clicked the Create button in the upper-left corner to create my first snapshot. It took my system several minutes to complete.

After it was created, the snapshot appeared in the interface's "Snapshots" list, along with a timestamp. The restore button is just next to the create button, which you can use to restore your Linux system to its previously saved state.

The features that make Timeshift a must-have

Why does it feel like the Time Machine for Linux

Timeshift comes with numerous features that make it a perfect system restore tool for Linux. Firstly, I really liked the automatic snapshots feature. Once set up, the tool quietly works in the background and creates snapshots on a schedule I chose. Depending on my needs, I can set daily, weekly, monthly, and even hourly backups.

Another great feature of Timeshift is its incremental backup. Instead of copying the entire system each time, it only backs up files that have changed. This makes taking snapshots fast and relatively light on storage. Also, if your system crashes or misbehaves suddenly, you can launch Timeshift from within Linux or from the GRUB boot menu to roll back to a previous working state.

I also like Timeshift's system-only protection. By focusing more on system directories (like /etc and /usr), it ensures my operating system remains recoverable while leaving my personal files untouched. This gives peace of mind that my system can be recovered from any state.

Another fantastic feature is the cross-distribution restore. So, let's say I am currently using Ubuntu and decided to try Xubuntu or Linux Mint. I can easily install any of these distros on my system, try them for a week or so, and then switch back to Ubuntu by restoring the snapshot from the previous week. Timeshift will take care of things like reinstalling the bootloader and other details in the background.

The drawbacks you should know about

It's powerful, but not perfect

Timeshift is undoubtedly a great tool, but it has several limitations worth knowing before you rely on it entirely.

First, it doesn't back up your personal files and folders unless you configure it to do so. That means your personal documents, media, and downloads won't be restored when you wipe your system. For that, you require a traditional backup tool.

Additionally, the snapshots taken by Timeshift can take up quite a bit of space over time, especially if you regularly create new restore points and don't delete the old ones. So, if you are short on disk space, it's best to monitor your restore points regularly.

If you're using BTRFS, Timeshift can be a bit more rigid. It depends heavily on the layout of your file system's subvolumes. Advanced users might find this limiting if they want better control over their snapshot strategy.

Who should use Timeshift?

It's not just for pros

Timeshift is your best friend if you are new to Linux, like tinkering with its settings, and want to install and test custom software. It basically gives you the confidence to experiment without the fear of breaking your system.

Power users and system administrators who like to tweak system-level configurations or test unstable packages will highly benefit from it. Knowing you can roll back your system without affecting the workflow is a significant productivity boost.

If you are a Linux user and haven't yet tried it, now is the time to give Timeshift a try. The next time your system breaks because of an unstable package or for any other reason, you'll be glad you installed it.