So, I really like the Btrfs-based snapshotting functionality of openSUSE… but it’s broken on one of my Tumbleweed machines (and only one of them, which suggests a configuration issue) and I do not fully understand why.
I already narrowed it down to the /.snapshots Btrfs subvolume not being mounted at the time where I log in on this machine. This is in spite of said subvolume being configured for automounting in /etc/fstab in exactly the same way as other subvolumes which do automount correctly like /var:
hadrien@linux-2ak3:~> cat /etc/fstab
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 / btrfs noatime 0 0
UUID=80c122ff-dbe7-4b06-b646-5fc0f8085bd6 /home ext4 noatime,acl,user_xattr 1 2
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /boot/grub2/i386-pc btrfs noatime,subvol=@/boot/grub2/i386-pc 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /boot/grub2/x86_64-efi btrfs noatime,subvol=@/boot/grub2/x86_64-efi 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /opt btrfs noatime,subvol=@/opt 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /srv btrfs noatime,subvol=@/srv 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /tmp btrfs noatime,subvol=@/tmp 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /usr/local btrfs noatime,subvol=@/usr/local 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /var btrfs noatime,subvol=@/var 0 0
UUID=c7d482b7-d69a-49a9-a033-c04aa5b1a6f9 /.snapshots btrfs noatime,subvol=@/.snapshots 0 0
Further, manually running “sudo mount /.snapshots” after startup will work correctly, suggesting that there is nothing wrong with my fstab configuration or with the disk itself. And indeed, the journalctl logs do suggest that the partition is correctly automounted on startup…
...]
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounted /.snapshots.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Started Apply Kernel Variables.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Starting udev Kernel Device Manager...
oct. 28 11:12:54 linux-2ak3 systemd[1]: Starting File System Check on /dev/disk/by-uuid/80c122ff-dbe7-4b06-b646-5fc0f8085bd6...
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /var...
oct. 28 11:12:54 linux-2ak3 systemd[1]: var.mount: Directory /var to mount over is not empty, mounting anyway.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /usr/local...
oct. 28 11:12:54 linux-2ak3 systemd[1]: usr-local.mount: Directory /usr/local to mount over is not empty, mounting anyway.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /tmp...
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /srv...
oct. 28 11:12:54 linux-2ak3 systemd[1]: srv.mount: Directory /srv to mount over is not empty, mounting anyway.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /opt...
oct. 28 11:12:54 linux-2ak3 systemd[1]: opt.mount: Directory /opt to mount over is not empty, mounting anyway.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /boot/grub2/x86_64-efi...
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /boot/grub2/i386-pc...
oct. 28 11:12:54 linux-2ak3 systemd[1]: boot-grub2-i386\x2dpc.mount: Directory /boot/grub2/i386-pc to mount over is not empty, mounting anyway.
oct. 28 11:12:54 linux-2ak3 systemd[1]: Mounting /.snapshots...
...]
…however, it appears that they are unmounted shortly afterwards…
...]
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /usr/local...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /srv...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /opt...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /home...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /boot/grub2/x86_64-efi...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /boot/grub2/i386-pc...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Unmounting /.snapshots...
oct. 28 11:13:17 linux-2ak3 systemd[1]: Stopped target Local File Systems.
oct. 28 11:13:17 linux-2ak3 systemd[1]: Started Machine Check Exception Logging Daemon.
oct. 28 11:13:17 linux-2ak3 systemd[1]: Started Initialize hardware monitoring sensors.
oct. 28 11:13:17 linux-2ak3 systemd[1]: /usr/lib/systemd/system/pcscd.socket:5: ListenStream= references a path below legacy directory /var/run/, updating /var/run/pcscd/pcscd.comm → /run/pcscd/pcscd.comm; please update the unit file accordingly.
oct. 28 11:13:17 linux-2ak3 systemd[1]: /usr/lib/systemd/system/rpc-statd.service:15: PIDFile= references a path below legacy directory /var/run/, updating /var/run/rpc.statd.pid → /run/rpc.statd.pid; please update the unit file accordingly.
oct. 28 11:13:17 linux-2ak3 systemd[1]: /usr/lib/systemd/system/ntpd.service:15: PIDFile= references a path below legacy directory /var/run/, updating /var/run/ntp/ntpd.pid → /run/ntp/ntpd.pid; please update the unit file accordingly.
oct. 28 11:13:17 linux-2ak3 systemd[1]: /usr/lib/systemd/system/display-manager.service:12: PIDFile= references a path below legacy directory /var/run/, updating /var/run/displaymanager.pid → /run/displaymanager.pid; please update the unit file accordingly.
oct. 28 11:13:17 linux-2ak3 systemd[1]: /usr/lib/systemd/system/auditd.service:12: PIDFile= references a path below legacy directory /var/run/, updating /var/run/auditd.pid → /run/auditd.pid; please update the unit file accordingly.
oct. 28 11:13:16 linux-2ak3 systemd[1]: Reloading.
...]
…and that although some like /var are remounted afterwards, this is not the case for /.snapshots.
Here’s a full log for reference: https://gist.github.com/HadrienG2/a584e381f39e9866ab7e4a504ceca8a4 .
Can someone help me figure out what’s going on, and how I can fix it so that /.snapshots is properly mounted at the time where I log in?