Linux  ·  critical  ·  Day-to-day operations

grub rescue> — "no such partition" or "unknown filesystem"

GRUB's first stage loaded but cannot find its own modules, so it drops to a minimal shell with almost no commands.

What you see

Boot lands at a `grub rescue>` prompt. Most commands are unavailable; only ls, set, insmod and a few others work.

What is actually wrong

A partition was resized, moved or renumbered, another OS overwrote the boot sector, or /boot was on a disk that has changed device order.

Codes and articles

grub rescueno such partitionunknown filesystemerror: file '/boot/grub/i386-pc/normal.mod' not found

Fixes (2)

Boot once from the rescue prompt
grub rescue> prompt20 minuteslow riskreversible

No live media to hand. This gets you booted once; it does not repair anything permanently.

  1. List the partitions GRUB can see.

    Shell
    ls

    It prints things like (hd0) (hd0,gpt1) (hd0,gpt2). These are GRUB's names, not Linux's — gpt2 here is roughly /dev/sda2.

  2. Find which one holds /boot/grub by inspecting each in turn.

    Shell
    ls (hd0,gpt2)/boot/grub
  3. Point GRUB at it and load the modules.

    Shell
    set prefix=(hd0,gpt2)/boot/grubset root=(hd0,gpt2)insmod normalnormal
  4. The full menu should appear. Boot the system normally.

  5. Once booted, make it permanent — otherwise the next restart lands right back here.

    Shell
    sudo grub-install /dev/sdasudo update-grub

    Do not skip this. Everything above lives only in memory.

  6. On RHEL-family use the other tool name.

    Shell
    sudo grub2-install /dev/sdasudo grub2-mkconfig -o /boot/grub2/grub.cfg
Confirm it workedThe machine restarts into the normal GRUB menu.
Shell
sudo grub-install --version && lsblk -f
If you need to undo itNone — nothing on disk is changed until the grub-install step.
Reinstall GRUB from a live USB
Live USB session45 minutesmedium riskreversible

The rescue prompt route failed, or /boot itself is damaged.

  1. Boot the live USB and identify the partitions.

    Shell
    lsblk -fsudo blkid
  2. Mount the root filesystem, activating LVM first if used.

    Shell
    sudo vgchange -aysudo mount /dev/sda2 /mnt
  3. Mount /boot and, on a UEFI machine, the EFI partition.

    Shell
    sudo mount /dev/sda1 /mnt/bootsudo mount /dev/sda1 /mnt/boot/efi

    Only mount boot/efi if they are separate partitions — check the fstab of the mounted root with `cat /mnt/etc/fstab` rather than assuming.

  4. Bind the virtual filesystems and enter the installation.

    Shell
    for d in dev dev/pts proc sys run; do sudo mount --bind /$d /mnt/$d; donesudo chroot /mnt /bin/bash
  5. Reinstall the bootloader. For BIOS/MBR, target the DISK not a partition.

    Shell
    grub-install /dev/sdaupdate-grub
  6. For UEFI, install to the EFI directory instead.

    Shell
    grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntuupdate-grub
  7. Leave and unmount cleanly.

    Shell
    exitsudo umount -R /mntsudo reboot
Confirm it workedThe machine boots to the GRUB menu and into the system.
Shell
sudo efibootmgr -v
If you need to undo itReinstalling GRUB is repeatable and non-destructive to data.

Where this stops. This write-up was written and checked by hand. It says what each step changes, how to confirm it worked and how to reverse it, and anything destructive is flagged before you reach it. If it does not match what your machine is doing, search the Support Centre for the exact code or message — and when something needs a person, get in touch.