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.
https://www.google.com/search?q=boot-efi.mount%3A+Mount+process+exited%2C+code%3Dexited+status%3D32+site:bbs.archlinux.org
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.

@mauman
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
findmnt
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
http://www.eightforums.com/tutorials/6320-fast-startup-turn-off-windows-8-a.html
and here for Windows 10,
http://www.tenforums.com/tutorials/4189-fast-startup-turn-off-windows-10-a.html
before you install Linux on any computer that uses Windows 8 or above.

https://wiki.archlinux.org/index.php/Dual_boot_with_Windows

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

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

uefi

findmnt

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

Right.
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.

Cheers.

What is

 ls /sys/firmware/efi/efivars

saying?

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.

blkid:

> /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

AEDID-75860b2c-f315-4ff1-9e19-029ad0129dba
AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34
ASUSSetupDefault-f1920447-7a78-4c0d-a028-ba9d003985e8
ASUSTPType-2b13785a-c6aa-4f4f-9820-6b7e2686cd17
Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0005-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0006-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0007-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
db-d719b2cb-3d3a-4596-a3bc-dad00e67656f
dbDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c
dbt-d719b2cb-3d3a-4596-a3bc-dad00e67656f
dbtDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c
dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f
dbxDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c
DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53
Ep-73dad563-8f27-42af-918f-8651eb0a93ef
EPCBIOS-c60aa7f6-e8d6-4956-8ba1-fe26298f5e87
ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
ErrOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
FPDT_Volatile-01368881-c4ad-4b1d-b631-d57a8ec8db6b
HiiDB-1b838190-4625-4ead-abc9-cd5e6af18fe0
IccAdvancedSetupDataVar-64192dca-d034-49d2-a6de-65a829eb4c74
IntUcode-eda41d22-7729-5b91-b3ee-ba619921cefa
KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c
KEKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c
MaximumTableSize-4b3082a3-80c6-4d7e-9cd0-583917265df1
MemoryOverwriteRequestControl-e20939be-32d4-41be-a150-897f85d49829
MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b
MSDMTBL-01368881-c4ad-4b1d-b631-d57a8ec8db6b
NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2
NewOptionPolicy-69ecc1be-a981-446d-8eb6-af0e53d06ce8
OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b
OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c
PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5
PcieSataModVar-5e9a565f-cdc0-413b-ad13-1fe8713ffdcd
PK-8be4df61-93ca-11d2-aa0d-00e098032b8c
PKDefault-8be4df61-93ca-11d2-aa0d-00e098032b8c
PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c
PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c
RegisterPwrBtnHook-2b13785a-c6aa-4f4f-9820-6b7e2686cd17
S3SS-4bafc2b4-02dc-4104-b236-d6f1b98d9e84
SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
Setup-80e1202e-2697-4264-9cc9-80762c3e5863
SetUpdateCountVar-81c76078-bfde-4368-9790-570914c01a65
Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c
SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
SmbiosEntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1
SmbiosScratchBuffer-4b3082a3-80c6-4d7e-9cd0-583917265df1
SmbiosV3EntryPointTable-4b3082a3-80c6-4d7e-9cd0-583917265df1
StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824
Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c
USBCHARGE_VAR-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
VendorKeys-8be4df61-93ca-11d2-aa0d-00e098032b8c
WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1

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.

thanks,
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,

Maurizio

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).

maurizio

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