Symbol 'efi_wrap_1' not found

Hello!

Yesterday I updated my system, today it didn't boot. I used the cool snapshot feature and booted my PC using an old snapshot. After I restored the state, I restarted the PC. Now it is stuck with an error I've never heard of.

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

I already looked at few solutions including the one on this forum, but I couldn't solve the issue.
I created a bootable USB, but it doesn't load either. When I boot from there, it writes unknown filesystem.

I would like to get back my computer with all my files. I appreciate all help.

Could you try creating the live USB using ventoy this time? Also redownload the ISO it might be corrupt. Then chroot into your system and reinstall grub following this post:

After that you can follow this thread to prevent being stuck at the loading initramfs screen following the update

Don’t worry you will. :smile:

4 Likes

Okay, Ventroy made it work. Now I am inside the USB booted Garuda Linux.

I started to follow the post you linked about Grub reinstall, but I noticed something. In the Garuda Welcome there are few interesting things: "Chroot", "Garuda Boot Repair", "Garuda Boot Options". Aren't these existing solutions to my problem?

Till you answer, I am going to follow the post you linked.

You can use this too though I personally haven’t used it myself hence wouldn’t be able to guide you with it.

PS: You can open the browser in live ISO and copy and edit commands to avoid syntax errors.

I thought. Okay, will continue with the stuff you sent.

I am confused at the step "In case you want to install the bootloader". I suppose I need this because I can't boot my PC. How do I know if my system is installed in UEFI or Legacy BIOS/MRB?

Yes you do.

The easiest way is to check to see if /sys/firmware/efi exists. It does not appear if you booted using traditional BIOS.

If the file exists, upon executing this command

ls /sys/firmware/efi/

It should give something like this as output.

drwxr-xr-x    - root  4 Jul 02:28 ď„• efivars
drwxr-xr-x    - root  4 Jul 12:08 ď„• esrt
drwxr-xr-x    - root  4 Jul 12:08 ď„• runtime-map
.r--r--r-- 4.1k root  4 Jul 12:08  config_table
.r--r--r-- 4.1k root  4 Jul 12:08  fw_platform_size
.r--r--r-- 4.1k root  4 Jul 12:08  fw_vendor
.r--r--r-- 4.1k root  4 Jul 12:08  runtime
.r-------- 4.1k root  4 Jul 12:08  systab
1 Like

Do inform if you are stuck anywhere again. Though I don't recon you should.

I am stuck at " Select the proper $esp partition (...) and mount it inside chroot".

I try to run the mount, but it returns: "/dev/sda is mounted or mount is already busy"

CONTEXT: I have two disks in my PC: one that is an SSD and has linux on it, one that is a HDD and has all kinds of files on it. At step "Mount and chroot into the installed system " I used one of the partition of my SSD which wrote btrfs (/dev/sda2). At step "Find existing $esp partitions if more than one" the command provided 2 outputs: one is my ssd (/dev/sda), the other one is the usb I am booted from right now.

Shouldn't the SSD be nvme and your HDD sda? can you post the output of

lsblk -fa

You can open a browser in live ISO and copy paste the outputs from there.

Output of lsblk -fa:

NAME  FSTYPE FSVER LABEL               UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
loop0 squash 4.0                                                                  0   100% /run/miso/sfs/livefs
loop1 squash 4.0                                                                  0   100% /run/miso/sfs/mhwdfs
loop2 squash 4.0                                                                  0   100% /run/miso/sfs/desktopfs
loop3 squash 4.0                                                                  0   100% /run/miso/sfs/rootfs
sda
├─sda1
│     vfat   FAT32 NO_LABEL            EB94-73A9
└─sda2
btrfs                            e1fd8aa5-3909-4e25-beac-5e11b1b3a928    4.1G    94% /mnt/broken/@
/mnt/broken
sdb
├─sdb1
│     btrfs                            544359f4-53d2-46f1-ac37-42fa5801c0b5
└─sdb2

sdc
├─sdc1
│     exfat  1.0   Ventoy              3C68-679C
│ └─ventoy
│     iso966 Jolie GARUDA_DR460NIZED_RAPTOR
│                                      2023-05-01-21-27-23-00                     0   100% /run/miso/bootmnt
└─sdc2

zram0                                                                                      [SWAP]

I identified which one is which by looking at their size.

111.8G                         sda
260M                         ├─sda1
111.5G                         └─sda2
931.5G                         sdb
931.5G                         ├─sdb1
512B                         └─sdb2

My SSD is the smaller one. My HDD is around 1TB.

alright it seems to match with what you are supposed to do. Can you post the output of

cat /etc/fstab | nc termbin.com 9999

From chroot? Because if I simple run it, then /etc/fstab is empy (have few rows of comments indicating the top row of the table).

yeah from chroot.

Done. View at dtj19.

allright that matches up too, from chroot

mount /dev/sda1 /boot/efi

Can you copy paste the error?

Okay…now it works. Seems to be that I tried simply “sda” not “sda1”. Why “sda” though? If parted -l | grep -iE "^Disk /|esp" | grep -B1 esp shows simply “sda”?

I am not okay with these disks and all in linux. After my PC is fully back, I am going to study this. I am so sorry for this misunderstanding!

sda is the name of the disk and sda1 is the name of the partition on which your bootloader resides. Perform the next steps to install grub and inform if something errors out

2 Likes

After exiting I saw this on the terminal:
umount: /mnt/broken/@: target is busy.
Is this an error (umount couldn't execute fully for example because target is busy), or it is OK and I can look over it?

Other than this, I could exit out.

Did you exit after these two commands were completed?

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=garuda --recheck
update-grub