help fixing grub (unknown filesystem)

Hi,

I have dual booting Manjaro and Windows 10. After latest windows update my computer stopped booting. Whenever I turn on computer I get:

error: unknown filesystem
Entering rescue mode...
grub rescue>

I boot in UEFI mode, have GPT partition table. Some more details:

I tried some fixes myself:

First
Using GRUB rescue command line mode I ran this.
(hd0,gpt4) is just my windows "D:" disk, on which i have my games/movies/etc, so I don't know why it wanted to boot from there.

and then:

grub rescue> set prefix=(hd0,gpt5)/boot/grub
grub rescue> set root=(hd0,gpt5)
grub rescue> insmod normal
grub rescue> normal

Then I had my standard grub menu from which I booted manjaro and it started as it should.

Next I proceeded to reinstall grub with:

sudo grub-install /dev/sda
sudo update-grub
reboot

Now the problem seems to be even worse, because above error is still shown on startup, but now I cannot show normal grub menu anymore (using "normal" command), because of the error:

grub rescue> set prefix=(hd0,gpt5)/boot/grub
grub rescue> set root=(hd0,gpt5)
grub rescue> insmod normal
error: symbol `grub_file_filters` not found.
grub rescue>

I thought maybe it's worse because I reinstalled grub as if i had MBR partitions, but I have GPT!
Luckily I found out that when I enter BIOS boot menu (F11 when computer starts) I can boot perfectly fine by manually choosing manjaro or windows os. So I chose manjaro, saw my standard grub menu, chose manjaro again and when it started, I proceeded to reinstall grub properly (according to wiki):

Second

kossak@matikomp ~> sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
Installing for x86_64-efi platform.
Installation finished. No error reported.

kossak@matikomp ~> sudo update-grub
Generating grub configuration file ...
Found background: /usr/share/grub/background.png
Found linux image: /boot/vmlinuz-4.14-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-4.14-x86_64.img
Found initrd fallback image: /boot/initramfs-4.14-x86_64-fallback.img
Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

But it didn't help anything. After reboot the same errors still appear (unknown filesystem and later grub_file_filters not found)

Third
After booting manjaro with F11:

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --boot-directory=/boot --recheck --debug
sudo update-grub

Logs from grub-install are here

It also didn't fix anything.

I can still boot both systems using F11 boot menu, but I have no idea how to fix it so it boots automatically (shows proper/working grub menu as before).

Please help.
Thank you in advance.

=== SOLUTION ===
After booting local Manjaro os:

sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi
sudo efibootmgr -c -d /dev/sda -p 1 -L "manjaro" -l "\EFI\Manjaro\grubx64.efi"

(Second command must reference your EFI/ESP partition - "-p" param. Change it accordingly!)

Maybe you give this a try

I think your knowledge is better than mine :wink: I'm sorry if you already tried to solve the problem that way :slight_smile:

1 Like

where is your /boot/efi ?
dont see in you partition list in inxi , that mean not in /etc/fstab

see this

where is your /boot/efi ?

The link to all my partitions is in the first post. See here (ESP is /dev/sda1)
I will check the two other threads you posted...

then check /etc/fstab on your disk

manjaro-chroot -a ( select 1 if one line )
cat /etc/fstab 
exit ( leave chroot)

if /boot/efi with UUID is not in /etc/fstab , you cant make a grub install ( or is wrong if you boot with USB /boot/efi in fact )

The EFI/ESP partition is automatically mounted. I have this line in /etc/fstab:

UUID=BA15-BC44 /boot/efi vfat defaults,noatime 0 2

In my first post there is link to whole /boot (on os root partition /dev/sda5) directory structure (recursively) so you can see all the files on ESP partition.

can you try this ?

sudo cp /boot/efi/EFI/Manjaro/grubx64.efi    /boot/efi/EFI/boot/bootx64.efi
sudo efibootmgr -v

Yes I just found it in the thread that @SGS posted, and it solved my problem! Exact commands I ran:

sudo cp /boot/grub/x86_64-efi/core.efi /boot/efi/EFI/boot/bootx64.efi
sudo efibootmgr -c -d /dev/sda -p 1 -L "manjaro" -l "\EFI\Manjaro\grubx64.efi"

Thank you both, it works now! I guess windows has overwritten the file /EFI/boot/bootx64.efi. Copying it from grub/manjaro solves the problem. If this is the case, probably second command from above wasn't needed...

1 Like

Forum kindly sponsored by Bytemark