Snapper Broken - Can't Open and Can't Rollback

Encountered an issue wherein snapper unable to open and snapper rollback not working.

Here\s the error message when opening snapper via Yast.

.snapshots is not a btrfs subvolume; caused by 3 sender=:1.119 -> dest=:1.120 serial=12 reply\_serial=12    path=; interface=; member= error\_name=error.io\_error\`\`\`

saw that .snapshots not included on /etc/fstabs, but adding it manually breaks OpenSuse…

Maybe re-creating snapper / snapshots would help? how?

Before recreating anything, start by listing what you have for subvols

sudo btrfs subvolume list /

I’m no expert on this, but the first person that is, will want that info before doing anything.

1 Like

Here’s the output for sudo btrfs subvolume list /

ID 256 gen 30 top level 5 path @
ID 257 gen 319862 top level 256 path @/var
ID 258 gen 317116 top level 256 path @/usr/local
ID 259 gen 313533 top level 256 path @/srv
ID 260 gen 319818 top level 256 path @/root
ID 261 gen 313533 top level 256 path @/opt
ID 262 gen 319862 top level 256 path @/home
ID 263 gen 308492 top level 256 path @/boot/grub2/x86_64-efi
ID 264 gen 308492 top level 256 path @/boot/grub2/i386-pc
ID 265 gen 314123 top level 256 path @/.snapshots
ID 562 gen 313522 top level 265 path @/.snapshots/279/snapshot
ID 615 gen 24623 top level 265 path @/.snapshots/332/snapshot
ID 616 gen 28961 top level 265 path @/.snapshots/333/snapshot
ID 617 gen 28961 top level 265 path @/.snapshots/334/snapshot
ID 618 gen 28961 top level 265 path @/.snapshots/335/snapshot
ID 687 gen 35560 top level 265 path @/.snapshots/402/snapshot
ID 688 gen 35563 top level 265 path @/.snapshots/403/snapshot
ID 689 gen 41266 top level 265 path @/.snapshots/404/snapshot
ID 690 gen 313521 top level 562 path @/.snapshots/279/snapshot/.snapshots
ID 871 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/156/snapshot
ID 872 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/157/snapshot
ID 874 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/159/snapshot
ID 875 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/160/snapshot
ID 895 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/176/snapshot
ID 896 gen 297612 top level 690 path @/.snapshots/279/snapshot/.snapshots/177/snapshot
ID 898 gen 297656 top level 690 path @/.snapshots/279/snapshot/.snapshots/179/snapshot
ID 899 gen 313763 top level 690 path @/.snapshots/279/snapshot/.snapshots/180/snapshot
ID 933 gen 313653 top level 690 path @/.snapshots/279/snapshot/.snapshots/210/snapshot
ID 936 gen 313231 top level 690 path @/.snapshots/279/snapshot/.snapshots/213/snapshot
ID 943 gen 313422 top level 690 path @/.snapshots/279/snapshot/.snapshots/220/snapshot
ID 944 gen 313426 top level 690 path @/.snapshots/279/snapshot/.snapshots/221/snapshot
ID 945 gen 313428 top level 690 path @/.snapshots/279/snapshot/.snapshots/222/snapshot
ID 946 gen 313437 top level 690 path @/.snapshots/279/snapshot/.snapshots/223/snapshot
ID 947 gen 313477 top level 690 path @/.snapshots/279/snapshot/.snapshots/224/snapshot
ID 948 gen 313480 top level 690 path @/.snapshots/279/snapshot/.snapshots/225/snapshot
ID 949 gen 313517 top level 690 path @/.snapshots/279/snapshot/.snapshots/226/snapshot
ID 950 gen 313645 top level 690 path @/.snapshots/279/snapshot/.snapshots/227/snapshot
ID 951 gen 313520 top level 690 path @/.snapshots/279/snapshot/.snapshots/228/snapshot
ID 959 gen 313762 top level 265 path @/.snapshots/412/snapshot
ID 961 gen 313739 top level 265 path @/.snapshots/413/snapshot
ID 962 gen 313740 top level 265 path @/.snapshots/414/snapshot
ID 963 gen 313762 top level 265 path @/.snapshots/415/snapshot
ID 964 gen 319862 top level 265 path @/.snapshots/416/snapshot
ID 965 gen 314118 top level 265 path @/.snapshots/417/snapshot
ID 966 gen 314122 top level 265 path @/.snapshots/418/snapshot
1 Like

The error says it doesn’t exist, but this list clearly shows ID 265 gen 314123 top level 256 path @/.snapshots so maybe one of the experts can lead you down the right path.

1 Like

Show

findmnt --real -u

Here’s the output for findmnt…

TARGET SOURCE FSTYPE      OPTIONS
/      /dev/mapper/system-root[/@/.snapshots/416/snapshot]
│             btrfs       rw,relatime,space_cache=v2,subvolid=964,subvol=/@/.snapshots/416/snapshot
├─/usr/local
│      /dev/mapper/system-root[/@/usr/local]
│             btrfs       rw,relatime,space_cache=v2,subvolid=258,subvol=/@/usr/local
├─/root
│      /dev/mapper/system-root[/@/root]
│             btrfs       rw,relatime,space_cache=v2,subvolid=260,subvol=/@/root
├─/srv /dev/mapper/system-root[/@/srv]
│             btrfs       rw,relatime,space_cache=v2,subvolid=259,subvol=/@/srv
├─/var /dev/mapper/system-root[/@/var]
│             btrfs       rw,relatime,space_cache=v2,subvolid=257,subvol=/@/var
├─/boot/grub2/x86_64-efi
│      /dev/mapper/system-root[/@/boot/grub2/x86_64-efi]
│             btrfs       rw,relatime,space_cache=v2,subvolid=263,subvol=/@/boot/grub2/x86_64-efi
├─/run/user/1000/doc
│      portal fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
├─/boot/efi
│      /dev/sda1
│             vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
├─/boot/grub2/i386-pc
│      /dev/mapper/system-root[/@/boot/grub2/i386-pc]
│             btrfs       rw,relatime,space_cache=v2,subvolid=264,subvol=/@/boot/grub2/i386-pc
├─/home
│      /dev/mapper/system-root[/@/home]
│             btrfs       rw,relatime,space_cache=v2,subvolid=262,subvol=/@/home
└─/opt /dev/mapper/system-root[/@/opt]
              btrfs       rw,relatime,space_cache=v2,subvolid=261,subvol=/@/opt

Well, there is no /.snapshots mount point so the error is correct - the /.snapshots is directory, not subvolume.

Mount the @/.snapshots subvolume on the /.snapshots and add it to the /etc/fstab.

1 Like

How do I do that? A step-by-step instruction would be very much appreciated.

Show

cat /etc/fstab

Here’s the output

/dev/system/root  /                       btrfs  defaults                      0  0
/dev/system/root  /var                    btrfs  subvol=/@/var                 0  0
/dev/system/root  /usr/local              btrfs  subvol=/@/usr/local           0  0
/dev/system/root  /srv                    btrfs  subvol=/@/srv                 0  0
/dev/system/root  /root                   btrfs  subvol=/@/root                0  0
/dev/system/root  /opt                    btrfs  subvol=/@/opt                 0  0
/dev/system/root  /home                   btrfs  subvol=/@/home                0  0
/dev/system/root  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
/dev/system/root  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=1233-C362    /boot/efi               vfat   utf8                          0  2
/dev/system/swap  swap                    swap   defaults                      0  0

So, add the line

/dev/system/root  /.snapshots                    btrfs  subvol=/@/.snapshots                 0  0

make sure the /.snapshots directory exists and run

mount /.snapshots

Try snapper again.

I will not claim it is necessarily wrong, but it is highly unusual and most likely the result of mistake. At some point you created subvolume in the wrong place instead of mounting the correct one.

1 Like

Added /.snapshots, but there’s an error during mount…

> cat /etc/fstab
/dev/system/root  /                       btrfs  defaults                      0  0
/dev/system/root  /var                    btrfs  subvol=/@/var                 0  0
/dev/system/root  /usr/local              btrfs  subvol=/@/usr/local           0  0
/dev/system/root  /srv                    btrfs  subvol=/@/srv                 0  0
/dev/system/root  /root                   btrfs  subvol=/@/root                0  0
/dev/system/root  /opt                    btrfs  subvol=/@/opt                 0  0
/dev/system/root  /home                   btrfs  subvol=/@/home                0  0
/dev/system/root  /.snapshots             btrfs  subvol=/@/.snapshots          0  0
/dev/system/root  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
/dev/system/root  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0
UUID=1233-C362    /boot/efi               vfat   utf8                          0  2
/dev/system/swap  swap                    swap   defaults                      0  0

during mount /.snapshots

mount: /.snapshots: must be superuser to use mount.
       dmesg(1) may have more information after failed mount system call.

tried sudo mount /.snapshots.

edit: can’t delete post… that’s why edited to the latest status…

Able to open Snapper via YaST
Did a restart, and confirmed that snapshots still exists in fstab; also able to open Snapper via YaST.

TARGET SOURCE FSTYPE      OPTIONS
/      /dev/mapper/system-root[/@/.snapshots/416/snapshot]
│             btrfs       rw,relatime,space_cache=v2,subvolid=964,subvol=/@/.snapshots/416/snapshot
├─/usr/local
│      /dev/mapper/system-root[/@/usr/local]
│             btrfs       rw,relatime,space_cache=v2,subvolid=258,subvol=/@/usr/local
├─/home
│      /dev/mapper/system-root[/@/home]
│             btrfs       rw,relatime,space_cache=v2,subvolid=262,subvol=/@/home
├─/boot/grub2/x86_64-efi
│      /dev/mapper/system-root[/@/boot/grub2/x86_64-efi]
│             btrfs       rw,relatime,space_cache=v2,subvolid=263,subvol=/@/boot/grub2/x86_64-efi
├─/.snapshots
│      /dev/mapper/system-root[/@/.snapshots]
│             btrfs       rw,relatime,space_cache=v2,subvolid=265,subvol=/@/.snapshots
├─/var /dev/mapper/system-root[/@/var]
│             btrfs       rw,relatime,space_cache=v2,subvolid=257,subvol=/@/var
├─/run/user/1000/doc
│      portal fuse.portal rw,nosuid,nodev,relatime,user_id=1000,group_id=1000
├─/boot/efi
│      /dev/sda1
│             vfat        rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro
├─/opt /dev/mapper/system-root[/@/opt]
│             btrfs       rw,relatime,space_cache=v2,subvolid=261,subvol=/@/opt
├─/srv /dev/mapper/system-root[/@/srv]
│             btrfs       rw,relatime,space_cache=v2,subvolid=259,subvol=/@/srv
├─/root
│      /dev/mapper/system-root[/@/root]
│             btrfs       rw,relatime,space_cache=v2,subvolid=260,subvol=/@/root
└─/boot/grub2/i386-pc
       /dev/mapper/system-root[/@/boot/grub2/i386-pc]
              btrfs       rw,relatime,space_cache=v2,subvolid=264,subvol=/@/boot/grub2/i386-pc

Didn’t try snapper rollback yet.

Thanks for the help.

--------------------------------------------------------------------------------------------

Just for the record, snapper broke before (Start via read-only snapshot disappeared from Grub choices upon boot) that’s why I tried to re-create the snapshots directory; causing this whole fiasco.

What should have I done to avoid this whole mess?

Do you use sudo to get root?

Or do you use su -l

just typed sudo mount /.snapshots to put it in root mode?

Do you use sudo to get root? not really sure of this…
Didn’t use su -l… what does it do?

You have to type in your root Password and get a login-shell.

sudo in openSUSE is not as configured as in other distributions and should work in 99%, but sometimes it does not.

So maybe switching to a root login shell may do the trick.

1 Like

Thanks for that.

Using sudo did the trick.

Everything’s working great; except for the sudo rollback, can’t say as I didn’t test this yet.

You do not mentioned, if it works with su -l .

Didn’t try with su -l anymore as snapper’s working fine so far…
not sure of the snapper rollback though… didn’t test it…

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