explaingit

teejee2008/timeshift

4,774ValaAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

Timeshift is a Linux system restore tool that takes periodic snapshots of OS files using rsync or BTRFS, letting you roll back after a bad update or broken setting without losing personal documents.

Mindmap

mindmap
  root((timeshift))
    What It Does
      Snapshot OS files
      Roll back bad updates
      Restore from live USB
    Snapshot Modes
      rsync hard-link mode
      BTRFS instant snapshots
    Scheduling
      Hourly daily weekly
      Monthly and at boot
    Audience
      Linux desktop users
      Sysadmins
      Distro maintainers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically snapshot your Linux OS before applying system updates so you can roll back if something breaks.

USE CASE 2

Restore a broken Linux installation from a live USB without reinstalling the entire OS from scratch.

USE CASE 3

Set up hourly or daily OS snapshots that exclude your personal files to keep disk usage low.

Tech stack

ValarsyncBTRFSGTK

Getting it running

Difficulty · easy Time to first run · 30min

Note: active development has moved to the Linux Mint project repository, this archived repo may not receive updates for newer Linux distributions.

In plain English

Timeshift is a system restore tool for Linux that works similarly to System Restore on Windows or Time Machine on macOS. It takes periodic snapshots of your operating system files so that if something goes wrong, such as a bad software update, a misconfigured setting, or a broken installation, you can roll the system back to an earlier state. The tool operates in two modes. The first mode uses rsync, a file copying utility, combined with hard links to create space-efficient snapshots where unchanged files are shared between backups rather than duplicated. The second mode uses BTRFS, a type of Linux filesystem that has built-in snapshot capabilities, which makes snapshots nearly instant and uses very little additional disk space. Timeshift is specifically designed to protect system files and settings, not personal documents, photos, or music. User home directories are excluded from snapshots by default. The reason for this is intentional: when you restore a snapshot, you want your system to go back to how it was configured without overwriting the files you have been working on. You can optionally include hidden configuration files from your home directory if you want to restore application preferences. Scheduling is flexible. You can set snapshots to be taken hourly, daily, weekly, monthly, and at boot time. Rather than running at a fixed time each day, the tool checks every hour whether a snapshot is due, which avoids missed backups on laptops that may not be running at a specific scheduled moment. Restoring a snapshot can be done from within the running system or from a live USB if the system is no longer bootable. The tool handles reinstalling the bootloader automatically as part of the restore process. Note: this repository contains the original code and is archived. Active development has moved to the Linux Mint project's own repository, where the tool is now officially maintained.

Copy-paste prompts

Prompt 1
How do I install Timeshift on Ubuntu and configure it to take a daily BTRFS snapshot of my root filesystem?
Prompt 2
My Ubuntu system will not boot after an update, how do I use Timeshift to restore a snapshot from a live USB drive?
Prompt 3
What is the difference between Timeshift rsync mode and BTRFS mode, and which should I use on a standard ext4 installation?
Prompt 4
How do I configure Timeshift to keep only the last 5 daily snapshots and automatically delete older ones to save disk space?
Open on GitHub → Explain another repo

← teejee2008 on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.