I am puzzled as the main file system is on only one device (/dev/sda5), so I do not understand what you get the "Invalid cross-device link" message.
Did this happen recently? After the restoration of a snapshot? Anything in the logs that could give us a clue?
As an aside I see that that you have two top-level subvolumes hosting snapshots: timeshift (used by timeshift) and @snpahots (used by btrbk). Is it because the snapshots created by timeshift are read-write so not suitable for instance for an incremental backups with btrs send|btrfs receive and/or you use btrbk for backups?
Also, you have in /etc/fstab:
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 / btrfs subvol=/@,defaults,noatime,compress=zstd,discard=async 1 1
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 /root btrfs subvol=/@root,defaults,noatime,compress=zstd,discard=async 1 2
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 /home btrfs subvol=/@home,defaults,noatime,compress=zstd,discard=async 1 2
This is not good, no need to check a btrfs file system when booting so I suggest that you write instead:
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 / btrfs subvol=/@,defaults,noatime,compress=zstd,discard=async 0 0
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 /root btrfs subvol=/@root,defaults,noatime,compress=zstd,discard=async 0 0
UUID=3fdc0a20-410e-4926-bf58-3fe19c3f4755 /home btrfs subvol=/@home,defaults,noatime,compress=zstd,discard=async 0 0
(and "defaults," is only useful if there is no other option - but won't hurt).
Last, I am guilty of
absm, a BTRFS snapshots manager. Why absm instead of the (many) other tools? It's just a shell script with zero dependency beyond grub, the btrfs file system and btrfs-progs, but the menu allows to create/delete/restore snapshots (all actions logged) and populate grub.cfg with a boot entry for each snapshot. It can also be started unattended by a script you would write, to create snapshots upon events like after booting or before an upgrade, or periodically. A new snapshot of the state just before restoration of a snapshot is always created.
PS. To make sure I understand you layout, please type:
Code: Select all
mount /dev/sda5 /mnt -o subvolid=0
tree tree -d -L 2 /mnt
and provide the output of the last command.
Thanks.