After update cannot boot, grub error

I have tried twice to install the latest update. The first failed with the following error:

"error: symbol 'grub_memcpy' not found. 
Entering rescue mode ... 
grub rescue>

I then did a full Timeshift restore and I monitored the forum for a few days to see if there were any changes to the update or if anyone else had this issue.

I tried again this morning but I logged out, entered a tty session and deleted the .cache first.

I got the same error as above, i.e. I cannot login. I have a vfat 500mb boot/efi partition. I cannot enter any ordinary terminal commands like lsblk or fdisk as the commands are not recognised from the grub rescue> prompt.

Any suggestions or do I commence another Timeshift restore?

it has been discussed here in the past two days

booting the installer ISo from USB or whatever
and then
manjaro-chroot -a
or the manual way when you use BTRFS
and then running:
install-grub
should remedy this situation

Wouldn’t I need to do a Timeshift restore to run the chroot command?

No.

Then you’d presumably be in the state before the update - and would need to do it again.
… but:
I don’t know how you use timeshift …

I did a timeshift restore and run install-grub, it worked.

Thanks @ceres, I will try that.

Boot up from the installer USB and chroot into your installed system. The procedure follows below… :backhand_index_pointing_down:

  1. In the live session, open up a terminal window. In this terminal window, issue the following command… :backhand_index_pointing_down:

    sudo -i
    
  2. Mount the filesystems of your installed system — the sample commands below use /dev/sda1 for the EFI system partition and /dev/sda2 for the root partition, but you should adapt this to what applies on your system. :backhand_index_pointing_down:

    mount -t btrfs -o subvol=@ /dev/sda2 /mnt
    mount -t btrfs -o subvol=@home /dev/sda2 /mnt/home
    mount -t btrfs -o subvol=@log /dev/sda2 /mnt/var/log
    mount -t btrfs -o subvol=@cache /dev/sda2 /mnt/var/cache
    mount -t vfat  /dev/sda1 /mnt/boot/efi
    mount --bind /dev /mnt/dev
    mount -t proc proc /mnt/proc
    mount -t sysfs sysfs /mnt/sys
    mount -t efivarfs efivarfs /mnt/sys/firmware/efi/efivars
    chroot /mnt /bin/bash
    
  3. Install install-grub from the repositories… :backhand_index_pointing_down:

    pacman -S install-grub
    
  4. Run the script. :backhand_index_pointing_down:

    install-grub
    
  5. Cleanly reboot your system and remove the USB stick from the port.

however, I lost my swapfile. I recreated it without an issue.

Tried your procedure but do get errors in step 3 (pacman …) - “Creating Timeshift … failed … unable to run timeshift autosnap… Please close timeshift and try again …” So my question is how to get around this issue, have not found anything to “close” timeshift.

When I started btrfs on Manjaro over 3 years ago, there wasn’t much on the forums here for this. The above Arch way did always work, but I have been to use manjaro-chroot for a way easier process. I have used it hundreds of times on many systems.

I have always done all of those steps in just these 3:

sudo mount /dev/sda2 -o subvol=@ /mnt
sudo manjaro-chroot /mnt /bin/bash
mount -a

Just a few less steps.

Most people that haven’t touched Manjaro’s defaults, can even just:
mount /dev/sda2 /mnt

You don’t even need the -o subvol=@. Manjaro comes with the default root subvolume of: @. But if you have changed the btrfs subvolume set-default to a different volume, you will need a proper subvol or subvolid option here. So it always safe to leave it in, when we know we want subvol=@.

(Snapper uses the default root volume for its own purpose as well.)


Just to show you @Aragorn..

manjaro-chroot handles all the virtual FSs, and mount -a will get the EFI and btrfs mounts from your /etc/fstab.

In the chroot, before and after mount -a:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda2       242G   72G  169G  30% /
efivarfs        256K  149K  103K  60% /sys/firmware/efi/efivars
udev            5.8G     0  5.8G   0% /dev
shm             5.9G     0  5.9G   0% /dev/shm
run             5.9G     0  5.9G   0% /run
tmp             5.9G     0  5.9G   0% /tmp
overlay         8.8G  1.9G  7.0G  21% /etc/resolv.conf
$ mount -a
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
# Same plus these..
/dev/vda1       300M  320K  300M   1% /boot/efi
/dev/vda2       242G   72G  169G  30% /home
/dev/vda2       242G   72G  169G  30% /var/cache
/dev/vda2       242G   72G  169G  30% /var/log

(The rare time with problems, I have had to mount /mnt/boot/efi before the chroot.)

3 Likes

This I cannot answer you. :man_shrugging:

Apparently you have a timeshift autosnap script running — possibly as a pacman hook, and quite possibly if you have snapper installed. I have neither of those things, so… :man_shrugging:

If it’s a stale lock file, you could try: sudo rm /var/lock/timeshift/lock

If it’s something else, we would need pacman and/or system logs.