How do I use Timeshift/btrfs to permanently restore to a previous snapshot?

Try to remove it or change it to #GRUB_DEFAULT=saved
Then run $ sudo update-grub
Reboot, if it works?

update-grub or grub-mkconfig?

Both are the same.
update-grub is available in Manjaro and Debian based distros. Other arch based distros do not have this, but use grub-mkconfig ....

Still get the warning. =(

Can you show us $ sudo cat /boot/grub/grub.cfg

cat /boot/grub/grub.cfg

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

set menu_color_normal=light-gray/black
set menu_color_highlight=green/black

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
    font="/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_CA
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
insmod gfxmenu
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/usr/share/grub/themes/manjaro/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4dd57ba2-0498-494e-aa48-191b52801fcf' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod btrfs
        search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
        linux   /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=timeshift-btrfs/snapshots/2022-10-15_23-44-29/@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
        initrd  /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/initramfs-5.15-x86_64.img
}
submenu 'Advanced options for Manjaro Linux' $menuentry_id_option 'gnulinux-advanced-4dd57ba2-0498-494e-aa48-191b52801fcf' {
        menuentry 'Manjaro Linux (Kernel: 5.15.74-3-MANJARO x64)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.74-3-MANJARO x64-advanced-4dd57ba2-0498-494e-aa48-191b52801fcf' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod btrfs
                insmod gzio
                insmod part_gpt
                insmod btrfs
                search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
                linux   /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=timeshift-btrfs/snapshots/2022-10-15_23-44-29/@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
                initrd  /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/initramfs-5.15-x86_64.img
        }
        menuentry 'Manjaro Linux (Kernel: 5.15.74-3-MANJARO x64 - fallback initramfs)' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.15.74-3-MANJARO x64-fallback-4dd57ba2-0498-494e-aa48-191b52801fcf' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_gpt
                insmod btrfs
                search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
                linux   /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=timeshift-btrfs/snapshots/2022-10-15_23-44-29/@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
                initrd  /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/initramfs-5.15-x86_64-fallback.img
        }
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
        fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/41_snapshots-btrfs ###
submenu 'Manjaro Linux snapshots' {
    configfile "${prefix}/grub-btrfs.cfg"
}
### END /etc/grub.d/41_snapshots-btrfs ###

### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        search --fs-uuid --no-floppy --set=root  4dd57ba2-0498-494e-aa48-191b52801fcf
        linux16 /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/memtest86+/memtest.bin
    }
fi
### END /etc/grub.d/60_memtest86+ ###

I got that, the grub boot config is not correct.

what is the version of grub-btrfs?

This is where the other post led me to. And just basically having to rename what the default menuentry> linux, linuxrd is booting from?

Which I think requires me live booting to do?

pacman -Qi grub-btrfs
Name            : grub-btrfs
Version         : 4.11-2
...

Do not need to use live booting.
There is a trick to fix grub boot config directly.

Change

to

menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4dd57ba2-0498-494e-aa48-191b52801fcf' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod btrfs
        search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
        linux   /@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
        initrd  /@/boot/amd-ucode.img /@/boot/initramfs-5.15-x86_64.img
}

then reboot, if it works

We’ve been replying very fast back and forth, thank you for this.

Let me digest this before I do this. I need a fall back, in case I make this worse.

Oh I do have my other boot options for fall back. But won’t this get over written when I run grub-mkconfig?

  1. Fix this grub boot config. Please not use grub-mkconfig or update-grub
  2. Then reboot
  3. Check if it has the issue.
  4. If no issue, then run update-grub or grub-mkconfig to overwrite this grub boot config.
  5. Check if this Grub boot config is correct.

You may find some ideas from searching for btrfs rollback in the forum:

And you find good Information about Btrfs in the wiki

This issue has nothing to do with restoring btrfs snapshot, but GRUB boot configuration is wrong because running update-grub or grub-mkconfig incorrectly overwrites the GRUB boot config when running your system in the writable snapshot and ignoring the hints of Timeshift “Please restore the snapshot”.

Edited, rebooted, still have the warning.

I modified these 4 lines:

        #linux  /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=timeshift-btrfs/snapshots/2022-10-15_23-44-29/@  apparmor=1 security=apparmor resume=UUID=9f5a3a
86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
        linux   /@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:
1aef video=efifb:off
        #initrd /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/initramfs-5.15-x86_64.img
        initrd  /@/boot/amd-ucode.img /@/boot/initramfs-5.15-x86_64.img

In the grub boot menu, did you select the first boot entry “Manjaro Linux”? Or fallback?

The first one. Which is the one I modified.

Edit: I will double check, and reboot again. But I’m 99.9% sure I did that part right.

I edited the default/first entry. Rebooting now.

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Manjaro Linux' --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-4dd57ba2-0498-494e-aa48-191b52801fcf' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_gpt
        insmod btrfs
        search --no-floppy --fs-uuid --set=root 4dd57ba2-0498-494e-aa48-191b52801fcf
        #linux  /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=timeshift-btrfs/snapshots/2022-10-15_23-44-29/@  apparmor=1 security=apparmor resume=UUID=9f5a3a
86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:1aef video=efifb:off
        linux   /@/boot/vmlinuz-5.15-x86_64 root=UUID=4dd57ba2-0498-494e-aa48-191b52801fcf rw rootflags=subvol=@  apparmor=1 security=apparmor resume=UUID=9f5a3a86-21ad-4bcc-9db7-2377aee3d05c udev.log_priority=3 amd_iommu=on vfio-pci.ids=10de:2216,10de:
1aef video=efifb:off
        #initrd /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/amd-ucode.img /timeshift-btrfs/snapshots/2022-10-15_23-44-29/@/boot/initramfs-5.15-x86_64.img
        initrd  /@/boot/amd-ucode.img /@/boot/initramfs-5.15-x86_64.img
}

Yeah, same warning. I actually thought this would work too!

If that does not work, then use manjaro-chroot on Live USB to fix Grub.

# mount -t btrfs /dev/nvme0n1p2 /mnt
# manjaro-chroot /mnt/@
# mount /boot/efi
# update-grub

Then check what is the output cat /boot/grub/grub.cfg

If my plan is to rip out Timeshift and replace it with Snapper. My volumes are just fine, correct? I guess that warning doesn’t even matter then. Since I’ll be removing Timeshift.

But I do want to be booting from /@/… So how do I make the grub.cfg entries permanent? This is something I can’t change from /etc/default/grub.

Edit: Let me guess, I do what you just said in the previous post.