Cannot mount boot/efi after forced shutdown with manual power off

if I type the command systemctl status boot-efi.mount I get a few log messages ending with:

Mounting /boot/efi...
mount: unknown filesystem type 'vfat'
boot-efi.mount: Mount process exited, code=exited status=32
Failed to mount /boot/efi
boot-efi.mount: Unit entered failed state

but the efi partition is available (it's on /dev/sda1) and I can successfully check it with dosfsck. so it actually seems that the system cannot mount it because the filesystem vfat is unknown.
any ideas?

Arch Linux forum has some threads on this.
Something seems to happen to the kernel or fstab. Can you use other kernel? Install with mhwd? Maybe chroot from installation media and install one?

Excuse me for jumping in at this stage.

It seems you have an unusual (not deliberate, I am sure) set up.
Can you provide the following output

test -d /sys/firmware/efi && echo uefi || echo bios
sudo parted -l
cat /etc/fstab

Since you dual-boot with Windows, consider this:

Fast Start-Up is a feature in Windows 8 and above that hibernates the computer rather than actually shutting it down to speed up boot times. Your system can lose data if Windows hibernates and you dual boot into another OS and make changes to files. Even if you do not intend to share filesystems, the EFI System Partition is likely to be damaged on an EFI system. Therefore, you should disable Fast Startup, as described here for Windows 8
and here for Windows 10,
before you install Linux on any computer that uses Windows 8 or above.

Thanks, fast boot was already disabled on the system.
I will post the output suggested by gohlip in a while...

test -d /sys/firmware/efi && echo uefi || echo bios



TARGET                           SOURCE      FSTYPE      OPTIONS
/                                /dev/sda3   ext4        rw,noatime,discard,data=ordered
├─/proc                          proc        proc        rw,nosuid,nodev,noexec,relatime
│ └─/proc/sys/fs/binfmt_misc     systemd-1   autofs      rw,relatime,fd=25,pgrp=1,timeout=0,minproto=5,maxproto=5,direct
│   └─/proc/sys/fs/binfmt_misc   binfmt_misc binfmt_misc rw,relatime
├─/sys                           sys         sysfs       rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/security         securityfs  securityfs  rw,nosuid,nodev,noexec,relatime
│ ├─/sys/fs/cgroup               tmpfs       tmpfs       ro,nosuid,nodev,noexec,mode=755
│ │ ├─/sys/fs/cgroup/systemd     cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,cpu,cpuacct
│ │ ├─/sys/fs/cgroup/blkio       cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,blkio
│ │ ├─/sys/fs/cgroup/memory      cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,memory
│ │ ├─/sys/fs/cgroup/net_cls     cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,net_cls
│ │ ├─/sys/fs/cgroup/cpuset      cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,cpuset
│ │ ├─/sys/fs/cgroup/devices     cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,devices
│ │ ├─/sys/fs/cgroup/freezer     cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,freezer
│ │ └─/sys/fs/cgroup/pids        cgroup      cgroup      rw,nosuid,nodev,noexec,relatime,pids
│ ├─/sys/fs/pstore               pstore      pstore      rw,nosuid,nodev,noexec,relatime
│ ├─/sys/firmware/efi/efivars    efivarfs    efivarfs    rw,nosuid,nodev,noexec,relatime
│ ├─/sys/kernel/debug            debugfs     debugfs     rw,relatime
│ └─/sys/kernel/config           configfs    configfs    rw,relatime
├─/dev                           dev         devtmpfs    rw,nosuid,relatime,size=8163424k,nr_inodes=2040856,mode=755
│ ├─/dev/shm                     tmpfs       tmpfs       rw,nosuid,nodev
│ ├─/dev/pts                     devpts      devpts      rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000
│ ├─/dev/hugepages               hugetlbfs   hugetlbfs   rw,relatime
│ └─/dev/mqueue                  mqueue      mqueue      rw,relatime
├─/run                           run         tmpfs       rw,nosuid,nodev,relatime,mode=755
└─/tmp                           tmpfs       tmpfs       rw,noatime

sudo parted -l

Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name                  Flags
 1      1049kB  1050MB  1049MB  fat32                                 boot, esp
 2      1050MB  1083MB  33.6MB  linux-swap(v1)
 3      1083MB  482GB   481GB   ext4
 4      482GB   1000GB  518GB   ntfs            Basic data partition  msftdata

Model: ATA SAMSUNG MZNLF128 (scsi)
Disk /dev/sdb: 128GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size    File system  Name                          Flags
 1      1049kB  274MB  273MB   fat32        EFI system partition          boot, esp
 2      274MB   290MB  16.8MB               Microsoft reserved partition  msftres
 3      290MB   128GB  127GB   ntfs         Basic data partition          msftdata
 4      128GB   128GB  523MB   ntfs         Basic data partition          hidden, diag

cat /etc/fstab
# /etc/fstab: static file system information.
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
UUID=2D77-D903 /boot/efi vfat defaults,noatime 0 2
UUID=9933d9d4-ca6d-4f76-a7f8-e36896dda4e8 swap swap defaults,noatime,discard 0 0
UUID=125a0939-1778-4028-ab0e-a2ecf173578a / ext4 defaults,noatime,discard 0 1
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0

Note your findmnt does not have /boot/efi listed (wrong)
Yet a /boot/efi is listed in fstab. (correct)

You have 2 disks (in gpt - correct) and each has an $esp partition.

The question is - the uuid listed in fstab (UUID=2D77-D903) whether it is in sda (1 TB) or sdb (128 BG).
(sorry, should also ask you for blkid output)

There are a few possiblities - most likely one of these.
[1] Your fstab entry is that of sdb (128 GB) $esp and you did not plug in the disk sdb when booting up, hence it does not find /boot/efi.
[2] fstab entry is of sda (1 TB) $esp but it is physically damaged.

So check with "sudo blkid" if the fstab uuid belongs to which disk.
If it is [1], either make sure you plug in the sdb 128 GB disk when booting or change fstab entry to that of sda 1 TB.
If it is [2], go generate a new $esp (use gparted) - then change fstab to reflect the change.
You can format again that $esp partition, flag it as /boot/efi
Or create a new partition. If it the partition is physically damaged, create a new partition is better, but watch out - try not to resize or move other partitions.

[edit] -
Then after changing fstab or new $esp partition, it is better (I just like to make sure) to do this after booting up with changes effected.
o First, make sure findmnt has /boot/efi listed. You can do this with just "findmnt /boot/efi"
o When it is properly listed in 'findmnt /boot/efi' do the following in terminal,

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

Good luck, let us know, ya.


What is

 ls /sys/firmware/efi/efivars


What is the output of

efibootmgr -v

Have you tried to check the /boot/efi partition?

fsck.vfat /dev/sda1

You need to do fsck in livecd at best.

hi, thanks for your help.

just for the records: sdb is not a removable drive, it is an ssd internal drive and has always been attached to the machine.


> /dev/sda1: UUID="2D77-D903" TYPE="vfat" PARTUUID="f861b35c-0453-4643-8df2-dbcdfa649197"
> /dev/sda2: UUID="9933d9d4-ca6d-4f76-a7f8-e36896dda4e8" TYPE="swap" PARTUUID="7e514054-1d46-4912-97f8-0a36e540159e"
> /dev/sda3: UUID="125a0939-1778-4028-ab0e-a2ecf173578a" TYPE="ext4" PARTUUID="fe6d2d17-ba94-45af-aac9-3a2aa67033cb"
> /dev/sda4: LABEL="DATA" UUID="0072B90B72B90686" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="43313550-6359-4d38-86ad-f358081ae409"
> /dev/sdb1: LABEL="SYSTEM" UUID="2C5C-5F7E" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="f5386b55-c116-4920-a960-ab1b22949910"
> /dev/sdb3: LABEL="OS" UUID="541C5FC61C5FA1B2" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="cb5395f1-457e-42bd-8ea6-9de92b3ad95e"
> /dev/sdb4: LABEL="RECOVERY" UUID="92F86851F868361F" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="f08989c0-e6ba-4aea-aece-a07f6b41ff69"
> /dev/sdc: UUID="33cdae49-3083-4028-9be0-1c0e597c297a" TYPE="ext4"
> /dev/sdb2: PARTLABEL="Microsoft reserved partition" PARTUUID="a0e77606-2756-4348-9f34-a9f62f8d94dd"

so I guess that I will have to create a new $esp partition, right?

ls /sys/firmware/efi/efivars


efibootmgr -v

    BootCurrent: 0002
    Timeout: 1 seconds
    BootOrder: 0001,0002,0005,0006,0007,0000
    Boot0000* Windows Boot Manager
    Boot0001* Windows Boot Manager
    Boot0002* Manjaro
    Boot0005* UEFI OS
    Boot0006* ubuntu
    Boot0007* debian

fsck.vfat /dev/sda1

fsck.fat 4.0 (2016-05-06)
Checking we can access the last sector of the filesystem
Boot sector contents:
System ID "mkfs.fat"
Media byte 0xf8 (hard disk)
       512 bytes per logical sector
      4096 bytes per cluster
        32 reserved sectors
First FAT starts at byte 16384 (sector 32)
         2 FATs, 32 bit entries
   1024000 bytes per FAT (= 2000 sectors)
Root directory start at cluster 2 (arbitrary size)
Data area starts at byte 2064384 (sector 4032)
    255496 data clusters (1046511616 bytes)
63 sectors/track, 255 heads
      2048 hidden sectors
   2048000 sectors total
Checking for unused clusters.
Checking free cluster summary.
/dev/sda1: 5 files, 64/255496 clusters

one more thing. when I tried to mount a usb stick formatted in windows a while ago I've got the same error message I get when the system tries to mount the efi partition at boot: unknown file system type 'vfat'
is this kind of error compatible with the problems in the efi partition?

Yes. Looking at your disk (parted -l) your sda1 $esp is more than 1 GB (in fat32). That's a no no.
That may be the reason you have this problem.

This is my suggestion.
Take off from sda1 a partition to make for a new $esp. Make the size of that new partition only 150 MB. Format it as fat32, Flag it as /boot/efi.
Then change Manjaro fstab uuid entry to the newly created $esp.
Boot up and perform the grub-install command as per my above post.

Good luck.

KIV (put this aside, let's ignore this for now) this for a while. I'll go back after this thingy is done.

let me just resume to check if I understood well (before doing a mistake, I'm quite a newbie).

  • delete the current $esp partition sda1
  • create a new $esp partition in the resulting empty space in sda, but this time create a 150 MB $esp partition
  • format it as fat32, mount point /boot/efi, flags boot,esp
  • change the Manjaro fstab uuid entry to match the uuid of the new $esp partition
  • reboot the system (right?) and launch the grub-install command you suggested

can you please confirm the above steps?
thanks again,


There is nothing wrong with the steps you outlined.
But personally I do not like to delete any partition (in the past, it made the numbering sda1...sda5 screwy).
I therefore suggest you resize sda1 from the right (meaning next to sda2) so making a space (about 150 MB, don't have to be exact) between sda1 and sda2.
Then from this empty space, create a new partition. Format it to fat32. Flag it /boot/efi.
From another OS or from livecd, change Manjaro /etc/fstab to match the new partition uuid.

Reboot. and recheck "findmnt /boot/efi" before doing the grub-install command.

Confirmed. You're alright. Cheers.

thanks... I did a mistake, I deleted the old sda1 partition instead of resizing it as you suggested.
now I can not boot in manjaro anymore, the machine's bios does not list the manjaro partition among the possible boot options... sorry, I started to play with parted before reading your last message. :sob:

No. let's do this. It can be fixed. Don't go away. I will post another post after I rechecked for any errors.
Wait for it.

1 Like

thanks! I would like to understand how to do it!
I can boot from a manjaro live image on a usb stick if needed.
thanks again!

this is what I did:

  • started parted
  • deleted sda1
  • created a new sda1 of 150 MB
  • added boot and efi flags
  • exited gparted
  • formatted sda1 with fat32
  • updated /etc/fstab using nano (I did not actually understand why you suggested to use a livecd image to do this, it is necessary?)
  • rebooted

what happened is that the manjaro boot option disappeared from the boot menu (I don't know how the menu works).


UEFI Boot menu reads ESP. Now you have it new and formatted, so no menu entries. You need to install bootloader to be able to boot.
Also, recommended way is to use PARTUUID with GPT and not UUID.

Forum kindly sponsored by