Linux GRUB Error File Not Found — What It Means & How to Fix It
About Linux GRUB Error File Not Found
Fix GRUB bootloader 'file not found' error preventing Linux from booting when the kernel or initramfs image cannot be located. This guide covers everything you need to know about this topic, including common causes, step-by-step solutions, and answers to frequently asked questions.
Here are the key things to understand: GRUB 'file not found' means the bootloader cannot locate the specified kernel (vmlinuz) or initramfs image. This commonly occurs after kernel updates that change file names or update GRUB configuration incorrectly. Moving, resizing, or reformatting the /boot partition can break GRUB's file references. The error can also occur when the GRUB configuration references a different disk UUID than the current one. Understanding these fundamentals will help you diagnose and resolve this issue more effectively.
The most common reasons this occurs include: Kernel update removed the old kernel before updating GRUB configuration. /boot partition is on a different disk and the UUID changed after hardware changes. GRUB configuration was manually edited with incorrect file paths. Boot partition file system corruption preventing file access. Identifying the root cause is the first step toward finding the right solution.
To resolve this, follow these recommended steps: Boot from a live USB and mount the system: mount /dev/sdXn /mnt && mount /dev/sdXn /mnt/boot (if separate). Chroot into the system: mount --bind /dev /mnt/dev && mount --bind /proc /mnt/proc && chroot /mnt. Regenerate GRUB configuration: update-grub or grub2-mkconfig -o /boot/grub2/grub.cfg. Verify the kernel and initramfs exist in /boot: ls /boot/vmlinuz* /boot/initrd* or /boot/initramfs*. If these steps do not resolve the issue, consider consulting additional resources or a qualified professional.
This article is part of our Linux Error Codes collection on Error Codes Wiki. We provide comprehensive, up-to-date information to help you find solutions quickly.
Quick Answer
What if the kernel files are actually missing?
While chrooted, reinstall the kernel package: apt install --reinstall linux-image-$(uname -r) on Debian/Ubuntu, or dnf reinstall kernel on Fedora. Then regenerate GRUB config.
Overview
Fix GRUB bootloader 'file not found' error preventing Linux from booting when the kernel or initramfs image cannot be located.
Key Details
- GRUB 'file not found' means the bootloader cannot locate the specified kernel (vmlinuz) or initramfs image
- This commonly occurs after kernel updates that change file names or update GRUB configuration incorrectly
- Moving, resizing, or reformatting the /boot partition can break GRUB's file references
- The error can also occur when the GRUB configuration references a different disk UUID than the current one
Common Causes
- Kernel update removed the old kernel before updating GRUB configuration
- /boot partition is on a different disk and the UUID changed after hardware changes
- GRUB configuration was manually edited with incorrect file paths
- Boot partition file system corruption preventing file access
Steps
- 1Boot from a live USB and mount the system: mount /dev/sdXn /mnt && mount /dev/sdXn /mnt/boot (if separate)
- 2Chroot into the system: mount --bind /dev /mnt/dev && mount --bind /proc /mnt/proc && chroot /mnt
- 3Regenerate GRUB configuration: update-grub or grub2-mkconfig -o /boot/grub2/grub.cfg
- 4Verify the kernel and initramfs exist in /boot: ls /boot/vmlinuz* /boot/initrd* or /boot/initramfs*