Timeshift Requires Chnages to Swapfile?

Hello!
I’ve been trying to get timeshift setup & working following this endeavous tuotrial.

Unfortunately, I’m stuck at the part where I have to actually make a backup.
Using sudo timeshift --create gives me:

Using system disk as snapshot device for creating snapshots in BTRFS mode
Mounted '/dev/nvme0n1p6' at '/run/timeshift/58641/backup'
Creating new backup...(BTRFS)
Saving to device: /dev/nvme0n1p6, mounted at path: /run/timeshift/58641/backup
Created directory: /run/timeshift/58641/backup/timeshift-btrfs/snapshots/2022-08-29_23-50-23
E: ERROR: cannot snapshot '/run/timeshift/58641/backup/@': Text file busy

E: btrfs returned an error: 256
E: Failed to create subvolume snapshot: @
Failed to create snapshot
------------------------------------------------------------------------------
Removing snapshots (incomplete):
------------------------------------------------------------------------------
Removing snapshot: 2022-08-29_23-48-50
Deleted directory: /run/timeshift/58641/backup/timeshift-btrfs/snapshots/2022-08-29_23-48-50
Removed snapshot: 2022-08-29_23-48-50
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Removing snapshot: 2022-08-29_23-49-43
Deleted directory: /run/timeshift/58641/backup/timeshift-btrfs/snapshots/2022-08-29_23-49-43
Removed snapshot: 2022-08-29_23-49-43
------------------------------------------------------------------------------
------------------------------------------------------------------------------
Removing snapshot: 2022-08-29_23-50-23
Deleted directory: /run/timeshift/58641/backup/timeshift-btrfs/snapshots/2022-08-29_23-50-23
Removed snapshot: 2022-08-29_23-50-23
------------------------------------------------------------------------------
E: Failed to remove directory
Ret=256

Found stale mount for device '/dev/nvme0n1p6' at path '/run/timeshift/58641/backup'
Unmounted successfully

Looking around, I came across similar issues at in particular, this stackexchange seemed to answer my question.

I’ve got hibernation enabled, with a swapfile I created with this endeavousos tutorial.
That seems to have gotten an update addressing the swapfile issuie.

I’m just making sure here before I make changes to my system, to have both snapshots & a swapfile. I’ll need to move my swapfile from the @ subvolume, to a seperate @swap subvolume correct?

Yes, that is the best approach.

1 Like

Please, keep in mind that now timeshift changed it’s behavior a bit so that it always creates snapshots each time in a different random directory, so grub-btrfs will not work unless you tweak your fstab. I wrote about that here https://www.lorenzobettini.it/2022/07/timeshift-and-grub-btrfs-in-linux-arch/

1 Like

Alright, thanks for the confirmation!

1 Like

Couldn’t you just use PathExistsGlob instead of hard-mounting it?

What do you mean?

Let timeshift mount it how it wants and use a wildcard in the path unit.

You mean that instead of

[Path]
PathModified=/run/timeshift/backup/timeshift-btrfs/snapshots

I could use

[Path]
PathExistsGlob=/run/timeshift/*/backup/timeshift-btrfs/snapshots

?

That would also work when a snapshot is removed?

thanks in advance

I tried the following:

removed the mount point from /etc/fstab

changed the configuration as follows

[Path]
PathExistsGlob=/run/timeshift/**/backup/timeshift-btrfs/snapshots

restarted grub-btrfs.path but I get this error:

Failed to start grub-btrfs.path: Unit run-timeshift-backup.mount not found.

In fact, in this other section we need:

[Unit]
Description=Monitors for new snapshots
DefaultDependencies=no
Requires=run-timeshift-backup.mount
After=run-timeshift-backup.mount
BindsTo=run-timeshift-backup.mount

and without the mount point in /etc/fstab there’s no such .mount

A mount point with a random number, e.g., of the shape run-timeshift-3951-backup.mount is present only when you open timeshift.

Thus, if I understand your suggestion well, I’m afraid it won’t work.

Why do you need that in the path unit?

I seem to understand that’s how grib-btrfs must be configured… maybe I’m missing something in its documentation?

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.