recover dual boot after install windows 8.1

I installed windows 8 from scratch, then updated to 8.1
Then I installed OS 13.1 with the live USB but grub2 did not recognize win 8
so I run win8 repair tool (it was very tricky but at the end I was able to reset MBR and let win8 run again) and I lost again grub2 and OS

how can I reinstall grub2, being sure that it will also recognize win8

I did not understand anything about this new UEFI systems and I have no idea what I have in my system
this is my configuration:
toshiba portege z830 with SSD 128GB
3 partitions: /dev/sda0 is my swap, /dev/sda1 is OS, /dev/sda2 is windows (where there is a /boot folder and also a /EFI folder)

how can I check whether I have UEFI or not and setup the dual boot accordingly? I know there are many posts about it but none of them is explaining how to do that with a live USB

thanks for your help

Hi,

try this, http://neosmart.net/EasyBCD/

its free (need registration) and able boot linux from windows boot menu.

thanks

Regards

Czeslaw M.

You can do all you ask from within Windows 8 itself, without installing any new tools. You should also make sure to disable Windows 8 Fast-start, if you haven’t already done so (see here: https://forums.opensuse.org/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/487837-how-dual-boot-preinstalled-windows-8-linux-uefi-etc.html#4, see “Preparing Windows 8 for dual-booting”, item 4).

To check MBR/UEFI from Windows, execute the following commands (the “diskpart”-command should work with Vista and W7 too):

From Windows 8 Desktop:
<WindowsKey>-X —> Command Prompt (Admin)

diskpart
list disk
exit
exit

Example from my test-installation - not a dual-boot setup (W8.1 under VMWare Workstation 10 - W8 and W8.1 are similar):

Microsoft DiskPart version 6.3.9600

Copyright (C) 1999-2013 Microsoft Corporation.
On computer: W81PRO64VM

DISKPART> list disk

  Disk ###  Status         Size     Free     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  Disk 0    Online           50 GB    15 GB        *

DISKPART> exit

Leaving DiskPart...

C:\Windows\system32>exit

An asterisk in the GPT-column indicates that you are running GPT.


If you do have GPT, you should be able to regain access to your Grub-menu from inside Windows too. (That may also be true for MBR, but I have no experience dual-booting Windows 8 in MBR mode).

You can try:

From Windows 8 Desktop:
-X —> Command Prompt (Admin)

Then apply a selection of the following commands to navigate in your BCD database (Anything following “#” (inclusive) are comments and should not be typed when applying commands):

mountvol z: /s      # This will mount the ESP partition as drive Z:
mountvol z: /d      # Drive z: is removed

bcdedit /set {bootmgr} path \EFI\Boot\bootx64.efi  #Select file to use for bootmgr. Here, Grub is the target. Adjust path to your PC
bcdedit /default {bootmgr}                         #Select bootmgr as default boot entry
bcdedit /default {<hex-ID-for-opensuse-secure>}    #As above, but use UUID instead of symbol. Can be used without ".../set {bootmgr}
bcdedit /enum all -v                               #List the BCD database using UUID everywhere
bcdedit /enum all                                  #List the BCD database using known symbols

Examples from my W8/13.1 installation. You should apply commands in approximately the sequence displayed:

C:\Windows\system32>bcdedit /enum all

Firmware Boot Manager
---------------------
identifier              {fwbootmgr}
displayorder            {112d7697-46fe-11e3-beb8-806e6f6e6963}
                        {bootmgr}
                        {112d7693-46fe-11e3-beb8-806e6f6e6963}
                        {63dfd18a-2c85-11e3-b718-adb8de629832}
                        {63dfd18b-2c85-11e3-b718-adb8de629832}
                        {63dfd18c-2c85-11e3-b718-adb8de629832}
timeout                 2

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Boot\bootx64.efi
description             Windows Boot Manager
locale                  en-GB
inherit                 {globalsettings}
integrityservices       Enable
default                 {current}
resumeobject            {63dfd18d-2c85-11e3-b718-adb8de629832}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Firmware Application (101fffff)
-------------------------------
identifier              {112d7693-46fe-11e3-beb8-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\opensuse\grubx64.efi
description             opensuse

Firmware Application (101fffff)
-------------------------------
identifier              {112d7694-46fe-11e3-beb8-806e6f6e6963}
description             UEFI: Network Card

Firmware Application (101fffff)
-------------------------------
identifier              {112d7695-46fe-11e3-beb8-806e6f6e6963}
description             UEFI: Network Card

Firmware Application (101fffff)
-------------------------------
identifier              {112d7697-46fe-11e3-beb8-806e6f6e6963}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\opensuse\shim.efi
description             opensuse-secureboot

Firmware Application (101fffff)
-------------------------------
identifier              {63dfd18a-2c85-11e3-b718-adb8de629832}
description             EFI Network

Firmware Application (101fffff)
-------------------------------
identifier              {63dfd18b-2c85-11e3-b718-adb8de629832}
description             EFI USB Device

Firmware Application (101fffff)
-------------------------------
identifier              {63dfd18c-2c85-11e3-b718-adb8de629832}
description             EFI DVD/CDROM

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 8
locale                  en-GB
inherit                 {bootloadersettings}
recoverysequence        {63dfd18f-2c85-11e3-b718-adb8de629832}
integrityservices       Enable
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {63dfd18d-2c85-11e3-b718-adb8de629832}
nx                      OptIn
bootmenupolicy          Standard
detecthal               Yes

Windows Boot Loader
-------------------
identifier              {63dfd18f-2c85-11e3-b718-adb8de629832}
device                  ramdisk=\Device\HarddiskVolume1]\Recovery\WindowsRE\Win
re.wim,{63dfd190-2c85-11e3-b718-adb8de629832}
path                    \windows\system32\winload.efi
description             Windows Recovery Environment
locale                  en-GB
inherit                 {bootloadersettings}
displaymessage          Recovery
osdevice                ramdisk=\Device\HarddiskVolume1]\Recovery\WindowsRE\Win
re.wim,{63dfd190-2c85-11e3-b718-adb8de629832}
systemroot              \windows
nx                      OptIn
bootmenupolicy          Standard
winpe                   Yes

Resume from Hibernate
---------------------
identifier              {63dfd18d-2c85-11e3-b718-adb8de629832}
device                  partition=C:
path                    \Windows\system32\winresume.efi
description             Windows Resume Application
locale                  en-GB
inherit                 {resumeloadersettings}
recoverysequence        {63dfd18f-2c85-11e3-b718-adb8de629832}
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
filedevice              partition=C:
filepath                \hiberfil.sys
bootmenupolicy          Standard
debugoptionenabled      No

Windows Memory Tester
---------------------
identifier              {memdiag}
device                  partition=\Device\HarddiskVolume2
path                    \EFI\Microsoft\Boot\memtest.efi
description             Windows Memory Diagnostic
locale                  en-GB
inherit                 {globalsettings}
badmemoryaccess         Yes

EMS Settings
------------
identifier              {emssettings}
bootems                 No

Debugger Settings
-----------------
identifier              {dbgsettings}
debugtype               Serial
debugport               1
baudrate                115200

RAM Defects
-----------
identifier              {badmemory}

Global Settings
---------------
identifier              {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}

Boot Loader Settings
--------------------
identifier              {bootloadersettings}
inherit                 {globalsettings}
                        {hypervisorsettings}

Hypervisor Settings
-------------------
identifier              {hypervisorsettings}
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

Resume Loader Settings
----------------------
identifier              {resumeloadersettings}
inherit                 {globalsettings}

Device options
--------------
identifier              {63dfd190-2c85-11e3-b718-adb8de629832}
description             Windows Recovery
ramdisksdidevice        partition=\Device\HarddiskVolume1
ramdisksdipath          \Recovery\WindowsRE\boot.sdi

C:\Windows\system32>

The key here is the “Windows Boot Manager” part. It has the identifier {bootmgr], the device is “partition=\Device\HarddiskVolume2” (= the second partition on my disk), its path is “\EFI\Boot\bootx64.efi”, where I did copy openSUSE’s shim.efi (look up “description opensuse-secureboot” and check its path).

Example 1 - the ideal solution:
So, given the above, the following would make sense if the Windows Boot Manager part pointed to Windows 8 itself, and is all that should be necessary. However, its success will depend on how your PC’s UEFI is implemented:


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

The last command may even be superfluous as it should already be the case for you in your situation.

Example 2 - not the ideal solution, but may be necessary:
My Toshiba doesn’t have an ideal UEFI implementation. So I did the following:

This preparation is necessary for the UEFI to find the secure-boot file necessary to boot openSUSE:

mountvol z: /s
xcopy z:\EFI\opensuse\*.* z:\EFI\Boot\*.*
copy z:\EFI\Boot\grubx64.efi z:\EFI\Boot\grubx64.efi.old
copy z:\EFI\Boot\shim.efi z:\EFI\Boot\grubx64.efi
mountvol z: /d

Then I did as follows, which is almost identical to example 1 above:

bcdedit /set {bootmgr} path \EFI\Boot\bootx64.efi
bcdedit /default {bootmgr}

Which makes for an equivalent situation. If openSUSE’s shim.efi changes in the future, I will need to repeat what I did between the two mountvol-commands above. To be honest, that will be a “when” it changes, not an “if”, as it will change when the MS certificate used for signing it expires and probably also with openSUSE releases, as it did between 12.3 and 13.1.

Example 3:
For a one-time boot of openSUSE without permanent change of the UEFI NVRAM, you should be able to use:

bcdedit /bootsequence <id>

where <id> is openSUSE’s <id>. In my case, the <id> is “{112d7697-46fe-11e3-beb8-806e6f6e6963}” for secure boot, and “{112d7693-46fe-11e3-beb8-806e6f6e6963}” for non-secure boot (“description opensuse”).

Please note that these ID’s aren’t the same across systems! They are generated during installation! So your <id> will be different, as will the <id> be if you were to reinstall the same system! So be sure to check out your own <id>!

dayfinger

Forgot to say:

Addition to my example 2 above:

Manipulating the BCD registry and NVRAM may not be enough. With my Toshiba (Sattellite P50-A 11J) I have to - after doing the BCD/NV RAM manipulation - exit Windows 8 and power it down properly (the powering down from Windows 8 Fast Start setup WILL NOT DO!). Then I have to power on again, while holding F2 down in order to enter UEFI (BIOS) setup. When I have entered the setup, I can press F10 and exit again and wait for the next boot to happen as I have set up.

The thing seems to be:
My Toshiba doesn’t read from the EFS partition except when entering the UEFI (BIOS) setup. That means changes made to the EFS partition isn’t moved into NVRAM unless I enter the UEFI setup. There seems to be ways to circumvent that, however, (the 13.1 installation procedure indicate that), but Windows 8 bcdedit.exe doesn’t do that.

I have yet to test Windows 8.1 under the same scenario, however, which may prove to be different.

dayfinger

So on my laptop, I did away with the GPT disk format and switched to MBR. I do question that a 128 GB SSD is large enough for a dual boot setup. I have a blog on GPT and MBR disks here:

Creating Partitions During Install for MBR and GPT Hard Disks - Blogs - openSUSE Forums

Here is how I formatted my 480 GB SSD for dual boot with Windows 8.1:

http://paste.opensuse.org/view/download/99590072

Thank You,

thanks dayfinger…I will try your solution asap and let you know