You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
BTRFS top level mount generated by Timeshift don't use root mount flags #439
Describe the bug
Hi, I started to use Timeshift for system btrfs snapshots of one recent Mint installation, is first time I use timeshift on a production system with btrfs, I use btrfs for more than a decade, but I have always used other software for snapshots.
Outside the subvolumes layout and not optimal mount flags, which however concern the low btrfs support in the installer, and which I had manually workaround after installation, I noticed that the toplevel mount created by Timeshift to manage snapshots does not consider the flags used by the system mount.
I mean the mount it has done on /run/timeshift/xxxx/backup that use the default flag that may be different from the ones used for the / mount, for example relatime->noatime, the compression etc...
For most operations, I don't think it's a problem because, if I'm not mistaken, these parameters impact writes made to that mount, while the data remains as is when a snapshot is created. However, for write operations made to that mount, for example, using relatime (the default) instead of noatime (one of the most commonly used optimizations) will generate more metadata even just for a simple "consultation" of the snapshots.
The other btrfs snapshot management software I know of either requires an existing toplevel mount (where you set the "right" mount options) or creates nested snapshots (the latter has significant drawbacks, however) and therefore does not create its own mounts.
Expected behavior
Use the mount flag of / for the top level, or maybe more simply you could at least add in the settings the possibility to specify a "fixed" toplevel mount (with a security check that verifies that it is correct)
openmediavault-timeshift is primarily a glue plugin. It provides the OMV WebUI wrapper, manages scheduled tasks, and writes /etc/timeshift/timeshift.json.
When a snapshot deletion is triggered (either via cron, WebUI, or CLI), the plugin simply invokes the native binary:
timeshift --delete --snapshot '...'
Because sudo timeshift --delete --snapshot ... failed with EINVAL when run directly in my terminal, it confirms that the failure happens entirely inside timeshift itself when its internal mount logic mounts /dev/mmcblk0p2 at /run/timeshift/<PID>/backup without explicit subvolid=5 flags during snapshot deletion.
In short:
openmediavault-timeshift plugin: Doing its job correctly (passing configuration and parameters to Timeshift).
timeshift upstream binary: Failing at the subvolume deletion step due to how its Vala/C++ backend mounts and resolves top-level Btrfs subvolumes on this volume structure.
@orgcontrib i cant follow your reason, why your case is related to this issue. When you later mounted the volume, you also didnt specify the subvolume id.
What is the entry of that partition in your /etc/fstab ?
What is your btrfs subvolume get-default ?
Is it an option for you to change the default subvolume?
Activity
orgcontrib commentedon Sep 27, 2026
Hello, I am coming from OMV and hit the same root cause in a different context (snapshot cleanup/rotation).
openmediavault-timeshiftis primarily a glue plugin. It provides the OMV WebUI wrapper, manages scheduled tasks, and writes/etc/timeshift/timeshift.json.When a snapshot deletion is triggered (either via cron, WebUI, or CLI), the plugin simply invokes the native binary:
timeshift --delete --snapshot '...'Because
sudo timeshift --delete --snapshot ...failed withEINVALwhen run directly in my terminal, it confirms that the failure happens entirely insidetimeshiftitself when its internal mount logic mounts/dev/mmcblk0p2at/run/timeshift/<PID>/backupwithout explicitsubvolid=5flags during snapshot deletion.In short:
openmediavault-timeshiftplugin: Doing its job correctly (passing configuration and parameters to Timeshift).timeshiftupstream binary: Failing at the subvolume deletion step due to how its Vala/C++ backend mounts and resolves top-level Btrfs subvolumes on this volume structure.ygerlach commentedon Sep 29, 2026
@orgcontrib i cant follow your reason, why your case is related to this issue. When you later mounted the volume, you also didnt specify the subvolume id.
What is the entry of that partition in your /etc/fstab ?
What is your
btrfs subvolume get-default?Is it an option for you to change the default subvolume?
orgcontrib commentedon Sep 30, 2026