Windows 8.1 removes Opensuse 13.1 grub 2 Boot loader

I have laptop with installed windows 8.1 Operating System. I installed OpenSuse 13.1 as dual boot with windows 8.1 and it’s perfectly detected the Windows in grub2 boot loader … I had both windows 8.1 and OpenSuse 13.1 in the boot menu…But when i login into windows and try to come back to linux, the grub boot loader is gone and it’s loading into windows 8.1.

In order to bring back grub bootloader, I did a dummy upgrade with the USB installation, then the bootloader comes. Why opensuse installation disc doesn’t have repair option to resolve the Boot Issue. Even the recovery mode is not providing GUI option to recovery the boot loader.

Please provide me a solution.

Let me describe what happens on my Dell Inspiron 660 desktop.

  1. I install opensuse. It works fine, reboots fine, etc.
  2. Using the grub menu entry, I boot into windows.
  3. Suddenly, there is no way of booting into opensuse.

I cannot be sure that you have the same problem, though it sounds as if you do. My blog post Notes on UEFI, Windows and linux discusses how to deal with that situation.

In short, it isn’t Windows doing that. It’s your BIOS. Or, at least, it was my BIOS. The BIOS does not seem to like having two NVRAM entries for the same disk. So when I installed opensuse, it deleted the Windows entry. That, by itself is not a problem, since I could use the grub menu to take me to Windows. But then Windows notices that its boot entry has gone, and puts it back. On the next boot, the BIOS deletes the opensuse entry.

The workaround is to trick Windows into calling the grub bootloader rather than its own.

On Sun 19 Jan 2014 07:36:02 PM CST, nrickert wrote:

The workaround is to trick Windows into calling the grub bootloader
rather than its own.

Hi
On my HP, I can select the efi file to boot from, so on the rare
occasion windows gets booted, I do a full shutdown, then press the F9
key to get to the boot menu, then select the openSUSE efi file…


Cheers Malcolm °¿° SUSE Knowledge Partner (Linux Counter #276890)
openSUSE 13.1 (Bottle) (x86_64) GNOME 3.10.2 Kernel 3.11.6-4-desktop
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

Hi,

sounds as if I have exactly the same problem on my Sony VAIO SVT 1112 C5E.
Thank you for your Notes on UEFI, Windows and linux which helped me to understand what’s going on. As for the solution, I am not sure I understood everything because there are so many scenarios in your notes (with two harddrives and three OS and all combinations covered). So could you please confirm what I understood for the simple case described here (one harddrive partitioned without any tricks, one windows 8.1, one opensuse):

(1) There’s only one permanent solution and its called "(c) BCDEDIT tricks". All other solutions get destroyed whenever windows is booted. Correct?

(2) In order to use that solution you have to know the path to the grub boat loader which in your case is \EFI\opensuse_alt\shim.efi. However, how could I find out the corresponding path for my installation (or sramesh for their)?

As a follow up question: Isn’t there a way of adding an opensuse entry to the windows boot loader? (I used the setup.exe on the openSuse DVD which added an entry pointing to the openSuse installer that was kept there fine). I don’t actually need a grub if the windows boot loader works well…

Thanks again for your clear explanations in the Notes on UEFI…!

UEFI is new and not all computer makers are installing complete or good EFI implementations. Some Systems seemed determined to boot only windows. There is a special EFI boot partition on the hard drive. This the case in only a small number not all new computers. That is where you will find a FAT files system with the files mentioned. Exploring that partition can help you understand the EFI boot. Each OS that is installed will have their own sub-directory. In that sub-directory the files need to continue the boot are stored. In this case we are tricking the system by copying and renaming the openSUSE files to the Windows boot sub-directory. Thus when the bad UEFI code insists on booting Windows it actually is booting openSUSE.

Hope that helps

If you use


# efibootmgr -v

shortly after installing opensuse, and before things have been broken, you can see what the path is.

For a normal opensuse install, it will be “\EFI\opensuse\shim.efi” if secure-boot support was configured during the install. Otherwise it will be “\EFI\opensuse\grubx64.efi”.

I missed this question when I first read your post.

I have an opensuse entry in the Windows boot manager on my laptop, and on an older Vista desktop. But those are for MBR booting. I’ve spent some time searching the Internet to find out how to do the same with UEFI, but I have not found anything. If there is a way of doing this, then Microsoft does not seem to have documented it.

They do document how to call bootsector loaders (used in MBR booting). They document how to call Windows loaders from older Windows versions. I could not find anything on calling efi loaders.

Hi,

meanwhile, my openSuse/Windows8.1 dual boot system is running (and booting) fine. Thank you all for your help! :slight_smile:
I used the BCDEDIT trick of nrickert as described above and I’ve booted about 10 times in windows and maybe 20 in linux so far and everything still works.

Earlier I had experimented with the windows boot loader but didn’t succed. Using a little windows program called EasyBCD I was able to add (but not delete) entries to the boot loader list. However, the entries for linux always resulted in a failed boot. Maybe I wasn’t able to select the right options in EasyBCD or maybe it is because EasyBCD was developed for Windows 7 and not yet updated to Windows 8.

Anyway, everything is fine for me now, so thanks again!

There’s one caution on that.

There has been one update to Windows 8.1 that failed until I removed that BCDEDIT change. After removing that change, the update worked. And then I could use BCDEDIT to redo that change. So you might want to keep some handy notes on your Windows system on how to make/remove that change.

As best I can tell, Windows does not provide any support for booting non-Windows systems in a UEFI environment. It only supports that in a legacy MBR setup. EasyBCD is limited by the capabilities of Windows.