16.04 - stuck in emergency mode - FAT-fs (nvme0n1p1): IO charset iso8859-1 not found

My lenovo t470s laptop, running ubuntu 16.04 boots me into emergency mode. Things were ok yesterday.

Details...

Running mount /boot/efi, yields FAT-fs (nvme0n1p1): IO charset iso8859-1 not found and Mount: wrong fs type, bad option, bad superblock on /dev/nvme0n1p1, missing codepage or helper program or other error

Running systemctl —failed, tells me that boot-efi.mount and systemd-modules-load.service have failed

Kernel is: 4.10.0-33generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 GNU/Linux`

Errors (and select warnings) found with jounralctl -xb:

  • Could not open moddep file: ‘lib/modules/4.10.0-33-generic/modules.dep.bin’

  • Failed to lookup alias ‘lp’: Function not implemented (This repeats 2 more times with a couple of variations)

  • dns-clean.service: Job dis-clean.service/start failed with result ‘dependency’

  • local-fs.target: Job local-fs.target/start failed with result ‘dependency’

  • FAT-fs (nvme0np1): IO charset iso8859-1 not found

  • boot-eft.mount: Mount process exited, code=exited status=32 Failed to mount /boot/efi

It's possible some updates installed yesterday, but unfortunately I don't recall what they were.

I'm unclear how to debug/fix things to get them back to a runnable state. Any help is appreciated!

And of course, let me know what else I can provide to help troubleshoot.


Solution 1:

Executing the following command in recovery mode solved the problem for me:

$ depmod

Solution 2:

Fixed, I think...Thanks all who helped.

Unfortunately the exact method by which it was fixed is unclear. Due to my growing frustration and need to get things fixed, I was not atomic enough in my troubleshooting process, so it may of been one of two things, both suggested by @bodhi.zazen in comment above.

Either:

  1. From recovery mode, running the modprobe commands here: https://askubuntu.com/a/571644/699673
  2. Booting into a previous version of the kernel (from recovery mode, I selected an earlier version of the kernel from the list of options).

I performed these two operations in succession, so it is unclear which fixed things.

I have updated and rebooted several times thus far. If anyone can suggest further checks to run to confirm stability, that would be appreciated.

Solution 3:

I had the same issue with a Lenovo T480s and Mint 19.2 (built on Ubuntu 18.04).

$ modprobe nls_iso8859-1
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.15.0-66-generic/modules.dep.bin'
modprobe: Module nls_iso8859-1 not found in directory /lib/modules/4.15.0-66-generic

As suggested in this answer, running:

$ depmod

in recovery mode, then rebooting fixed the problem for me.