1

I've got a question regarding dualbooting openSUSE and Windows...

I'd like to install openSUSE Leap 42.1 on my machine alongside Windows 10, Is there a way to do this using the Windows bootloader?

I've tried a few times but there were really 2 outcomes: SUSE hijacked the bootprocess anyway or left my PC unbootable (installed Xubuntu over SUSE to get it to boot again, then put windows back into the MBR, left xubuntu unbootable, but hey, Windows booted again)

What are the options I need to set (or unset?) in the SUSE installer to achieve this?

Btw: This is my current partitioning setup:

350MB       Windows Boot Partition          NTFS
380GB       Windows Install Partition       NTFS
90GB        Linux Extended partition
25GB        Linux Root Partition            ext4
60GB        Linux home Partition            XFS
3GB         Linux Swap Partition            swap
450MB       Windows Recovery Partition

Why use the windows bootloader, you ask?

Well, I really need windows (MultiSim, Xilinx ISE Design suite,...) , on a daily basis almost, so I can't afford to mess up my bootloader because I was tinkering with it. That's why I want the windows bootloader to be in charge. I can't mess it up, if I mess up my Linux, sure I'll reinstall, but windows will always remain bootable.

1

To everyone asking this same question, I got it down and this is how:

Step 1: Preparation:
Install EasyBCD. Using EasyBCD you'll back-up your windows boot config.
DO NOT SKIP THIS STEP, Your system might be rendered unbootable if you don't back this config up. (believe me, it's not fun to recover an unbootable PC, knowing you need it tomorrow)

Step 2: Partitioning:
You'll want to add another parition, this will be your /boot partition. I put it at the front of my extended Linux partition. My partition was about 512MB big and was partitioned as ext2.

Step 3: Install openSUSE:
Next, install openSUSE. Be sure to not install to MBR and write bootcode to your /boot partition.

Step 4: Getting Windows back in charge:
Now we'll put Windows in charge again, reboot your system after installing openSUSE. This should boot GRUB, select "Windows 10 loader on /dev/sdaX". Now, use EasyBCD to recover your MBR, also select your windows boot drive/partition as the system's boot drive/partition. If you reboot now, you should boot straight into Windows. Now, you can add a new boot-entry. Be sure to select the GNU/Linux tab. Leaving the partition on auto-detect worked for me, but you should be able to manually select one. Be sure to give it a proper name.

Step 5: Grand Finale:
Your dualboot system should be set up now, go ahead and reboot, you'll be presented with the windows bootloader, which can either continue to load Windows, or chainload GRUB.

note: dualbooting using the Windows bootloader makes booting Linux significantly slower than booting Windows. This is because Windows performs a reboot after you select an OS that's not Windows. If start-up speed is essential to you, I suggest you leave GRUB in charge.

1

Generally you do not need to set anything, GRUB does it for you probing other OS's in the hard drive and adding them to the menu entry, even the windows recovery partition should appear there. So, when you have all the other systems installed, then you install openSUSE and you will be able to boot anything else bootable in your system through GRUB's menu out of the box.

If for some reason "Windows 10" is not showing up on GRUB's menu try these:

1) In openSUSE go to "Yast > Boot Loader" on the window "Boot Loader Settings" click on the tab "Bootloader Options" and check if the option "Probe foreign OS" is selected, if not select it, click ok, GRUB will re-run its configuration, and then you restart the system. The other OS's should appear in Grub's menu entry when you start the pc.

2) If the above did not work, you can set manually an entry to your "Windows 10" partition in GRUB's menu. (I myself am using this in openSUSE Leap 42.1!)

As root edit the file /etc/grub.d/40_custom so it looks like this:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows 10" {
    set root='(hd0,gpt2)'
    chainloader /EFI/microsoft/BOOT/Windows.efi
}

In the menu entry you have to set the info of your windows partition for: hd0 = name of the hard drive, probably the same as here; gpt2 = the boot partition, your probably will be gpt1 (if you are not using a gpt partition try 1 instead of gpt1, the number follows the order of partitions in your hard drive; chainloader = where the windows efi bootloader is located. I made a copy of /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi in the boot folder and renamed to "Windows.efi". Be careful that in the chainloader address does not need the initial /boot/efi/. Save the file and close it.

Now you need to tell GRUB about this change by running the command as root:

# grub2-mkconfig -o /boot/grub2/grub.cfg

This will reconfigure GRUB with the new entry, when it is finished restart the system. You should be able to boot "Windows 10" from GRUB's menu. The menu entry supplied above work for other systems as well by providing the correct address and needed info.

0

If your Windows PC is booting in EFI mode, Microsoft has blocked the loading of legacy or non-Windows operating systems from the BCD menu. This means that you can no longer use EasyBCD to add Windows 9x, XP, or Server 2003 entries to the BCD bootloader menu. You also cannot add DOS, Linux, BSD, or Mac entries. You can add multiple Windows Vista, Windows 7, Windows 8, and Windows 10 entries; and you can also boot into BCD-based portable media, such as WinPE 2.0+ images. I have found that the only alternative is to place your bootloader on the root partition and select GRUB/Linux boot loader as the first boot option in set up (this will leave your Windows MBR intact. That way if anything happens to Linux you can go back into setup and select Windows as the first boot option and delete Linux from Windows disc management. You can (if you wish) reload Linux. All of this done while Windows remains intact. I hasten to add that while this procedure is relatively easy to perform with Ubuntu/debian based distros of Linux you must be very careful to confirm your YAST setup settings with Opensuse. I have included this Youtube tutorial link to help. https://www.youtube.com/watch?v=xlTgaWs9BD0

0

2019 update ! I suffered much , so I think will contribute bit more

my windows boot entry vanished after i install suse 15 in my laptop

recovery process!


  1. confirm you efi windows partition still alive some where in ur HDD

    linux-ifbe:~ # bootctl status


    File system "/boot/efi" has wrong type for an EFI System Partition (ESP). System: Firmware: n/a (n/a) Secure Boot: disabled Setup Mode: setup

    Current Loader: Product: n/a ESP: n/a File: └─n/a

    Boot Loader Binaries: ESP: Cannot find or access mount point of ESP.

    Boot Loader Entries in EFI Variables: Title: sles ID: 0x0000 Status: active, boot-order Partition: /dev/disk/by-partuuid/493e9e82-b2e9-4201-a856-5df63869a4bf File: └─/EFI/sles/grubx64.efi

        Title: sled-secureboot
           ID: 0x0006
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/493e9e82-b2e9-4201-a856-5df63869a4bf
         File: └─/EFI/sled/shim.efi
    
        Title: Windows Boot Manager
           ID: 0x0005
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/93607397-896b-11e4-b666-d343be9e55dd
         File: └─/EFI/Microsoft/Boot/bootmgfw.efi
    
        Title: Windows Boot Manager
           ID: 0x0004
       Status: active, boot-order
    Partition: /dev/disk/by-partuuid/93607397-896b-11e4-b666-d343be9e55dd
         File: └─/EFI/Microsoft/Boot/bootmgfw.efi
    

linux-ifbe:~ #


  1. match with ur disk id

linux-ifbe:~ # blkid


/dev/sda1: LABEL="System" UUID="32546F46546F0C43" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="93607391-896b-11e4-b666-d343be9e55dd" /dev/sda2: UUID="5A70-28D9" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="93607397-896b-11e4-b666-d343be9e55dd" /dev/sda3: UUID="B802718A02714E7E" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="93607399-896b-11e4-b666-d343be9e55dd" /dev/sda4: LABEL="TI31184100G" UUID="C46872F76872E816" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="9360739f-896b-11e4-b666-d343be9e55dd" /dev/sda5: UUID="20B60C41B60C19C4" TYPE="ntfs" PARTUUID="e06a03c0-05b3-46b9-8f39-285835657847" /dev/sda6: UUID="04d80a53-ba70-4bb2-9d81-cea98f2d9e4a" TYPE="ext4" PARTLABEL="primary" PARTUUID="43e69176-d33c-4ad4-bcd4-d9e2bc7abbc0" /dev/sda7: LABEL="Recovery" UUID="B8C4298BC4294D46" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="337287c5-897f-11e4-b1c9-b0248f5831e0" /dev/sda8: UUID="e870bcac-a05d-4251-b3e1-752b16275d62" TYPE="swap" PARTLABEL="primary" PARTUUID="0c4c51be-7222-4db2-9150-3140d6835482" /dev/sda9: UUID="8F60-443B" TYPE="vfat" PARTLABEL="primary" PARTUUID="493e9e82-b2e9-4201-a856-5df63869a4bf"

linux-ifbe:~ # blkid |grep -i 93607397 /dev/sda2: UUID="5A70-28D9" TYPE="vfat" PARTLABEL="Basic data partition" PARTUUID="93607397-896b-11e4-b666-d343be9e55dd" linux-ifbe:~ #


!!!! found its /dev/sda2


3.. Run to /etc/grub2/40_custom


linux-ifbe:~ # cat /etc/grub.d/40_custom 
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.

menuentry "Windows 10" {

    set root='(hd0,gpt2)'

    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

linux-ifbe:~ # 

hda = hd0 old school basics hda,2 = gpt2 save it in the file


4.... go reconfigure grub

grub2-mkconfig -o /boot/grub2/grub.cfg


5...reboot your system . and enjoy your windows peice too

cheers from Manu


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.