3

I have two ssd which there is Windows 10 on the /dev/sda1 and OpenSuse on /dev/sda3 (/dev/sda2 is for a storage hdd). I have been installed Ubuntu on my /dev/sda3 couple months ago. But because of some personal reasons I have decided to go with OpenSuse. So I have installed OpenSuse on my /dev/sda3 a week ago.

When I was using my /dev/sda3 with Ubuntu, my boot order was /dev/sda3 than /dev/sda1. And when I boot up my machine, grub was booting the system. And it can detect Ubuntu while Windows 10 which was on my /dev/sda1.

But after I formatted my /dev/sda3 and have install OpenSuse on my /dev/sda3, newly installed grub, which comes with OpenSuse, was not able to detect Windows 10, with the same boot order.

So I have check some forums and tried many different things like os-prober or update-bootloader but nothing worked.

And after those tries I found a stackoverflow wiki question about how to Dual boot windows on second harddrive, UEFI/GPT system. I have followed this step by step.

After completed it, first try was failed. Here is my /etc/grub.d/40_custom look like,

#!/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 "MS Windows" {
        insmod part_gpt
        insmod search_fs_uuid
        insmod ntfs
        insmod chain
        search --fs-uuid --no-floppy --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 685EBC705EBC3920
        chainloader /Windows/Boot/EFI/bootmgfw.efi
}

To create it I followed those steps, (I just re-write the same steps with the link above if I make something wrong...)

1) find the mount path of the windows 10 disk, which is for my case, /run/media/cavit/685EBC705EBC3920,

2) make a env var of it as win,

3) find the efi of the windows which gives me, /Windows/Boot/EFI/bootmgfw.efi,

4) grub2-probe --target=hints_string $win gives --hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4 --hint='hd2,gpt4',

5) grub-probe --target=fs_uuid $win gives, 685EBC705EBC3920,

6) I did not drivemap because my Windows 10 disk already first one.

7) find /boot -name grub.cfg gives, /boot/grub2/grub.cfg,

8) grub-mkconfig -o /boot/grub2/grub.cfg gives an output like that,

Generating grub configuration file ...
Found theme: /boot/grub2/themes/openSUSE/theme.txt
Found linux image: /boot/vmlinuz-4.4.2-1-default
Found initrd image: /boot/initrd-4.4.2-1-default
Found linux image: /boot/vmlinuz-4.4.1-1-default
Found initrd image: /boot/initrd-4.4.1-1-default
Found memtest image: /boot/memtest.bin
done

9) grub-script-check /boot/grub/grub.cfg gives no any output.

But on my first attempt after I reboot and select that new entry, grub gave an output can't find command chainload. On the original post, last line of code of the /etc/grub.d/40_custom was chainload (${root})/Windows/Boot/EFI/bootmgfw.efi so I just thought if that command revised to chainloader. So I tried if it is and this time I got an error as Error: Invalid Signature.

On the other hand, a wierd partition is present on my Windows 10 disk (/dev/sda1). There is an extra partition which I don't understand why it is present. Here is my blkid output,

/dev/sda1: LABEL="Recovery" UUID="6AC8BAAFC8BA78C1" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="83e0d3c4-f90b-4f2f-8f8b-500b1f773d5d"
/dev/sda2: UUID="08BA-F986" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="4c3e9d7b-1f9c-49e7-8bfe-83d1e3d778b4"
/dev/sda3: PARTLABEL="Microsoft reserved partition" PARTUUID="2686e370-0de7-466c-85b7-1e6594f6eb56"
/dev/sda4: UUID="685EBC705EBC3920" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="901c7e27-71f0-4e61-9626-095783661f2d"

on the /dev/sda2 there is EFI folder, here is the tree structure,

EFI                                                                                                                                                                            
├── Boot                                                                                                                                                                     
│   └── bootx64.efi                                                                                                                                                          
├── Microsoft                                                                                                                                                                
│   ├── Boot                                                                                                                                                                 
│   │   ├── BCD                                                                                                                                                              
│   │   ├── BCD.LOG                                                                                                                                                          
│   │   ├── BCD.LOG1                                                                                                                                                         
│   │   ├── BCD.LOG2                                                                                                                                                         
│   │   ├── bootmgfw.efi                                                                                                                                                     
│   │   ├── bootmgr.efi                                                                                                                                                      
│   │   ├── BOOTSTAT.DAT                                                                                                                                                     
│   │   ├── boot.stl     
│   │   ├── kd_02_10df.dll
│   │   ├── kd_02_10ec.dll
│   │   ├── kd_02_1137.dll
│   │   ├── kd_02_14e4.dll
│   │   ├── kd_02_15b3.dll
│   │   ├── kd_02_1969.dll
│   │   ├── kd_02_19a2.dll
│   │   ├── kd_02_8086.dll
│   │   ├── kd_07_1415.dll
│   │   ├── kd_0C_8086.dll
│   │   └── kdstub.dll
│   └── Recovery
│       ├── BCD
│       ├── BCD.LOG
│       ├── BCD.LOG1
│       └── BCD.LOG2
└── ubuntu
    ├── grub.cfg
    ├── grubx64.efi
    ├── MokManager.efi
    └── shimx64.efi

So I do not know if where am I wrong and why this ubuntu folder is in my EFI dir. And seems like there is no more forums or wiki that I can check to solve it. So is there a way to fix this grub detection for Windows 10?

Note: I have close hibernation on Windows and disabled fast boot etc.

Your Answer

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

Browse other questions tagged or ask your own question.