Timeshift: How to Back Up and Restore Your Linux System

Tested on: Ubuntu 26.04 LTS · Linux Mint 22 · Fedora 44 · Debian 12 — Last updated: June 2026

Timeshift takes point-in-time snapshots of your Linux system and lets you roll back to a previous state in minutes. It belongs in every Linux admin's toolkit — not because Linux breaks often, but because when it does (bad kernel update, botched driver install, misconfigured GRUB), the difference between a 10-minute recovery and a full reinstall is whether you had a snapshot. This guide covers installation, configuration, scheduled backups, manual snapshots, and the scenario that matters most: restoring a system that won't boot.

Contents
  1. Prerequisites
  2. Snapshot Modes: RSYNC vs BTRFS
  3. Install Timeshift
  4. Initial Configuration
    1. Configuration File
  5. Creating Snapshots Manually
  6. Restoring a Snapshot
    1. When the system still boots
    2. When the system won't boot — restore from Live USB
  7. Managing and Deleting Old Snapshots
  8. Timeshift on Fedora (BTRFS Caveats)
  9. What Timeshift Does Not Back Up
  10. Troubleshooting
    1. Error: "Target device does not have enough space"
    2. Further Reading

Prerequisites

  • A running Linux system (Ubuntu 26.04, Debian 12, Linux Mint 22, or Fedora 44)
  • sudo or root access
  • At least 10–20 GB of free disk space for snapshots (more is better; a separate partition or external drive is ideal)
  • Basic terminal familiarity

If you're planning to use BTRFS mode, you need a BTRFS-formatted root filesystem. If you're on ext4 (most Ubuntu/Debian/Mint installs), you'll use RSYNC mode. Check your filesystem before starting:

df -T /
Filesystem     Type  1K-blocks     Used Available Use% Mounted on
/dev/sda2      ext4  102400000 24500000  72600000  26% /

The Type column tells you everything. ext4 → use RSYNC mode. btrfs → BTRFS mode is available.

Snapshot Modes: RSYNC vs BTRFS

ModeHow it worksBest forStorage cost
RSYNCCopies system files using rsync with hardlinks for unchanged filesext4 filesystems (most Ubuntu, Debian, Mint installs)First snapshot: full copy (~4–8 GB typical). Subsequent: only changed files via hardlinks
BTRFSUses native Btrfs copy-on-write subvolume snapshotsBtrfs root filesystem (Fedora default, some Ubuntu installs)Near-instant, minimal overhead — only stores changed blocks

For most users on Ubuntu or Debian: use RSYNC. It's battle-tested, works on any filesystem, and the hardlink deduplication keeps storage use reasonable. BTRFS mode is faster and more space-efficient but requires a correctly laid-out BTRFS subvolume structure (more on Fedora caveats later).

Install Timeshift

Timeshift is packaged in the default repositories for most major distributions.

# Ubuntu 26.04, Debian 12, Linux Mint 22
sudo apt update && sudo apt install timeshift

# Fedora 44
sudo dnf install timeshift

# Arch Linux / Manjaro
sudo pacman -S timeshift

Verify the install:

timeshift --version
Timeshift v24.01.1

Initial Configuration

Run the GUI setup wizard from your applications menu, or launch it directly:

sudo timeshift-gtk

The wizard steps through four decisions:

1. Snapshot type: Choose RSYNC for ext4 or BTRFS if your root is on btrfs. When in doubt, RSYNC works everywhere.

2. Snapshot location: This is the most important decision. An external drive or a separate partition is strongly preferred. If your main disk fails or corrupts, snapshots stored on that same disk are gone. A dedicated backup partition or a USB hard drive gives you genuine protection.

3. Schedule: How many snapshots of each type to retain. A sensible starting point: 5 daily, 2 weekly, 1 monthly. Timeshift automatically deletes the oldest when the count is exceeded.

4. User data: By default, Timeshift excludes /home. This is intentional — Timeshift is a system recovery tool, not a personal file backup. Including /home dramatically increases snapshot size and time. Leave it excluded and back up personal files separately (covered at the end of this guide).

Configuration File

The wizard writes its settings to /etc/timeshift/timeshift.json. You can inspect and edit it directly:

sudo cat /etc/timeshift/timeshift.json
{
  "backup_device_uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "parent_device_uuid": "",
  "do_first_run": "false",
  "btrfs_mode": "false",
  "include_btrfs_home_for_backup": "false",
  "stop_cron_emails": "true",
  "schedule_monthly": "true",
  "schedule_weekly": "true",
  "schedule_daily": "true",
  "schedule_hourly": "false",
  "schedule_boot": "false",
  "count_monthly": "1",
  "count_weekly": "2",
  "count_daily": "5",
  "count_hourly": "6",
  "count_boot": "5",
  "date_format": "%Y-%m-%d %H:%M:%S",
  "exclude": [],
  "exclude-apps": []
}

Key fields to know: backup_device_uuid is the UUID of the destination disk. btrfs_mode controls snapshot type. Schedule counts control retention. You can also enable schedule_boot to automatically create a snapshot on every system boot — useful on volatile machines, but it adds up on disk space.

Creating Snapshots Manually

Always create a manual snapshot before any risky operation. Make it a habit.

# Create a tagged snapshot before a kernel upgrade
sudo timeshift --create --comments "before kernel upgrade to 6.8"

# Before installing proprietary GPU drivers
sudo timeshift --create --comments "before nvidia driver 550 install"

# Before a major system upgrade (e.g. Ubuntu 26.04 → 24.10)
sudo timeshift --create --comments "before dist-upgrade june 2026"

List all snapshots to confirm:

sudo timeshift --list
Device : /dev/sdb1
UUID   : a1b2c3d4-e5f6-7890-abcd-ef1234567890
Path   : /media/user/backup
Mode   : RSYNC
Status : OK
--------------------------------------------------------------------------
Num  Name                 Tags  Description
--------------------------------------------------------------------------
0  > 2026-06-01_08-00-01  D     daily snapshot
1  > 2026-06-07_08-00-01  W     weekly snapshot
2  > 2026-06-09_14-22-10  O     before kernel upgrade to 6.8
--------------------------------------------------------------------------

Tags: D = daily, W = weekly, M = monthly, O = on-demand (manual).

Restoring a Snapshot

When the system still boots

This is straightforward. List snapshots, pick the one you want, restore.

sudo timeshift --list
sudo timeshift --restore --snapshot '2026-06-09_14-22-10'

Timeshift will show what will be overwritten and ask for confirmation. After the restore completes, it reinstalls GRUB if needed and prompts you to reboot.

Via the GUI: open Timeshift, select the snapshot from the list, click Restore, follow the prompts. The GUI is cleaner if you want to review the file list before confirming.

When the system won't boot — restore from Live USB

This is the scenario that justifies the entire setup. Your system is stuck at a black screen, drops to emergency mode, or GRUB is broken after a bad update. Here's the procedure:

Step 1: Boot from a Linux Live USB. Ubuntu 26.04 or Linux Mint 22 Live images include Timeshift or can install it quickly. If it's not pre-installed:

sudo apt update && sudo apt install timeshift

Step 2: Identify your target disk and snapshot partition:

sudo blkid
/dev/sda1: UUID="XXXX" TYPE="vfat" PARTLABEL="EFI System Partition"
/dev/sda2: UUID="YYYY" TYPE="ext4" LABEL="root"
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" LABEL="backup"

Step 3: Launch Timeshift from the live environment. It automatically scans connected disks and finds your existing snapshots. Select the snapshot, click Restore, confirm. Timeshift handles remounting and GRUB reinstallation.

If you prefer the command line from the live session:

# List snapshots on the backup device
sudo timeshift --list --snapshot-device /dev/sdb1

# Restore a specific snapshot to the target root partition
sudo timeshift --restore 
  --snapshot '2026-06-09_14-22-10' 
  --snapshot-device /dev/sdb1 
  --target /dev/sda2

Step 4: When complete, shut down, remove the USB, and boot normally. The system should come up as it was at snapshot time.

Managing and Deleting Old Snapshots

Snapshots accumulate. The scheduled retention settings handle automatic cleanup, but for manual cleanup:

# Delete a specific snapshot by name
sudo timeshift --delete --snapshot '2026-06-01_08-00-01'

# Delete all snapshots (use with care)
sudo timeshift --delete-all

# Check disk usage of your snapshot location
sudo du -sh /timeshift/snapshots/

On a typical Ubuntu desktop system, each RSYNC snapshot after the first takes 500 MB–2 GB depending on how much has changed. Monitor your backup disk with df -h periodically and adjust retention counts if you're running low.

Timeshift on Fedora (BTRFS Caveats)

Fedora installs with BTRFS by default, but uses a subvolume layout (@ for root, @home for home) that differs from what Timeshift expects. This can cause BTRFS mode to fail silently or not detect snapshots correctly.

# Check your BTRFS subvolume layout
sudo btrfs subvolume list /
ID 256 gen 120 top level 5 path home
ID 257 gen 348 top level 5 path root
ID 258 gen 120 top level 257 path root/var/lib/machines

If Timeshift's BTRFS mode doesn't detect your snapshots or fails to restore correctly, fall back to RSYNC mode — it works fine on BTRFS filesystems, just without the copy-on-write efficiency advantage.

For Fedora users who want native BTRFS snapshot management, snapper integrates better with Fedora's subvolume layout and is worth evaluating:

sudo dnf install snapper
sudo snapper -c root create-config /
sudo snapper list

That said, Timeshift in RSYNC mode on Fedora works reliably and is simpler to use for most scenarios.

What Timeshift Does Not Back Up

Understanding Timeshift's scope prevents a false sense of security. By default it excludes:

  • /home — your personal files, configs, downloads
  • /root — root user's home directory
  • /media and /mnt — mounted external drives
  • /tmp and /var/tmp — temporary files
  • /proc, /sys, /dev — virtual filesystems

Timeshift restores your system — installed packages, system configs, GRUB, kernel. Your documents, databases in /var/lib, and application data in /home are not protected unless you explicitly configure it otherwise.

For personal files and application data, use a separate backup solution:

# Quick rsync backup to external drive
rsync -avh --progress ~/Documents/ /media/backup/documents/
rsync -avh --progress ~/Pictures/ /media/backup/pictures/

# Install Déjà Dup for GUI-based encrypted backups with scheduling
sudo apt install deja-dup

# BorgBackup via Vorta for deduplicating encrypted backups
sudo apt install vorta

The correct setup: Timeshift for system recovery, Borg/Déjà Dup/rsync for personal data. They complement each other and neither replaces the other.

Troubleshooting

Error: "Target device does not have enough space"

Timeshift aborts the snapshot if the destination is too full. Check available space and either free up room or reduce your snapshot retention counts in /etc/timeshift/timeshift.json.

df -h /media/backup
sudo timeshift --delete --snapshot '2026-05-01_08-00-01'

Go up

This site uses cookies for analytics and advertising (Google AdSense). By continuing to browse, you accept our use of cookies. Learn more