Ask
29
@dualboot_dan ·

Dual boot menu has vanished and there is no Linux entry left in the firmware boot options — the install is still on the disk

I had Windows and a Linux install side by side on the same laptop, choosing between them from a boot menu at startup. That menu is gone. The machine now boots straight into Windows.

I went into the firmware setup to pick the Linux entry manually and it is not in the boot options list at all. Only the Windows entry is there.

The Linux partition is definitely still on the disk — I can see it from Windows disk management, with the right size, not empty.

So the operating system is there and the machine has forgotten how to start it. What actually removes a firmware boot entry, and how do I put it back without reinstalling?

3 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @esp_archaeologist · 4h ago

    Nothing is lost. The operating system is intact and so, almost certainly, are its boot files — what you have lost is the firmware boot entry, which is a small record in the motherboard's NVRAM that says "there is a bootloader at this path on this disk". Recreating it takes about ten minutes from a live USB.

    What removes it. In rough order of likelihood:

    • A firmware update. Updating the BIOS or UEFI firmware very often clears NVRAM, which wipes every custom boot entry. Windows recreates its own entry automatically on the next boot; Linux does not, because nothing is running to do it. This is by far the most common cause of "it worked for a year and then one day it did not".
    • A CMOS reset or a flat backup battery. Same effect, same reason.
    • A Windows feature update. Less common than the internet claims, but it does happen, and Windows will happily set itself first in the boot order even when it does not delete anything.
    • Fast Startup. This one does not delete the entry, but it produces a machine that appears to boot straight to Windows regardless of what you choose, because Windows was never actually shut down — it hibernated. Rule it out early because it is the cheapest to check.

    Getting it back.

    1. Turn off Fast Startup in Windows first, before anything else. If that was the cause you are done. If it was not, you still want it off, because with it on the Windows partition is left in a hibernated state and anything else touching the disk is risky.
    2. Boot a live USB of the same distribution family. You may need to disable Secure Boot temporarily to do it — note whether you did, because you will want to consider turning it back on afterwards.
    3. Mount your existing root partition, mount the EFI system partition at its usual place inside that, bind-mount the pseudo-filesystems, and chroot in.
    4. Reinstall the bootloader to the EFI system partition and regenerate its configuration.
    5. Reboot into the firmware and confirm the entry now exists, and that it is above Windows in the boot order.

    The step people get wrong is number three, specifically which EFI system partition. On a machine that has had more than one install, or that shipped with a vendor recovery partition, there can be more than one, and installing the bootloader into the wrong one produces a bootloader nothing ever reads. Identify it by looking for the small FAT32 partition flagged as the ESP that already contains the Windows boot files — the two operating systems share one ESP on a normal dual-boot setup, and that shared one is the right target.

    If the entry keeps disappearing after every reboot, that is a different and rarer fault: some firmware aggressively prunes entries it does not recognise. The workaround is to place the bootloader at the default fallback path on the ESP, which the firmware will boot without needing an entry at all.

    30
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @firmware_first · 4h ago

    Two firmware settings to check while you are in there, because either can produce this exact symptom with the boot files completely intact.

    Secure Boot. If it was on and something changed — a firmware update, a kernel update on the Linux side with an unsigned module, a reset of the secure boot keys — the firmware will silently refuse to launch a bootloader it cannot verify. Some firmware then hides the entry rather than showing you an error, which is exactly what you are describing.

    Storage mode. Rarer on an existing install than on a new one, but if the SATA or NVMe controller mode got reset to a RAID or acceleration mode, Linux may no longer see the disk at all while Windows continues fine because it has the vendor driver. Confirm it is in the mode it was installed under.

    Both are two minutes to check and both save you a chroot session.

    27
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @dualboot_dan · 4h ago

    Once you have it back, there is a tool that lets you view and edit firmware boot entries from a running Linux system. Worth installing and learning to read the output of, because next time you can see immediately whether the entry exists and where it points, instead of inferring it from the firmware's menu.

    It also lets you set the boot order from the OS, which is much less painful than the firmware setup screen on most laptops.

    Be careful with it though — it writes to NVRAM, and a small number of laptops have historically handled aggressive NVRAM writes badly. Reading is entirely safe; think before you delete entries in bulk.

    21
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report