GRUB error: file '/grub/i386-pc/normal.mod' not found

Hello everyone, happy manjaro user with a problem…

I would like to apologize in advance for my english and lack of deep technical knowledge.

The system is an old laptop lenovo t440p with ext4, MBR partitions. No dual boot or windows on it.

Long story short is that I wanted to change my 5.4 LTS kernel to 5.10 LTS. I installed it via manjaro settings manager couple days ago, decide to change to 5.10 yesterday, but on few boots I wasnt abble to get to GRUB menu to load the new kernel, it booted directly to the welcoming logo with user and password authentication. So I rebooted again and search how to access GRUB.
Find few topics wich suggested to edit /etc/default/grub and set…

GRUB_TIMEOUT_STYLE=menu

Then…

sudo update-grub

After edit and update I reboot to try one more time, again without success. Took a 20-30 minutes break and when I came back noticed a prompt for updates. Let the system update via “pamac update”, and at the end i got an error which cant remember quite well but states something like “there is not enough space for…” and it rejected the update. I’ve been through that path with corrupted/broken updates and try to revert to another timeshift snapshot. On reboot I ended within grub rescue black screen ,with error: file ‘/grub/i386-pc/normal.mod’ not found. Most ot the people who bump on the same problem seems to run dual boot or UEFI.

  1. First attempt: I try is to exit grub rescue and access grub.

error: file ‘/grub/i386-pc/normal.mod’ not found.
Entering rescue mode…
grub rescue> set
cmdpath=(hd0)
prefix=(hd0,msdos1)/grub
root=hd0,msdos1
grub rescue> ls
(hd0) (hd0,msdos4) (hd0,msdos3) (hd0,msdos2) (hd0,msdos1)
grub rescue> ls (hd0,msdos3)/
./ …/ lost+found/ boot/ dev/ home/ …
grub rescue> set root=(hd0,msdos3)
grub rescue> set prefix=(hd0,msdos3)/boot/grub
grub rescue>insmod normal
error: file ‘/grub/i386-pc/normal.mod’ not found.
grub rescue>

  1. Second attempt: following manjaro wiki GRUB/Restore the GRUB Bootloader

sudo fdisk -l /dev/sda
Disk /dev/sda: 119.25 GiB, 128035676160 bytes, 250069680 sectors
Disk model: SAMSUNG MZ7TE128
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 206847 204800 100M 83 Linux
/dev/sda2 206848 4302847 4096000 2G 82 Linux swap / Solaris
/dev/sda3 4302848 75982847 71680000 34.2G 83 Linux
/dev/sda4 75982848 250068991 174086144 83G 83 Linux
[manjaro@manjaro ~]$ su
[manjaro manjaro]# manjaro-chroot -a
==> Mounting (ManjaroLinux) [/dev/sda3]
→ mount: [/mnt]
→ mount: [/mnt/boot]
→ mount: [/mnt/home]
[manjaro /]# pacman -Syu grub
pacman: error while loading shared libraries: libgpgme.so.11: cannot open shared object file: No such file or directory
[manjaro /]# exit
exit
→ umount: [/mnt/home]
→ umount: [/mnt/boot]
→ umount: [/mnt]
[manjaro manjaro]# mount /dev/sda3 /mnt
[manjaro manjaro]# mount /dev/sda1 /mnt/boot
[manjaro manjaro]# manjaro-chroot /mnt /bin/bash
[manjaro /]# pacman -Syu grub
pacman: error while loading shared libraries: libgpgme.so.11: cannot open shared object file: No such file or directory
[manjaro /]#

  1. Third attempt: Most desperate one is to try to revert another timeshift snapshot from live usb.

rsync: write failed on “/mnt/timeshift/restore/boot/initramfs-5.4-x86_64-fallback.img”: No space left on device (28)
rsync error: error in file IO (code 11) at receiver.c(374) [receiver=3.1.3]

Updated /etc/fstab on target device: /mnt/timeshift/restore/etc/fstab
Updated /etc/crypttab on target device: /mnt/timeshift/restore/etc/crypttab
Parsing log file…
Archiving: /run/media/manjaro/d2473e95-a267-432d-8873-5ae3c5498f3a/timeshift/snapshots/2021-07-15_16-00-01/rsync-log-restore

Re-installing GRUB2 bootloader…
Installing for i386-pc platform.
grub-install: error: cannot copy /usr/share/locale/vi/LC_MESSAGES/grub.mo' to /boot/grub/locale/vi.mo’: No space left on device.

Updating GRUB menu…
Generating grub configuration file …
udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory


udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
udevadm: error while loading shared libraries: libcap.so.2: cannot open shared object file: No such file or directory
done

Synching file systems…

Cleaning up…

Restore completed

Checking file systems for errors…
fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
/dev/sda3 is mounted.
e2fsck: Cannot continue, aborting.

fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
/dev/sda1 is mounted.
e2fsck: Cannot continue, aborting.

fsck from util-linux 2.34
e2fsck 1.45.4 (23-Sep-2019)
/dev/sda4 is mounted.
e2fsck: Cannot continue, aborting.

After the first line stating: No space left on device (28)
I checked gparted and it looks like my /dev/sda1 which is /boot is 100mb and 98mb of them in use. If I remember correctly the articles I read when installing manjaro before few years ago for less than 2tb, use legacy and mbr partition, the advised size for /boot was 100mb.

Questions that run around my mind are:
Is it possible grub-update to set it for UEFI?
Is there a way to allocate more mb to /boot when in repair mode?
Can I transfer some timeshift snapshots and load them on new install?

No, that was adviced from “some” users for the ESP (/boot/efi) for an UEFI system. Even for the /boot/efi partition 260 MiB should be minimum these days.

For a /boot partition, officially it should be at least 200 MiB, I would rather recommend minimum 512 MiB as it holds the kernel files which could be large.

Reference:
https://wiki.archlinux.org/title/Partitioning#How_big_should_my_partitions_be.3F

I hope you are aware that for a BIOS install no /boot partition is needed.

1 Like

To be honest, I had my doubts about the partitioning when installing it, but give it a /boot anyway… Since its UEFI, to avoid problems I set it with prior to legacy boot first, and Im happy for a lite day to day use, travel buddy and not worrying that someone may steal it.

I’m gonna reinstall it, by following the setup guide this time and maybe trying GPT.

Much appreciated and many thanks for the advice and clearing up some misunderstandings! All of you doing a wonderful job!!!

1 Like

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.