Title. I dual-boot Windows and Linux. I always saw people making “WINDOWS DELETED MY LINUX BOOTLOADER OMGOMG” posts and it had never happened to me. Now, the opposite has happened. I switched from EndeavourOS to OpenSUSE and now my windows install is no longer selectable on boot.

I keep Windows in a separate drive entirely, so instead of using grub, I use the EFI’s boot-select menu thingamafuck (look I don’t know jargon okay?) to choose Windows when I need it.

Well today it’s not there. Only the Linux entries show up. The Windows partition itself seems to be in good order, like, I can access it from within Linux no problem.

But yeah it doesn’t show up on my EFI selector thingie. I imagine I could get the EFI Shell going, but I have no idea how to use THAT either.

  • Nate
    link
    fedilink
    English
    arrow-up
    2
    ·
    8 months ago

    Can you still boot into Windows without GRUB? Like through your bios menu. I’ve had it where a Linux installer will eat the EFI files for Windows.

    If you need to fix your Windows EFI partition, and have a Windows install disk, boot it up and press Shift + F10 to open a command prompt (you may need Fn as well if youre on a laptop)

    Run diskpart and list volume

    You should have your Windows drive (should be labeled C, but can be mounted elsewhere in recovery. Keep in mind the letter it’s mounted on) You’re also going to want to look for a fat32 partition. Since windows is on a different drive, there should be two, one for Linux and one for Windows.

    Pick one with select volume x where x is the volume number, and ensure you’ve selected the right one with list disk. There should be an asterisk next to the disk containing the selected volume.

    Still in diskpart, you’re going to want to mount that to a letter, I always choose N with assign letter n

    Type exit to get out of diskpart

    Next you’re going to want to remove existing EFI files. Type N: to change to the N disk, and rmdir EFI\ /s (I’m doing this from memory, I believe this is the correct command to do so)

    To regenerate the files, you’re going to want to run bcdboot C:\Windows /s N: /f ALL where C:\Windows is your Windows folder, N: is your efi partition, and ALL is the boot type (this installs both legacy and EFI files, you can set this to just EFI and be fine)

    Windows should be good to boot, I’d boot it once to test. Then go into Linux & grub-install and update-grub. It should be able to find it on any installed drive, even unmounted. Check the output and you should see if it found it.

    • Count Regal Inkwell@pawb.socialOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      8 months ago

      I cannot get into Windows in any way. I CAN get into Linux with no problem though. Anyway.

      (as I said in my post–) My intention is to not use grub at all and to choose windows through my bios menu when I do need it. Which is what I had been doing for the past year.

      It’s just that its entry in the bios menu has disappeared.

      • Nate
        link
        fedilink
        English
        arrow-up
        1
        ·
        8 months ago

        In that case, these steps should work, but you can safely ignore the grub steps at the end. (I totally misread the NOT wanting to use grub part lol)

        • Count Regal Inkwell@pawb.socialOP
          link
          fedilink
          arrow-up
          2
          ·
          8 months ago

          I managed to revive windows but now Linux doesn’t show up, lmao

          But I think I know what to do about that. Give me like 10 and I’ll report back.

          • Nate
            link
            fedilink
            English
            arrow-up
            2
            ·
            8 months ago

            Your Linux install may be using the same EFI partition as your Windows disk, even though the filesystem is on another drive. Most installers prefer existing EFI partitions. You may have to modify your fstab file to use an EFI partition on your Linux drive instead, in which case they should remain separate and not mess with each other again.