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-installerpbpro 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.
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?
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?
Since the last post here, Manjaro’s Pinebook Pro edition has been discontinued in favor of a generic version that works on that hardware and others. A few weeks ago I tried to get the EFI Generic to work with TimeShift. I remember the root filesystem being ext4, so it required converting with btrfs-convert before I could start setting up TimeShift. That converted fine, but when I tried to modify the kernel arguments for the subvol option needed to boot, the only file on the EFI partition was an EFI executable in the default place (/efi/boot/bootaa64.efi), leading me to think the kernel arguments had been rolled into the EFI binary.
This is where I left off since then, but I thought this should be noted here, as this makes the ability to have TimeShift on Manjaro ARM act like its Manjaro x64 counterpart, the point of this thread, much more possible.
P.S. Please don’t nuke this for necro-posting. I don’t know Manjaro’s exact policy on it off the top of my head, but on other forums there’s usually an exception for when new information is relevant to the thread.