I have a laptop and a few weeks ago I run into a problem. It did not booted up and the error was:
mount /efi unknown filesystem type 'vfat'
After searching for solutions I managed to fix it by installing a new kernel 6.6.7.
I kept 6.6.4 also, and on boot 6.6.4 always gave me the same error, 6.6.7 booted with no problem.
Now after 4-5 days and quite a few reboots, I get the same error even if I boot with 6.6.7. I have no idea what happened, and why the problem came back.
Any idea how to fix it?
Either you have A) a bad drive (or corrupt partition) B) faulty hardware other than drive C) a broken kernel/kernel install (most likely one).
Have you done anything untoward like shutdown while your system is still in the process of updating (esp the kernel)? Or recompiled the kernel yourself ?
first i would recommend a disk check to rule out any issues with the drive itself. check not only the file system but check the device for bad blocks.
Since its Christmas day I’m not sure your going to get much available help today. To help get you started may i suggest you post information about the boot loader (Grub,Systemd-boot or other) Also note that kernel 6.6.8 is out.
New laptop. I doubt it. Perhaps I can reformat it, but first I have to save some data.
No I did not.
Yep, I started building a new PC in early December, I’m currently waiting on a replacement for the motherboard (strange behaviors, like 3 minutes for USB system to come online, wireless randomly available or not, etc). My old trusty (5 year old) system works fine…new one…not so much
Yes, the drive check would be a good thing to do. Maybe also run memtest.
When errors repeatedly crop up, and you didn’t do anything, well…
fsck found a few errors and fixed them.
After reboot it still fails.
Fsck may have found errors and even marked bad sectors, but that doesn’t mean the data was recovered successfully.
I actually meant to run badblocks. Fsck is a light surface test…badblocks get to the nuts and bolts. If you have bad blocks on a new drive, you can expect it’s damaged. Invoke badblocks by e2fsck -c (assuming your filesystem is ext4). Oh oops, we’re talking vfat…it’s early…I am barely awake…just second.
Hmm, don’t see a deep scan for vfat, the best I see is fsck.vfat -V (double checks), can’t say I’ve dealt with Windows Filesystems much as to what tools?
Also do a memtest. If your memory is faulty or not compatible (in my experience the most common occurrence with new PCs), this can propagate to other parts like the I/O operations with your disk.
Nor badblocks, nor fsck.vfat found any errors.
Should I use memtester? Or something else?
Whatever suits you. I have a Ventoy stick with some rescue and recovery ISOs, I usually run from there.
I installed kernel 6.1-lts, and it boots with no error, but with the other 2 kernels I got the same error message.
I have no clue what is happening.
memtest show no errors
How did you keep 6.6.4?
When kernel is updated to a new version, the previous one is automatically removed in Arch.
Also the latest mainline is at 6.6.8 currently.
grub-mkconfig -o /boot/grub/grub.cfg kept it. Now I have 6 entries in grub. 6.6.1, 6.6.4 and 6.6.7 and their fallbacks.
There is something odd going on there.
You shouldn’t be having more than one version for each kernel line installed.
1 kernel is installed once, but grub lists as 6.6.1 and 6.6.1-fallback
Have you by any chance used Grub Customizer at some point?
That could, in certain cases, explain the Grub’s “weird” behavior.
Yes I did at once when I was trying to fix the original issue. Then when I saw it was problematic, I removed it.
That is what causes issues for users using Grub Customizer.
The changes made by Grub Customizer needs to be reverted before the removal of the application.
Failing to do so, I have seen many blaming the software for having created the issue.
Anyways, you would need to restore your grub “environment”.
Please follow the steps below:
sudo mv /etc/default/grub /etc/default/grub.old
sudo mv /etc/grub.d /etc/grub.d.old
sudo rm /boot/grub/grubenv
sudo grub-editenv /boot/grub/grubenv create
sudo pacman -S grub
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ID
sudo grub-mkconfig -o /boot/grub/grub.cfg
--bootloader-id=ID to correspond to the directory where the bootloader binary is installed in your system. Check with:
ls /boot/efi/EFI/. It could be “endeavouros” or something similar.
If you need more help or have any question, don’t hesitate to ask.