Default snapshot not in sync after zypper operations

My system configuration does not seem to be quite right somewhere as it does not seem to advance the current snapshot automatically after zypper operations.

Anyone have any clue as to what I might need to do to fix it?

This is on Slowroll 20251204.

# sdbootutil bootloader
grub2-bls
# sdbootutil get-default
system-opensuse-slowroll-6.18.0-23.g3a581de-default-254.conf
# btrfs subvolume get-default /
ID 531 gen 99962 top level 262 path @/.snapshots/253/snapshot
# snapper -c root list
   # β”‚ Type   β”‚ Pre # β”‚ Date                     β”‚ User β”‚ Used Space β”‚ Cleanup β”‚ Description             β”‚ Userdata
─────┼────────┼───────┼──────────────────────────┼──────┼────────────┼─────────┼─────────────────────────┼──────────────
  0  β”‚ single β”‚       β”‚                          β”‚ root β”‚            β”‚         β”‚ current                 β”‚
238  β”‚ single β”‚       β”‚ fre  5 dec 2025 23:49:40 β”‚ root β”‚  19,67 MiB β”‚         β”‚ before new kf           β”‚
241  β”‚ pre    β”‚       β”‚ lΓΆr  6 dec 2025 00:12:03 β”‚ root β”‚  81,34 MiB β”‚ number  β”‚ zypp(zypper)            β”‚ important=yes
242  β”‚ post   β”‚   241 β”‚ lΓΆr  6 dec 2025 00:12:07 β”‚ root β”‚ 320,00 KiB β”‚ number  β”‚                         β”‚ important=yes
243  β”‚ single β”‚       β”‚ lΓΆr  6 dec 2025 00:14:42 β”‚ root β”‚ 692,00 KiB β”‚ number  β”‚ rollback backup of #229 β”‚ important=yes
244  β”‚ single β”‚       β”‚ lΓΆr  6 dec 2025 00:14:43 β”‚ root β”‚   5,17 MiB β”‚         β”‚ writable copy of #238   β”‚
245  β”‚ pre    β”‚       β”‚ lΓΆr  6 dec 2025 00:45:55 β”‚ root β”‚ 864,00 KiB β”‚ number  β”‚ yast sysconfig          β”‚
246  β”‚ pre    β”‚       β”‚ lΓΆr  6 dec 2025 00:49:28 β”‚ root β”‚ 720,00 KiB β”‚ number  β”‚ zypp(zypper)            β”‚ important=yes
247  β”‚ post   β”‚   246 β”‚ lΓΆr  6 dec 2025 00:49:30 β”‚ root β”‚ 208,00 KiB β”‚ number  β”‚                         β”‚ important=yes
248  β”‚ post   β”‚   245 β”‚ lΓΆr  6 dec 2025 00:50:06 β”‚ root β”‚ 272,00 KiB β”‚ number  β”‚                         β”‚
249  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 00:56:47 β”‚ root β”‚ 102,42 MiB β”‚ number  β”‚ zypp(zypper)            β”‚ important=yes
250  β”‚ post   β”‚   249 β”‚ ons 10 dec 2025 00:56:48 β”‚ root β”‚   1,20 MiB β”‚ number  β”‚                         β”‚ important=yes
251  β”‚ single β”‚       β”‚ ons 10 dec 2025 02:08:19 β”‚ root β”‚ 112,00 KiB β”‚         β”‚ working configuration   β”‚
252  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 02:08:58 β”‚ root β”‚ 112,00 KiB β”‚ number  β”‚ zypp(zypper)            β”‚ important=yes
253+ β”‚ post   β”‚   252 β”‚ ons 10 dec 2025 02:13:58 β”‚ root β”‚ 832,00 KiB β”‚ number  β”‚                         β”‚ important=yes
254- β”‚ single β”‚       β”‚ ons 10 dec 2025 10:06:30 β”‚ root β”‚ 379,70 MiB β”‚         β”‚ working configuration   β”‚
255  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 10:09:11 β”‚ root β”‚   1,00 MiB β”‚ number  β”‚ zypp(zypper)            β”‚ important=yes
256  β”‚ post   β”‚   255 β”‚ ons 10 dec 2025 10:09:15 β”‚ root β”‚   1,58 MiB β”‚ number  β”‚                         β”‚ important=yes
257  β”‚ single β”‚       β”‚ ons 10 dec 2025 10:18:29 β”‚ root β”‚ 832,00 KiB β”‚ number  β”‚ boot                    β”‚
$ cat /etc/fstab
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /            btrfs  defaults              0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /var         btrfs  subvol=/@/var         0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /usr/local   btrfs  subvol=/@/usr/local   0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /srv         btrfs  subvol=/@/srv         0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /root        btrfs  subvol=/@/root        0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /opt         btrfs  subvol=/@/opt         0  0
UUID=672cd2de-102b-4e46-8e72-4fbf546ffbb2  /home        ext4   data=ordered          0  2
UUID=19ee8b4e-24a6-48ad-95ea-518029507b07  swap         swap   defaults              0  0
UUID=593d70a6-2bb9-4425-96cd-ebf12d06fbfc  /.snapshots  btrfs  subvol=/@/.snapshots  0  0
UUID=B7AC-3786                             /boot/efi    vfat   utf8                  0  2
$ rpm -qa|grep snapper
libsnapper8-0.13.0-3.1.x86_64
grub2-snapper-plugin-2.12-68.1.noarch
snapper-0.13.0-3.1.x86_64
yast2-snapper-5.0.0-1.8.x86_64
snapper-lang-0.13.0-3.1.noarch
sdbootutil-snapper-1+git20251126.f7a46a1-1.1.noarch
snapper-zypp-plugin-0.13.0-3.1.x86_64

Why do you expect it to happen?

Why would you have an automatic snapshot feature if the user is expected to configure it manually after each run?

I guess your problem stays even after reboots, right?

I’m not entirely sure what you are want me to take away from that.

Here is my thought process:

This shows that opensuse booted into a specific snapshot for root. State 254 to be specific. Thus nothing from 255 onwards should be present.

/dev/nvme0n1p3 on / type btrfs (rw,relatime,ssd,discard=async,space_cache=v2,subvolid=532,subvol=/@/.snapshots/254/snapshot)

Given:

254- β”‚ single β”‚       β”‚ ons 10 dec 2025 10:06:30 β”‚ root β”‚ 576,00 KiB β”‚          β”‚ working configuration β”‚
255  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 10:09:11 β”‚ root β”‚   1,00 MiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
256  β”‚ post   β”‚   255 β”‚ ons 10 dec 2025 10:09:15 β”‚ root β”‚   1,58 MiB β”‚ number   β”‚                       β”‚ important=yes

The state of 255 is the state 254 plus any changes up until 255 was taken. The state of 256 after the zypper operation, is thus 255 + changes from zypper.

Provided no rollbacks are then done between 255 and a hypothetical 260, the state after 260 should be all of 255…260, yes?

Such that, if I then rollback to 254 the state is reverted to what the disk looked like at that point in time, no changes from 255…260 should be present. A new snapshot is taken (261) which is 254 + changes done since rollback but not including 255…260.

Is anything here working outside of my expectations?

Default stays the same, yeah.

# sdbootutil get-default
system-opensuse-slowroll-6.18.0-23.g3a581de-default-254.conf
$ mount | grep 'on / '
/dev/nvme0n1p3 on / type btrfs (rw,relatime,ssd,discard=async,space_cache=v2,subvolid=532,subvol=/@/.snapshots/254/snapshot)
 # snapper -c root list
   # β”‚ Type   β”‚ Pre # β”‚ Date                     β”‚ User β”‚   Used Space β”‚ Cleanup  β”‚ Description           β”‚ Userdata
─────┼────────┼───────┼──────────────────────────┼──────┼──────────────┼──────────┼───────────────────────┼──────────────
  0  β”‚ single β”‚       β”‚                          β”‚ root β”‚              β”‚          β”‚ current               β”‚
238  β”‚ single β”‚       β”‚ fre  5 dec 2025 23:49:40 β”‚ root β”‚    29,63 MiB β”‚          β”‚ before new kf         β”‚
244  β”‚ single β”‚       β”‚ lΓΆr  6 dec 2025 00:14:43 β”‚ root β”‚     5,19 MiB β”‚          β”‚ writable copy of #238 β”‚
245  β”‚ pre    β”‚       β”‚ lΓΆr  6 dec 2025 00:45:55 β”‚ root β”‚   864,00 KiB β”‚ number   β”‚ yast sysconfig        β”‚
246  β”‚ pre    β”‚       β”‚ lΓΆr  6 dec 2025 00:49:28 β”‚ root β”‚   720,00 KiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
247  β”‚ post   β”‚   246 β”‚ lΓΆr  6 dec 2025 00:49:30 β”‚ root β”‚   208,00 KiB β”‚ number   β”‚                       β”‚ important=yes
248  β”‚ post   β”‚   245 β”‚ lΓΆr  6 dec 2025 00:50:06 β”‚ root β”‚   272,00 KiB β”‚ number   β”‚                       β”‚
249  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 00:56:47 β”‚ root β”‚   102,42 MiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
250  β”‚ post   β”‚   249 β”‚ ons 10 dec 2025 00:56:48 β”‚ root β”‚     1,20 MiB β”‚ number   β”‚                       β”‚ important=yes
251  β”‚ single β”‚       β”‚ ons 10 dec 2025 02:08:19 β”‚ root β”‚   112,00 KiB β”‚          β”‚ working configuration β”‚
252  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 02:08:58 β”‚ root β”‚   112,00 KiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
253+ β”‚ post   β”‚   252 β”‚ ons 10 dec 2025 02:13:58 β”‚ root β”‚   848,00 KiB β”‚ number   β”‚                       β”‚ important=yes
254- β”‚ single β”‚       β”‚ ons 10 dec 2025 10:06:30 β”‚ root β”‚    10,00 MiB β”‚          β”‚ working configuration β”‚
255  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 10:09:11 β”‚ root β”‚     1,00 MiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
256  β”‚ post   β”‚   255 β”‚ ons 10 dec 2025 10:09:15 β”‚ root β”‚     1,58 MiB β”‚ number   β”‚                       β”‚ important=yes
257  β”‚ single β”‚       β”‚ ons 10 dec 2025 10:18:29 β”‚ root β”‚   832,00 KiB β”‚ number   β”‚ boot                  β”‚
258  β”‚ single β”‚       β”‚ ons 10 dec 2025 11:00:05 β”‚ root β”‚     1,14 MiB β”‚ timeline β”‚ timeline              β”‚
270  β”‚ pre    β”‚       β”‚ ons 10 dec 2025 22:13:34 β”‚ root β”‚   480,00 KiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
271  β”‚ post   β”‚   270 β”‚ ons 10 dec 2025 22:14:41 β”‚ root β”‚   464,00 KiB β”‚ number   β”‚                       β”‚ important=yes
273  β”‚ single β”‚       β”‚ tor 11 dec 2025 00:00:05 β”‚ root β”‚   880,00 KiB β”‚ timeline β”‚ timeline              β”‚
274  β”‚ single β”‚       β”‚ tor 11 dec 2025 01:00:05 β”‚ root β”‚ 1 008,00 KiB β”‚ timeline β”‚ timeline              β”‚
275  β”‚ single β”‚       β”‚ tor 11 dec 2025 01:20:21 β”‚ root β”‚   256,00 KiB β”‚ number   β”‚ boot                  β”‚
276  β”‚ pre    β”‚       β”‚ tor 11 dec 2025 01:20:21 β”‚ root β”‚   208,00 KiB β”‚ number   β”‚ zypp(zypper)          β”‚ important=yes
277  β”‚ post   β”‚   276 β”‚ tor 11 dec 2025 01:20:24 β”‚ root β”‚     1,48 MiB β”‚ number   β”‚                       β”‚ important=yes

β€œopensuse” does not do it all by itself. You did something to boot from the non-default snapshot and you never explained what you did.

I have no idea where your β€œnothing should be present” reasoning comes from. Booting into or rolling back to a specific snapshot has no impact on any other snapshots present.

You need to explain what you did. Just throwing at us some command output without a single comment is not the best way to ask questions.

You apparently have very different idea what snapshots are and how they work and you need to explain it so that we are on the same page.

I agree with @shorberg that as long as one keeps system’s default settings for snapper and sdbootutil, and doesn’t fiddle with snapshots, then the expected behaviour is:

  • btrfs snapshots are created at each system updates from zypper
  • sdbootutil then picks up the snapshot list and manages boot loader entries combining kernel/initrd versions and btrfs snapshots
  • default settings are designed to keep only n snapshots and x kernels
  • sdbootutil also is meant to set default entry to latest kernel and latest snapshot

From what is described in the first post, snapper seems to do its job but the update of boot loader entries is not following…

1 Like

That’s wrong. Read the other topic I mentioned which provides explanation how things work.

Sorry for the delay, I unfortunately got ill.

β€œopensuse” is the system in this context, saying it booted into a state is the same as saying β€œthis is the current running state I have to work from”.

As for what I did; I turned off the machine, turned it on again and did nothing else. Everything is as the system decided.

If the configuration is somehow wrong, causing the system to do something unexpected, I need advise on what is wrong and how to fix it.

My usage of the term is the standard use of the term in the context of computers and computer storage. If you mean to claim that the word as used by opensuse is different, please expand on that.

In computer systems, a snapshot is the state of a system at a particular point in time. The term was coined as an analogy to that in photography. (src: Snapshot (computer storage) - Wikipedia)

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