LinuxHigh

Fixing 'No boot OS found' Error in Linux: Complete Guide

This guide will help you restore Linux boot after the 'No boot OS found' error. We cover partition diagnostics, GRUB reinstallation, and UEFI/BIOS firmware configuration.

Updated at February 17, 2026
15-30 min
Medium
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 11+Fedora 35+Arch LinuxAny distro with GRUB/systemd-boot

Introduction / Why This Is Needed

The error "No boot OS found" (or "No bootable device", "Boot device not found") means the computer's firmware (UEFI/BIOS) did not detect an operating system bootloader on the disk. This is not a kernel or data corruption, but a problem with boot records (MBR, GPT, ESP) or the GRUB/systemd-boot configuration.

After completing this guide, you will:

  • Restore the functionality of the GRUB (or systemd-boot) bootloader.
  • Configure the correct boot order in UEFI/BIOS.
  • Be able to boot into your installed Linux system without reinstalling.

Requirements / Preparation

Before starting, you must:

  1. Create a bootable USB drive with any Linux distribution (Ubuntu or Fedora is recommended).
  2. Have access to another computer to create the drive if the current one won't boot.
  3. Make a backup of important data to a separate drive (just in case).
  4. Understand basic terminal commands and the use of superuser privileges (sudo).

Step 1: Booting into the Live Environment

  1. Insert the created USB drive into the computer.
  2. Reboot the computer and enter the boot menu (usually the F12, F10, Esc, or Del key — depends on the manufacturer).
  3. Select your USB drive and the "Try Ubuntu" (or "Start Fedora Live") option.
  4. Wait for the Live system desktop to load. Open a terminal (Ctrl+Alt+T).

Step 2: Determining the Boot Scheme (UEFI or BIOS)

This is a key step — commands differ for UEFI and BIOS.

ls /sys/firmware/efi
  • If the directory exists → you have UEFI. Note this down.
  • If the command returns "No such file or directory" → you have Legacy BIOS.

Step 3: Finding the Linux Partition

For UEFI:

sudo lsblk -f

Look for a partition with the FAT32 filesystem (usually /dev/sda1, /dev/nvme0n1p1) — this is the ESP (EFI System Partition). Also, find the partition with your main system (ext4/btrfs/xfs, e.g., /dev/sda2 or /dev/nvme0n1p2).

For BIOS:

sudo fdisk -l

Look for a partition with type Linux (code 83) or Linux swap (82). The GRUB bootloader will be installed to the MBR (the first disk sector, e.g., /dev/sda), but the root partition is a separate logical partition.

Example output for UEFI:

NAME   FSTYPE  LABEL   UUID                                 MOUNTPOINT
sda1   vfat    ESP     ABCD-1234                           
sda2   ext4    root    1234abcd-5678-ef90-1234-56789abcdef0 /
nvme0n1p1 vfat    ESP     DCBA-4321
nvme0n1p2 ext4    home    5678abcd-9012-3456-7890-abcdef123456

Here, the ESP is sda1 or nvme0n1p1, and the root is sda2 or nvme0n1p2.


Step 4: Mounting Partitions in the Live System

Create a mount point and mount your root partition:

sudo mkdir /mnt/root
sudo mount /dev/sda2 /mnt/root  # Replace /dev/sda2 with your root partition

For UEFI (mandatory!):

sudo mkdir /mnt/root/boot/efi
sudo mount /dev/sda1 /mnt/root/boot/efi  # Replace /dev/sda1 with your ESP

If you have a separate /boot partition (rare, but possible):

sudo mount /dev/sda3 /mnt/root/boot  # Replace with your /boot partition

If using LVM, Btrfs with subvolumes, or encryption:

Additional steps will be required (activate LVM, open LUKS). This is a topic for a separate guide.


Step 5: Reinstalling GRUB

Now we will "bind" our system to the bootloader.

For UEFI:

sudo grub-install --target=x86_64-efi --efi-directory=/mnt/root/boot/efi --boot-directory=/mnt/root/boot --recheck /dev/sda
  • --target — UEFI architecture.
  • --efi-directory — path to the mounted ESP.
  • --boot-directory — path to the /boot directory in your system.
  • /dev/sda — the physical disk, not a partition (e.g., /dev/sda, /dev/nvme).

For BIOS:

sudo grub-install --boot-directory=/mnt/root/boot /dev/sda

Expected output: Installation finished. No error reported.


Step 6: Updating the GRUB Configuration

sudo chroot /mnt/root
update-grub
  • chroot changes the root directory to your system so commands run in its context.
  • update-grub will scan for kernels and create the boot menu.

The output should include lines like:

Found linux image: /boot/vmlinuz-5.15.0-78-generic
Found initrd image: /boot/initrd.img-5.15.0-78-generic

If no kernels are found, check that /mnt/root/boot contains kernel files (vmlinuz-*) and initrd (initrd.img-*).


Step 7: Exit and Reboot

exit  # Exit chroot
sudo umount -R /mnt/root  # Recursively unmount everything
sudo reboot

Don't forget to remove the USB drive when rebooting!


Verifying the Result

  1. The system should boot into the GRUB menu and then into Linux.
  2. If a menu appears but the system doesn't boot — try selecting a different kernel version in GRUB (the "Advanced options" item).
  3. Ensure the correct boot order in UEFI/BIOS: Ubuntu (or your OS) should be above Windows Boot Manager (if present).

Possible Issues

error: no such device or grub rescue>

  • Cause: GRUB cannot find its configuration or partition.
  • Solution: Repeat steps 4-5, ensuring mount paths are correct. Verify the ESP is formatted as FAT32.

grub-install cannot find the EFI partition

  • Cause: Incorrect path to the ESP or it is not formatted as FAT32.
  • Solution: sudo mkfs.fat -F32 /dev/sda1 (caution! This erases data on the ESP). Then repeat mounting and installation.

❌ System still doesn't boot after GRUB installation

  • Cause: In UEFI, firmware may ignore the GRUB entry due to Secure Boot or an incorrect BootOrder.
  • Solution:
    1. Enter UEFI settings during boot (Del/F2).
    2. Disable Secure Boot (temporarily).
    3. In the Boot section, find the ubuntu (or your OS) entry and move it to the top.
    4. Save and exit (F10).

update-grub does not find kernels

  • Cause: The /boot (or root) partition is mounted in the wrong place or is corrupted.
  • Solution: Check that /mnt/root/boot contains vmlinuz-* files. If not — perhaps /boot is a separate partition you didn't mount.


Additional Scenarios

System uses systemd-boot (instead of GRUB)

  • For UEFI: Instead of grub-install and update-grub, ensure the loader directory exists in the ESP (/boot/efi). Configuration is in /boot/efi/loader/loader.conf. If missing — install the systemd-boot package from the Live system within chroot.

RAID or LVM on the boot partition

  • The RAID array or LVM group must be activated before mounting. Example:
    sudo vgchange -ay  # Activate all LVM groups
    sudo mount /dev/mapper/ubuntu--vg-root /mnt/root
    

System hangs at Loading... after recovery

  • Cause: Incorrect kernel parameters (e.g., nomodeset for NVIDIA).
  • Solution: In the GRUB menu, press e to edit the boot entry. Add nomodeset after quiet splash. Press Ctrl+X or F10 to boot. If it works, make the change permanent:
    sudo nano /etc/default/grub
    
    Add nomodeset to the GRUB_CMDLINE_LINUX_DEFAULT line. Then run sudo update-grub.

Final Recommendations

  1. After a successful boot, update your system: sudo apt update && sudo apt upgrade (for Debian/Ubuntu) or sudo dnf upgrade (for Fedora).
  2. If you have dual-boot with Windows, run bcdedit in Windows or use efibootmgr from Linux to ensure Windows Boot Manager doesn't overwrite the bootloader during updates.
  3. For prevention, regularly back up the ESP (FAT32 partition) and /boot.

F.A.Q.

Can I fix 'No boot OS found' without a Live USB?
Will this cause data loss?
Why does this happen after a kernel update?
Does this work on virtual machines?

Hints

Prepare Live USB and boot from it
Determine boot type (UEFI/BIOS)
Identify the Linux partition
Mount partitions
Reinstall GRUB
Verify bootloader configuration
FixPedia

Free encyclopedia for fixing errors. Step-by-step guides for Windows, Linux, macOS and more.

© 2026 FixPedia. All materials are available for free.

Made with for the community