Post install yastsnapper - possible?

big tanx on this great distro.
is there a way to avoid usb upgrade-install (or such). aspire ES1-512 was to slow & frozy on tumbleweed.kde so i installed fxce but forgot to check “enable snap”.
maybe kind of implementation script or cl steps

Show

btrfs subvolume list /
cat /etc/fstab

ID 256 gen 670 top level 5 path @
ID 257 gen 673 top level 256 path var
ID 258 gen 301 top level 256 path usr/local
ID 259 gen 138 top level 256 path srv
ID 260 gen 560 top level 256 path root
ID 261 gen 138 top level 256 path opt
ID 262 gen 673 top level 256 path home
ID 263 gen 138 top level 256 path boot/grub2/x86_64-efi
ID 264 gen 135 top level 256 path boot/grub2/i386-pc
wizac0@opSuseTxf:~> cat /etc/fstab
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /                       btrfs  defaults                      0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /var                    btrfs  subvol=/@/var                 0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /usr/local              btrfs  subvol=/@/usr/local           0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /srv                    btrfs  subvol=/@/srv                 0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /root                   btrfs  subvol=/@/root                0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /opt                    btrfs  subvol=/@/opt                 0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /home                   btrfs  subvol=/@/home                0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /boot/grub2/x86_64-efi  btrfs  subvol=/@/boot/grub2/x86_64-efi  0  0
UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /boot/grub2/i386-pc     btrfs  subvol=/@/boot/grub2/i386-pc  0  0

And

btrfs subvolume get-default /

ID 256 gen 670 top level 5 path @

sudo zypper in -f snapper
sudo snapper create-config /
sudo snapper list-configs
Config │ Subvolume
───────┼──────────
root   │ /

sudo snapper list
# │ Vrsta  │ Pre # │ Date                                   │ User │ Cleanup │ Opis    │ Userdata
──┼────────┼───────┼────────────────────────────────────────┼──────┼─────────┼─────────┼─────────
0 │ single │       │                                        │ root │         │ current │
1 │ single │       │ utorak, 09. srpnja 2024. 19:25:48 CEST │ root │         │ prv     │

now yastsnapper gui
and output

btrfs subvolume list /
ID 256 gen 1334 top level 5 path @
ID 257 gen 1342 top level 256 path var
ID 258 gen 789 top level 256 path usr/local
ID 259 gen 138 top level 256 path srv
ID 260 gen 1331 top level 256 path root
ID 261 gen 138 top level 256 path opt
ID 262 gen 1342 top level 256 path home
ID 263 gen 138 top level 256 path boot/grub2/x86_64-efi
ID 264 gen 135 top level 256 path boot/grub2/i386-pc
ID 265 gen 1328 top level 256 path .snapshots
ID 266 gen 1326 top level 265 path .snapshots/1/snapshot

is that cortrect done, will it do the job further on

The following may work (untested).

Create subvolume for snapshots

btrfs subvolume create /.snapshots

make sure /.snapshots is mounted as the correct subvolume after reboot

echo 'UUID=6baf915d-20fa-4b62-889c-1ee6fcd6e69b  /.snapshots                    btrfs  subvol=/@/.snapshots                 0  0` >> /etc/fstab

Make sure the packages grub2-snapper-plugin and snapper-zypp-plugin are installed

tw:~ # zypper se -six grub2-snapper-plugin snapper-zypp-plugin
Loading repository data...
Reading installed packages...

S  | Name                 | Type    | Version    | Arch   | Repository
---+----------------------+---------+------------+--------+-------------------------------
i  | grub2-snapper-plugin | package | 2.12-20.1  | noarch | openSUSE-20221216-0 (20240704)
i  | snapper-zypp-plugin  | package | 0.11.0-1.1 | x86_64 | openSUSE-20221216-0 (20240704)
tw:~ # 

Check that /etc/default/grub contains SUSE_BTRFS_SNAPSHOT_BOOTING="true". If not, add it and reinstall grub2:

echo 'SUSE_BTRFS_SNAPSHOT_BOOTING="true"' >> /etc/default/grub
update-bootloader --reinit

Enable snapper for root subvolume and create the first root snapshot

snapper -c root create-config /
snapper create -c number -d "first root filesystem" -t single --read-write

Check snapshot number. It will probably be 1.

tw:~ # snapper --table-style=0 list
   # | Type   | Pre # | Date                     | User | Used Space | Cleanup | Description           | Userdata
-----+--------+-------+--------------------------+------+------------+---------+-----------------------+--------------
  0  | single |       |                          | root |            |         | current               |
  1* | single |       | Sat Dec 17 19:44:36 2022 | root | 688.20 MiB | number  | first root filesystem |

Make newly created snapshot the default

btrfs subvolume set-default /.snapshots/1/snapshot /

Reboot; stop in the grub2 menu and add rootflags=rw to the kernel commands line. After boot verify that your root is now the first subvolume:

tw:~ # findmnt -u /
TARGET SOURCE FSTYPE OPTIONS
/      /dev/sda2[/@/.snapshots/1/snapshot]
              btrfs  rw,relatime,discard=async,space_cache=v2,subvolid=266,subvol=/@/.snapshots/1/snapshot
tw:~ # 

That should be it. As mentioned, untested, so you better try in the VM first.

have never run vm, tried to install some in kali but no luck with it though at first glance proposed solution looky to complicated for my old grey.cells,
what interest me ; is there a way to check weight , integrity and quality of now saved snaps with above workaround. output :

snapper list
# │ Vrsta  │ Pre # │ Date                                   │ User │ Cleanup  │ Opis               │ Userdata
──┼────────┼───────┼────────────────────────────────────────┼──────┼──────────┼────────────────────┼─────────────
0 │ single │       │                                        │ root │          │ current            │
1 │ single │       │ utorak, 09. srpnja 2024. 19:25:48 CEST │ root │          │ prv                │
2 │ single │       │ utorak, 09. srpnja 2024. 20:00:12 CEST │ root │ timeline │ timeline           │
3 │ pre    │       │ utorak, 09. srpnja 2024. 20:37:08 CEST │ root │ number   │ zypp(ruby.ruby3.3) │ important=no
4 │ post   │     3 │ utorak, 09. srpnja 2024. 20:37:12 CEST │ root │ number   │                    │ important=no
5 │ single │       │ utorak, 09. srpnja 2024. 21:00:01 CEST │ root │ timeline │ timeline           │
6 │ single │       │ utorak, 09. srpnja 2024. 22:00:00 CEST │ root │ timeline │ timeline