What the GRUB "unknown filesystem" Error Means
When booting Linux, you see the message error: unknown filesystem or end up at the grub rescue> prompt? This means GRUB (Grand Unified Bootloader) cannot recognize the file system type on the partition where its modules, the grub.cfg configuration file, or the kernel image are stored. As a result, the system cannot proceed past the bootloader stage.
The error typically appears immediately after BIOS/UEFI, before the Linux kernel starts loading. The full text may vary depending on the GRUB version, but the essence is the same: the bootloader encountered a partition it cannot read.
Common Causes
The unknown filesystem error occurs due to several specific reasons:
- File system corruption on the
/bootpartition — if the partition containing bootloader files (e.g.,/boot) has errors, GRUB may fail to recognize it. - Incorrect file system type in GRUB configuration — an incorrect type is specified in
grub.cfgor module settings (e.g.,ext2instead ofext4orbtrfs). - Missing GRUB module for file system support — if you use a less common file system (Btrfs, ZFS, exFAT), the corresponding module may not be loaded or installed.
- The
/bootpartition is not mounted or is mounted incorrectly — particularly relevant for systems with a separate/bootpartition. - File system superblock corruption — critical damage to the file system structure that prevents GRUB from reading metadata.
- Using a file system not supported by GRUB by default — for example, NTFS or exFAT without additional modules.
Solutions
Method 1: Quick Fix via grub rescue
If you're already at the grub rescue> prompt, you can manually boot into the system to fix the configuration later.
- At the
grub rescue>prompt, runlsto see the list of partitions. GRUB labels them as(hd0),(hd0,msdos1),(hd0,gpt1), etc. - Find the partition containing
/bootor kernel files (usuallyvmlinuzandinitrd). To check, usels (hd0,1)/to view its contents. - Set the correct partition as GRUB's root:
Replaceset root=(hd0,1)(hd0,1)with your actual partition. - Load the normal menu module:
insmod normal - Switch to the normal GRUB menu:
normal - Now select the appropriate menu entry and boot into the system.
After successfully booting, you must fix the GRUB configuration to prevent the issue from recurring. Reinstalling GRUB or updating the configuration usually helps (see Method 2).
⚠️ Important: If the error returns after a reboot, the problem lies in the configuration or file system, not temporary settings. Proceed to the next methods.
Method 2: Recovery Using a Live USB
This is the most reliable method if grub rescue doesn't work or you cannot boot at all.
- Boot from a bootable medium (Live USB/DVD) of any Linux distribution.
- Open a terminal.
- Identify partitions using
lsblkorfdisk -l. Find your root partition (e.g.,/dev/sda2) and the/bootpartition (if separate, e.g.,/dev/sda1). - Mount the root partition:
If you have a separatesudo mount /dev/sda2 /mnt/boot:sudo mount /dev/sda1 /mnt/boot - Mount system virtual file systems for chroot:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys - If using UEFI, mount the ESP (EFI System Partition):
sudo mount /dev/sda1 /mnt/boot/efi # path may vary - Enter the chroot environment:
sudo chroot /mnt - Reinstall GRUB to the disk (not the partition!). For BIOS:
For UEFI:grub-install /dev/sdagrub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB - Update the GRUB configuration:
This command automatically detects the kernel and generates the correctupdate-grubgrub.cfg. - Exit chroot and reboot:
exit sudo reboot
Method 3: Checking and Repairing the File System
If the issue is file system corruption, you need to run fsck.
- Boot from a Live USB (as in Method 2).
- Before mounting the
/boot(or root, if/bootis inside it) partition, run a check:
For ext-based file systems, addsudo fsck -y /dev/sda1 # replace with your /boot partition-fto force a check. - If
fsckfound and fixed errors, try mounting the partition again and reinstalling GRUB (Method 2). - For Btrfs or ZFS file systems, use their native utilities (
btrfs check,zpool scrub).
💡 Tip: Only run
fsckon unmounted partitions. Otherwise, further corruption may occur.
Method 4: Updating the GRUB Configuration
Sometimes grub.cfg is outdated or contains errors.
- Boot into the system (via
grub rescueor Live USB with chroot). - If using chroot, ensure the partition is mounted.
- Regenerate the configuration:
Or, ifupdate-grubupdate-grubis unavailable:grub-mkconfig -o /boot/grub/grub.cfg - Verify that
grub.cfgcorrectly specifies paths to the kernel and initrd. Open the file and locate thelinuxandinitrdlines. - If you use a non-standard file system, ensure the necessary modules are loaded at the start of
grub.cfg(e.g.,insmod btrfs).
Method 5: Support for Specific File Systems
If you use Btrfs, ZFS, exFAT, or NTFS for /boot, GRUB may lack the necessary modules.
- Install additional packages:
- For Btrfs:
sudo apt install grub-btrfs(Debian/Ubuntu) orsudo pacman -S grub-btrfs(Arch). - For ZFS:
sudo apt install grub-zfs(if available) or configure manually. - For exFAT/NTFS: install
grub-ntfsor build GRUB with support.
- For Btrfs:
- After installation, rerun
update-grub. - Manually add module loading in
/etc/grub.d/40_customor the main config if not added automatically.
Prevention
To avoid the unknown filesystem error in the future:
- Use file systems supported by GRUB for the
/bootpartition. ext2, ext3, and ext4 are recommended. Avoid NTFS/exFAT for/boot. - Do not edit
grub.cfgmanually. Instead, configure parameters via/etc/default/gruband scripts in/etc/grub.d/, then runupdate-grub. - Keep GRUB updated alongside your system:
sudo apt upgrade grubor equivalent. - Back up your configuration before making changes:
sudo cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup - Avoid interrupting a GRUB update (e.g., by cutting power).
- For UEFI systems, ensure the EFI System Partition is formatted as FAT32 and mounted correctly.