Configure timeshift to save btrfs snapshots to seperate partition

I am attempting to set up timeshift to save snapshots of my root directory into a separate partition to relieve space in the root partition. However, despite every effort I have made thus far timeshift refuses to save the snapshots to the seperate partion and will always default to the root partition.

I would appreciate any help at resolving this issue, or do I have to settle for just increasing the size of my root partition and keeping the snapshots there?

Partitons

The root directory:
dev/sdc3
UUID=8a7d6fe9-9f41-4274-a02e-cac765758aa1
btrfs file system

The separate partition
/dev/sdb3
UUID=24c774db-a664-4ba5-9eee-d80c91f9dbdc
Mounted at /mnt/snapshots
btrfs filesystem

Configuration file

/etc/timeshift/timeshift.json

{
  "snapshot_device" : "UUID=24c774db-a664-4ba5-9eee-d80c91f9dbdc",
  "snapshot_location": "/mnt/snapshots/root_snapshots",
  "do_first_run" : "false",
  "btrfs_mode" : "true",
  "include_btrfs_home_for_backup" : "false",
  "include_btrfs_home_for_restore" : "false",
  "stop_cron_emails" : "true",
  "schedule_monthly" : "true",
  "schedule_weekly" : "true",
  "schedule_daily" : "true",
  "schedule_hourly" : "false",
  "schedule_boot" : "true",
  "count_monthly" : "2",
  "count_weekly" : "3",
  "count_daily" : "5",
  "count_hourly" : "6",
  "count_boot" : "5",
  "date_format" : "%Y-%m-%d %H:%M:%S",
  "exclude" : [
    "/home/**",
    "/mnt/**"
  ],
  "exclude-apps" : []
}

Attempting to make/list snapshots

Snapshot creation defaults to root

sudo timeshift --create
Using system disk as snapshot device for creating snapshots in BTRFS mode
Mounted '/dev/sdc3' at '/run/timeshift/4510/backup'
btrfs: Quotas are not enabled
Creating new backup...(BTRFS)
Saving to device: /dev/sdc3, mounted at path: /run/timeshift/4510/backup
Created directory: /run/timeshift/4510/backup/timeshift-btrfs/snapshots/2025-02-24_13-58-35
Created subvolume snapshot: /run/timeshift/4510/backup/timeshift-btrfs/snapshots/2025-02-24_13-58-35/@
Created control file: /run/timeshift/4510/backup/timeshift-btrfs/snapshots/2025-02-24_13-58-35/info.json
BTRFS Snapshot saved successfully (0s)
Tagged snapshot '2025-02-24_13-58-35': ondemand

Setting snapshot device manually fails

sudo timeshift --create --snapshot-device /dev/sdb3
Using system disk as snapshot device for creating snapshots in BTRFS mode
Option --snapshot-device should not be specified for creating snapshots in BTRFS mode
Mounted '/dev/sdc3' at '/run/timeshift/5430/backup'
btrfs: Quotas are not enabled
Creating new backup...(BTRFS)
Saving to device: /dev/sdc3, mounted at path: /run/timeshift/5430/backup
Created directory: /run/timeshift/5430/backup/timeshift-btrfs/snapshots/2025-02-24_14-04-59
Created subvolume snapshot: /run/timeshift/5430/backup/timeshift-btrfs/snapshots/2025-02-24_14-04-59/@
Created control file: /run/timeshift/5430/backup/timeshift-btrfs/snapshots/2025-02-24_14-04-59/info.json
BTRFS Snapshot saved successfully (0s)
Tagged snapshot '2025-02-24_14-04-59': ondemand
-----------------------------------------------------------------------------

Listing snapshots yields no devices unless one is specified

sudo timeshift --list
Device : Not Selected


** (process:4699): CRITICAL **: 13:59:05.252: gee_abstract_collection_get_size: assertion 'self != NULL' failed
No snapshots found
sudo timeshift --list --snapshot-device /dev/sdc3
Mounted '/dev/sdc3' at '/run/timeshift/4907/backup'
btrfs: Quotas are not enabled
Device : /dev/sdc3
UUID   : 8a7d6fe9-9f41-4274-a02e-cac765758aa1
Path   : /run/timeshift/4907/backup
Mode   : BTRFS
Status : OK
3 snapshots, 42.7 GB free

Num     Name                 Tags  Description  
------------------------------------------------------------------------------
0    >  2025-02-24_13-47-09  O                  
1    >  2025-02-24_13-54-46  B                  
2    >  2025-02-24_13-58-35  O  
sudo timeshift --list --snapshot-device /dev/sdb3
Mounted '/dev/sdb3' at '/run/timeshift/4984/backup'
Device : /dev/sdb3
UUID   : 24c774db-a664-4ba5-9eee-d80c91f9dbdc
Path   : /run/timeshift/4984/backup
Mode   : BTRFS
Status : Selected snapshot device is not a system disk
Select BTRFS system disk with root subvolume (@)

No snapshots found

From the GUI: Settings > Location > Select the drive > Press “OK”

In my case, I am using EXT4 and RSYNC, but I doubt that matters if you use the GUI to do it.


I’m on a wayland WM, which is why I’m trying to get this working through the config files.

Timeshift GUI works in Wayland. You can launch it with timeshift-launcher or you can launch it from rofi/wofi (or whatever launcher you use, if not, use the terminal).

In my case that isn’t working either

timeshift-launcher
/usr/bin/timeshift-launcher: line 16: xhost: command not found
Authorization required, but no authorization protocol specified


(timeshift-gtk:32721): Gtk-WARNING **: 16:28:30.966: cannot open display: :1
/usr/bin/timeshift-launcher: line 18: xhost: command not found
/usr/bin/timeshift-launcher: line 19: xhost: command not found

You can’t save btrfs snapshots to another partition. That isn’t possible. Btrfs snapshots are part of the filesystem itself.

You use a different job to replicate your snapshots to another partition outside of timeshift. Alternatively, you can to switch Timeshift to rsync mode and then target another partition.

1 Like

Oh, so it does matter. Makes sense.

It is called rSYNC after all. :sweat_smile:


Timeshift requires root. sudo timeshift-launcher and what @dalto said.

Actually, on my system (currently in Cinnamon), running timeshift-launcher automatically prompts for my root password. You do have some kind of polkit agent installed, right?

You can find out with: pacman -Q | grep -A 0 -E "polkit"

2 Likes