Dual Boot with Windows 10

This Windows 10 booting is quite the quagmire… when you want to involve another device -or- OS. My problem is similar *IF *not the same as other posters. I have an:

   **HP 700-530qe**

   Came with **Windows 8.1

**

   During/after the set up I was offered **Windows 10**         and took it.  So in essence I have only had         **Windows 10** on this machine.

   I then installed **openSuSE Linux 13.2**.  Dual         boot "works" from the Linux side. In other words I can select         **Linux** -or- **Windows.**  However,         as soon as I boot back into         **Windows** it changes the boot order and puts **opensuse-secureboot**         back on the bottom and itself back on top.  Then the only         boot-up is         **Windows 10** -until- I go back into the **BIOS**         and change the boot order.


   Why is **Win10** automatically changing my boot         order and how do I stop it.  It is a PITA to have to go into the         **BIOS** and change the boot order back every time         I use **Windows 10.

**

   I also have an:

   **HP 500-277c**

   Also came with **Windows 8**... I upgraded to **8.1**

   Still has  **Windows 8.1** loaded and running.

   I also installed **openSuSE Linux 13.2** on this         machine and have a proper dual booting situation.  They are in         essence the same machine... However,          **Win8** works and **Win10**         doesn't.  Well it works... it just screws up my boot order.  It,         **Win10,** is being obstinate about who is first...         and the only.  It is NOT offering the 'other' system as an         option at boot up.  My         **Linux** does offer both.

Any ideas on how to fix this???

   -Chuck
  1. both OS MUST boot in the same mode ie both EFI or both legacy in order to chain between OS. In any case you should be able to use the EFI boot menu to chose OS (note must be set to EFI mode)

  2. Windows fast boot must be off or Windows leaves it’s partitions dirty and not mountable by Linux

Check if Fast Boot is enabled in Windows 10; if yes, try to disable it.

I cannot answer to your problem directly, but my experiences may help.

First of all, did your OS 13.2 create its own /efi-boot partition, or install GRUB2 into the Win10 boot partition?
More than likely, your installation has a second EFI boot partition, and your computer’s BIOS defaults to the Win10 boot partition.

The only way I could get my Lenovo H50-55 to multi boot is to use a second drive - an SSD in my case - and let SuSE install its EFI boot partition on it. I then set the BIOS to change the boot sequence drives so that the Linux drive is first. But as in your case, my computer kept resetting the boot drive order. I was only able to stop this by moving the Win10 drive into the “Exclude from Booting” setting.

Now, upon starting my computer, I am presented with the SuSE boot menu, and can launch OS Tumbleweed directly. I also have Linux Mint 17.3 on the drive, but it will not boot, either upon computer start up, or after restart from a Tumbleweed session. I can only boot Mint after first starting Win10, then restarting.

My guess is Windows and Tumbleweed initiate ACPI and/or other motherboard devices, while Mint cannot. It also appears that Tumbleweed politely shuts down the devices upon restart, whereas Win10 leaves these devices active.

***Thanks to all… *** -but- I have tried the various things that you all mentioned. Yes Fast Boot was disabled. No I do not have a mixed mode of booting.

Please notice that I have two machines that are ***almost ***the same… only one has Windows 8 and the other, the one I am complaining about, has Windows 10. The Win8 machine was my first encounter with UEFI. I made the mistake of presuming that the Win10 machine would be the same and possibly easier, or better. -But- it is not. The Win8 machine does NOT screw up my boot order -but- the Win10 machine does.

My original post was actually a copy of what I placed on the Microsoft Community Forum. That is the reason for the spacing. I didn’t realize that it was like that until AFTER I posted it. I have NOT heard from them yet. You guys are faster. :stuck_out_tongue: I had hopes that someone would have a fix but it looks like the ball is in Microsoft’s court. I spend most of my time in openSuSE anyway so it is not a real big deal. Just a PITA when I do visit Windows 10 and then want to come back to openSuSE and have to go thru my BIOS.

Thanks again,
-Chuck

Hello gogalthorp,
I was just re-reading this and noticed, or paid more attention to, the part I have marked in read. On the Win8 machine I get the “normal” grub menu that presents a choice of systems to boot to… -and- it doesn’t make any difference which system I am restarting from. On the Win10 machine I do NOT get the grub menu IF I am rebooting from Windows.

I have not seen an EFI boot menu. Just what do you mean must be set to EFI mode?? Thought it was… Am I missing something?? These two machines are my first encounters with UEFI. Don’t normally get down this low anywho. Just during some set ups when things like this go awry.

Thanks for your past, present and possibly future help,
-Chuck

Please post the output from:

# efibootmgr -v

Obviously, that will be the output when you are running opensuse.

The EFI boot menu is a UEFI BIOS function how you get to it is hardware dependent each manufacturer sets the hot key different. Often it is shown as on the hardware splash screen otherwise you have to dig into the hardware docs.

If you boot the openSUSE installer in legacy mode it default to install the OS in legacy mode. In legacy grub2 is installed in EFI grub2-EFI is installed. Which mode the install mode is booted depends on setting in the UEFI BIOS.

Some hardware has been reported to set default boot back to Windows. There is a work around if this indeed proves true, but should be left as a finial resort

Are you sure? I mean Fast Boot in Windows, not whatever option that may also be named “Fast Boot” in BIOS.

The requested info

Dakotah-i7:/home/ctaylor # efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,0001,0002,0006,0007,0008
Boot0000* opensuse      HD(2,200000,b4000,57c1bed6-2f4e-4c78-b5e5-4f38ce7697f0)File(\EFI\opensuse\grubx64.efi)
Boot0001* USB Floppy/CD Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0500000001)..BO
Boot0002* USB Hard Drive        Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0200000001)..BO
Boot0006* UEFI: IPv4 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,2)PCI(0,0)MAC(3464a92040ee,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0..BO
Boot0007* UEFI: IPv6 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,2)PCI(0,0)MAC(3464a92040ee,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000..BO
Boot0008  Fake Legacy Option    Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0600000000)..BO

Ok. I thought you were implying that there was an “upper” level menu. Going into the BIOS is how I have to go from Windows to ***openSuSE. ***For these HP machines you tap the F10 key at PowerUp or ReStart. Then I must move openSuSE from the bottom to the top of the list. Something in Win10 will put it back on the bottom next time I enter it.

Thanks,
-Chuck

Hmmmmm… Ok didn’t know that there were two. The only “Fast Boot” that I know of was the one in the BIOS. It is the one that I had to change in my other machine. Also the “Secure Boot”. I will have to research that unless you have a quick fix. :stuck_out_tongue: Which I guess is what I was looking for in the first place.:confused:

Thanks,
-Chuck

By the by, I do have a fully functional openSuSE 13.2 running on my machine(s). The ‘only’ problem I have is on the Re-Boot from Windows 10.

Windows 10 is also often called “Fast Startup”. The random first hit of google: http://www.windows10update.com/2015/05/windows-10-tutorials-66-how-to-enable-or-disable-fast-startup/

Thanks.

There’s no entry there for Windows. Assuming that Windows is installed for UEFI booting, that would be why it always finishes up at the top. Windows is discovering that its EFI boot entry is missing, so it is adding it back. And, adding it back puts it at the top.

My main desktop computer wants to do that. The BIOS tries to clean up NVRAM entries. But it cleans up too much. It deletes all but the one most recently used. So if I boot opensuse, it deletes the Windows boot entry, though the grub menu can still boot Windows. And, if I boot Windows, the BIOS deletes the opensuse entry. If I put back the opensuse entry it goes to the top.

Actually, entirely by luck, I avoided this. I added a second hard drive for opensuse. And I chose to create a separate EFI partition on the second disk, and use that for opensuse. The BIOS isn’t quite as persistent about clean up as I described. It keeps one boot entry per disk (or per EFI partition). And, by luck, that means that everything works for me. But if I install a second opensuse on the Windows disk, I run into exactly that problem.

In any case, it is not the fault of Windows, it is the fault of your UEFI firmware.

Note that this all assumes that Windows is installed for UEFI and not for legacy booting. I really don’t know if that is true.

How are you booting Windows?

First item listed:
The Fast startup setting only applies to Shutdown, it doesn’t apply to Restart.


**Tipper-i7**:~ ---  The ***Win8*** Machine
 # efibootmgr -v
BootCurrent: 0003
Timeout: 2 seconds
BootOrder: 0003,0002,0001,0004,0005,0000
Boot0000* opensuse      Vendor(99e275e7-75a0-4b37-a2e6-c5385e6c00cb,)
Boot0001* USB Floppy/CD Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0500000001)..BO
Boot0002* USB Hard Drive        Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0200000001)..BO
Boot0003* opensuse-secureboot   HD(2,200000,b4000,6162cea7-375f-4c50-9c69-d5156e240456)File(\EFI\opensuse\shim.efi)
Boot0004* UEFI: IPv4 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,6)PCI(0,0)MAC(2025647d75c8,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0..BO
Boot0005* UEFI: IPv6 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,6)PCI(0,0)MAC(2025647d75c8,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000..BO


**Dakotah-i7:**/home/ctaylor # efibootmgr -v   --- The ***Win10*** Machine
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,0001,0002,0006,0007,0008
Boot0000* opensuse      HD(2,200000,b4000,57c1bed6-2f4e-4c78-b5e5-4f38ce7697f0)File(\EFI\opensuse\grubx64.efi)
Boot0001* USB Floppy/CD Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0500000001)..BO
Boot0002* USB Hard Drive        Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0200000001)..BO
Boot0006* UEFI: IPv4 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,2)PCI(0,0)MAC(3464a92040ee,0)IPv4(0.0.0.0:0<->0.0.0.0:0,0, 0..BO
Boot0007* UEFI: IPv6 Realtek PCIe GBE Family Controller ACPI(a0341d0,0)PCI(1c,2)PCI(0,0)MAC(3464a92040ee,0)030d3c000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000..BO
Boot0008  Fake Legacy Option    Vendor(b6fef66f-1495-4584-a836-3492d1984a8d,0600000000)..BO

That is my two machines. The Win8 machine will present the Grub Menu for boot choices no matter which system the ReStart comes from.
ARRRGGG!!! Well, that became a lie. Somehow I screwed up a system that has been working fine for over a year. Now both of them will NOT present the Grub menu AFTER being in the Windows System.

We are on the other side of the world in Phoenix, AZ USA and I must get ready for work. But thanks for your input and I will investigate this further when I return home. Have a good evening.
-Chuck

Given that Windows will usually try to make its boot-loader default again, may I suggest the following:In Windows, open an Elevated Command Prompt (CLI Terminal run as administrator) and execute this command:


> bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi

Reboot and GRUB2 should appear (at least that’s what happens on my Lenovo lap-top).

For comparison, here’s the output that I see from “efibootmgr -v”


# efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001
Boot0000* opensuse-secureboot   HD(1,800,fa000,8daf0950-e06b-4ac4-90fd-e966912fa23e)File(\EFI\opensuse\shim.efi)
Boot0001* Windows Boot Manager  HD(1,800,fa000,a0547a0a-57c0-405d-b6b9-a01ca4839f0f)File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...}................

You can see an entry for Windows boot manager and one for opensuse.

The “boot order” line indicates which will be the boot default.

I am not seeing a Windows entry for either of your outputs.

My other EFI box give a longer output, but I don’t have Windows on that box. The output on the one that I showed is short, because the BIOS does that cleaning up that it shouldn’t be doing.

That works, at least with Windows 8 and 8.1. I’ve heard that BCDEDIT might be gone for Windows 10, with a different command replacing it.

The trouble, though, is that change can block some Windows updates.

I have a Lenovo desktop without Windows. I can change the boot order in the BIOS settings, and those overrule what is set with “efibootmgr”. Maybe see if that is possible with your Lenovo.

Windows 10 Home running in an Oracle VirtualBox (64-bit):


C:\>bcdedit

Windows-Start-Manager
---------------------
Bezeichner              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  de-DE
inherit                 {globalsettings}
default                 {current}
resumeobject            {f2dc771f-8d2a-11e5-bb1e-b6326c9e2252}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows-Startladeprogramm
-------------------------
Bezeichner              {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.exe
description             Windows 10
locale                  de-DE
inherit                 {bootloadersettings}
recoverysequence        {562ac0bf-8d2b-11e5-bb1e-b6326c9e2252}
recoveryenabled         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {f2dc771f-8d2a-11e5-bb1e-b6326c9e2252}
nx                      OptIn
bootmenupolicy          Standard

C:\>

Never noticed this issue with Windows 8.1.
Or, could it be that, when Windows reboots after an update, if the user isn’t present at the console, GRUB will boot the default Linux . . .

Yes. Never thought about trying it . . . Thanks for the tip … Will test it soon: place your bets as to whether or not Lenovo Laptops with AMD Dual-Graphics CPUs behave the same as Lenovo Desktops.

I was present during the update. Windows applied the update, and asked for restart. On restart, it backed out the update. I removed that boot setting, and tried again. It worked.

When windows is updating something related to booting, it checks. And if it doesn’t like the result of its check, it backs out the update.

I had no problem with the update from Win 8 to Win 8.1, except that it removed that boot config setting. But the second round of updates to Win 8.1 did not like it at all.

Hmm . . . Windows 8.1 has never behaved in that manner in my case.
[HR][/HR]I moved the Windows UEFI ‘{bootmgr} path’ back to “\EFI\Microsoft\Boot\bootmgfw.efi” and tested the Lenovo BIOS UEFI priority order:

[ol]
[li]If the openSUSE EFI is on the top of the stack, GRUB2 boots and on a restart GRUB2 reappears 95% of the time. [/li][li]If the Windows EFI is on the top of the stack, Windows 8.1 boots and on a restart Windows 8.1 boots (not unexpected). [/li][/ol]
[HR][/HR]If the openSUSE EFI is on the top Lenovo BIOS UEFI stack and the Windows 8.1 boot is selected from the GRUB2 menu, Windows 8.1 boots as expected.
[ul]
[li]If Windows 8.1 is rebooted then, Windows 8.1 boots – no sign of GRUB2. [/li][li]If Windows 8.1 is then shut down at the the next power up Windows 8.1 boots – no sign of GRUB2. [/li][li]Shut down (power off) Windows 8.1 and power on again via the Lenovo “Novo” (BIOS) button, checked the BIOS UEFI stack: the openSUSE EFI was (still) on the top of the stack; saved the settings and booted:[/li][LIST]
[li]GRUB2 appeared. [/li][/ul]

[li]Halted the GRUB2 boot and then powered on again: GRUB2 appeared. [/li][/LIST]
[HR][/HR]Conclusion (for a Lenovo Laptop with AMD A10-5750M APU and Dual-Graphics):
The Lenovo BIOS seems to be pro-Windows 8.1.
If the Windows UEFI boot manager is pointing to the Windows bootmgfw.efi then, after a Windows session the Laptop definitely needs to be powered off before the GRUB2 boot manager appears and possibly the BIOS settings have to be re-saved also.