💥 How I Fixed Pop!_OS Booting into Emergency Mode
Recently, my Pop!_OS system dropped into emergency mode on boot. The error messages weren’t very friendly — BPF: Invalid name
, device-mapper: crypt: unknown target type, and FAT-fs: IO charset iso8859-1 not found
— and I couldn’t use apt, dpkg, or even remount the root filesystem as read-write. Here's how I recovered the system step-by-step.
🧯 Symptoms
On boot, I saw these messages:
FAT-fs: IO charset iso8859-1 not found
BPF: Invalid name
Emergency shell prompt appeared (Press Enter for maintenance or Ctrl+D to continue)
Neither apt nor dpkg worked, and even update-initramfs failed with:
Could not find block device
🛠️ Step-by-Step Recovery
- Check Disk Visibility
In emergency mode, I checked if the system recognized the disk:
fdisk -l
blkid
My root partition showed up as something like /dev/nvme0n1p3
.
- Unlock the Encrypted Volume
I realized the device was LUKS-encrypted but hadn't been unlocked properly. I did:
cryptsetup luksOpen /dev/nvme0n1p3 cryptroot
Then verified the unlocked volume:
lsblk
- Mount the Root Filesystem
With the encrypted device mapped, I mounted it:
mount /dev/mapper/cryptroot /mnt
And prepared a chroot environment:
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
- Chroot into the System
I switched into the real root environment:
chroot /mnt
- Fix Initramfs and GRUB
Inside the chroot, I rebuilt the initramfs and reconfigured the bootloader:
update-grub
- Check
/etc/fstab
I double-checked that/etc/fstab
had the correct UUID for/
, matching the output from blkid.
Example entry:
UUID=XXXX-XXXX / ext4 defaults 0 1
- Reboot
After exiting the chroot and unmounting:
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
reboot
And just like that — Pop!_OS booted normally again.
✅ Lessons Learned
If you see device-mapper: crypt: unknown target type, it’s usually a missing dm-crypt module or a failure to unlock LUKS.
Always have a Live USB handy — it’s the easiest way to recover from serious boot failures.
Familiarity with chroot can save you from a full reinstall.
##🧃 Bonus Tip
To avoid charset issues like:
FAT-fs: IO charset iso8859-1 not found
Update your EFI mount options in /etc/fstab to use UTF-8:
fstab
Copy
UUID=XXXX-XXXX /boot/efi vfat defaults,iocharset=utf8 0 2