Mount: /sys/firmware/efi/efivars unknown filesystem type 'efivars'l

I am dual booting Manjaro KDE and Windows for a while now, and it’s been working like a charm. But two days ago, when booting Manjaro, I encountered the error in the title,
Mount /sys/firmware/efi/efivars unknown filesystem type 'efivars'
So I did as suggested in older threads for the same error, and reinstalled Grub. It seemed to work for a while, but today when I tried to boot up Manjaro, the error returned. Again, I reinstalled Grub, but to no avail. I did notice, however, that sometimes when I attempt to boot, the error appears, but Manjaro does eventually boot. In other times, the terminal screen switches to high resolution and remains on the error, unresponsive.

Note: I am on the testing branch and run kernel 5.9. When attempting to run Manjaro with older kernels an error failed to mount /boot/efi appears. Emergency mode however, is not usable, as the keyboard is unresponsive.

1 Like

Can you post /etc/fstab and blkid ?

but what linux? Please mention name (and version if applicable) of distribution.

Now what happened before that? Please mention it, especially if you ran updates on the other distribution. That’s the only activity that ever touches grub.

Speaking from past outdated experiences, Manjaro’s grub implementation can handle other distros, but other grubs tend to fail booting Manjaro due to some customisation on Manjaro’s part. If that’s the case, please uninstall grub package from secondary distro completely. Then boot into Manjaro and reinstall grub. Manjaro’s grub alone is enough to boot them all.

But we cannot confirm anything without more info. Pastebin the following output.

sudo blkid
sudo parted -l
sudo dmidecode --type=bios
inxi -Fxzc0

The error is because your system is booted as a BIOS system.

Check your firmware settings - disable CSM/Legacy/Compatibility - many names for the same thing.

recheck all option in Bios to get only EFI

disable secureboot
disable fastboot
no CSM or Legacy
choose UEFI only or first or others ( not windows )
disks on AHCI
no optane RST

and boot in UEFI only on USB iso
you should see this
UEFI < USB vendor name > < partition 1>

open a terminal and a browser on this topic
and returns

inxi -Mza
test -d /sys/firmware/efi && echo efi || echo bios
sudo parted -l
sudo efibootmgr -v

Ah, sorry, I meant Manjaro and Windows*
I don’t believe anything happened after I thought I fixed it. But since it’s windows, it’s certainly not another Linux distribution. Sorry for the confusion.

Here are your commands.

Again, I meant Windows. I disabled CSM and Fastboot when I installed Windows, but I’ll check again in any case.

Edit: both CSM and Fastboot are indeed disabled.

Fastboot is disabled, CSM is disabled, no secureboot option (I understand that it’s identical with CSM), no choice to switch to BIOS mode, disks are on AHCI, no optabe RST option as far as I can see.

In the boot preferences, beside the option to boot to Manjaro or Windows, there is a UEFI OS option. When I boot it, it shows the error
error: symbol 'grub_calloc' not found
and opens up a grub rescue terminal. I am not sure of its significance, if at all.

Here are the commands you requested.
Note: partition 3 is root, and partition 4 is home.

Here are your commands.

Translating this message: It means it is not possible to load the EFI firmware as a filesystem.

You get the message when the system is starting in Legacy mode (BIOS mode) - and can be compared to you having two disks to mount in fstab and then you disconnect one and reboot without removing the device from fstab.

The mount error pointing to the missing device on reboot - same thing happening on your system but with the efivars filesystem.

Now I have no idea what have happened - but such thing does not happen overnight so I am fairly sure it is some interaction on your part which have caused it.

It is fairly simple to determine as already pointed to by @stephane the long version is - if this special filesystem is available - you will be able to list the contents - usually it is readonly - but it is possible to mess it by mounting it rw.

Listing the content of efi folder should yield something similar to this output

➜  ~ ls /sys/firmware/efi/       
config_table  fw_platform_size  runtime      systab
efivars       fw_vendor         runtime-map

And listing the actual efivars would yield all the files in the tree

ls /sys/firmware/efi/efivars

If you do not have these entries then your system settings are flawed somewhere - maybe one installation is BIOS/{MBR|GPT} and the other EFI/GPT.

But I do believe we have some kind of xy problem here.

Where is the error displayed ?

i just noticed the error says unknown filesystem type ‘efivars’
According to instructions the filesystem is supposed to be efivarfs
as given in this command

root # mount -t efivarfs efivarfs /sys/firmware/efi/efivars

Could you please share the link you referred to? If possible write the commands you entered from chroot. Could be a typo. Keep calm and blame windows. Do what he/she says :point_down:

I didn’t spot that - file system is named efivarfs - the mountpoint is efivars - agree the message appears slightly confusing :grin:

I see - that makes a slight difference.

One could speculate - but the information given is sparse to say the least.

In the guide to dual-boot which you find in the #contributions section you are advised - if using EFI - to create a separate $esp for your Manjaro installation. The reason is simple - it is to avoid Windows from rewriting your Manjaro $esp.

Another indication of possible conflict is if you list the partitions on your primary disk and it yields something including the word dos which will indicate you are in fact trying to boot an EFI installation on MBR partition which is impossible - hence the error message. Try list diskinfo using fdisk

sudo fdisk -l

I’m afraid it’s a typo on my end, it does say efivarfs. I had a rather large update just a day or so before it started. Perhaps that’s the cause? Or conversely, maybe some windows update indeed bricked it.

Here’s the output of both commands:

[ido66667@b550aoruselite ~]$ ls /sys/firmware/efi/
config_table  efivars  fw_platform_size  fw_vendor  runtime  systab
[ido66667@b550aoruselite ~]$ ls /sys/firmware/efi/efivars
[ido66667@b550aoruselite ~]$

This suggests that indeed the efivars folders is messed up for some reason. It’s empty.

I already uploaded sudo fdisk, but here it is again anyway:

[ido66667@b550aoruselite efivars]$ sudo fdisk -l
Disk /dev/nvme0n1: 953.87 GiB, 1024209543168 bytes, 2000409264 sectors
Disk model: GIGABYTE GP-GSM2NE3100TNTD              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: FCC82B8C-7AC5-EB40-987F-0D4BDEDBFFAF

Device              Start        End   Sectors   Size Type
/dev/nvme0n1p1       2048     616447    614400   300M EFI System
/dev/nvme0n1p2     616448   21587967  20971520    10G Linux swap
/dev/nvme0n1p3   21587968  189360127 167772160    80G Linux filesystem
/dev/nvme0n1p4  189360128 1112107007 922746880   440G Linux filesystem
/dev/nvme0n1p5 1112107008 2000408575 888301568 423.6G Microsoft basic data

nvme0n1p3 is root, whereas nvme0n1p4 is home. 5 is Windows of course. I understand this is a more or less decent partition table, no?