How to install and configure Timeshift to make system restore points?

On my Pinebook Pro, I have the latest version (as of writing) of Tow-Boot installed to the SPI flash, which supports booting a (aarch64) UEFI binary. I currently have Manjaro KDE installed on a btrfs partition on an NVMe drive, via the manjaro-arm-installer pbpro option.

I wish to install timeshift to automatically create system restore points with btrfs snapshots whenever I install new packages with pacman, like with the x86_64 versions of Manjaro.
I also want to be able to have a recovery environment to rollback the main system to a particular snapshot, without needing live media (maybe have it on a separate partition?), accessed via a bootmenu.

How can I do this?

So far I tried installing the timeshift, grub (Grub 2), and grub-btrfs packages, but I was unable to have timeshift take snapshots with btrfs nor do it automatically. I was also unable to properly install grub.

EDIT: Fixed formatting of package names

in manjaro we use timeshift-autosnap-manjaro so that pamac takes snapshots before any package upgrade

you have to update the grub after manual snapshot is taken in order for the recovery snapshots to appear

you may want to enable grub-btrfs.path so you dont have to update grub manually

I installed timeshift-autosnap-manjaro and then installed a package with pacman, it did not make a snapshot.

I ran timeshift-autosnap and it was trying to use rysnc over btrfs snapshots. I couldn’t configure it otherwise.

Additionally, the system is still using the default extlinux bootloader, I haven’t been able to switch it to grub, which I assume is needed for booting timeshift snapshots.

I installed timeshift-autosnap-manjaro and then installed a package with pacman , it did not make a snapshot.

Turns out I needed to reboot after installing the package.

…I couldn’t configure [timeshift] otherwise.

Ran sudo timeshift-launcher, got a setup wizard to configure it.

…[T]he system is still using the default extlinux bootloader, I haven’t been able to switch it to grub

I still need help with this.

When trying to use pacman, it calls timeshift and this error occurs:

(process:1022): GLib-GIO-CRITICAL **: 00:37:05.996: g_file_get_path: assertion 'G_IS_FILE (file)' failed

** (process:1022): CRITICAL **: 00:37:05.999: tee_jee_file_system_path_combine: assertion 'path1 != NULL' failed

** (process:1022): CRITICAL **: 00:37:05.999: tee_jee_file_system_dir_exists: assertion 'dir_path != NULL' failed
Using system disk as snapshot device for creating snapshots in BTRFS mode
Mounted '/dev/nvme0n1p2' at '/run/timeshift/backup'
E: The system partition has an unsupported subvolume layout. Only ubuntu-type layouts with @ and @home subvolumes are currently supported.

Application will exit.

This blocks pacman from being used. I could just disable timeshift-autosnap, but auto-snapshots prior to upgrades is the point of this exercise. I should note the Ubuntu-type BTRFS subvolume layouts are being used. So how do I fix that?

As far as I know, Grub on aarch64 only works on UEFI enabled systems. Our Pinebook Pro images are not UEFI based.

Is there more to making a UEFI system than installing a UEFI-capable bootloader, then? What other things are needed, to convert to a UEFI system?
Or what about using the generic ARM images to start with, are they UEFI-based?

You need board firmware that has EFI enabled to actually have EFI variabled available for the bootloader to read and configure from. U-boot has the capability, but it’s not enabled by default in our builds.

Looks like for now I’ll need a dedicated recovery partition, to then have a way to rollback without live-media. If only timeshift would work properly.

I believe a boot-menu for standard and recovery boots would be handled by extlinux, but correct me if I’m wrong.

Recommendations for the OS to use for recovery? I feel like something with a stable-release model like Debian or Armbian would be better than a rolling-release distro like Manjaro or plain Arch. So I’ll use an Armbian build for recovery if no one has a better choice.

How would I manually restore from an automatic snapshot, do I just replace the @ subvolume with the desired snapshot?