Grub2はWindows 10、ハードドライブ2台でデュアルブート、UE​​FI / GPTシステムを検出できません。

Grub2はWindows 10、ハードドライブ2台でデュアルブート、UE​​FI / GPTシステムを検出できません。

2つのSSDがあります。Windows 10は/ dev / sda1にあり、OpenSuseは/ dev / sda3にあります(/ dev / sda2はストレージハードドライブ用です)。数ヶ月前に/dev/sda3にUbuntuをインストールしました。しかし、個人的な理由でOpenSuseを使用することにしました。だから1週間前、私は/ dev / sda3にOpenSuseをインストールしました。

Ubuntuで/dev/sda3を使用する場合、起動順序は/dev/sda1の代わりに/dev/sda3です。マシンを起動すると、grubはシステムを起動します。 Ubuntuを検出し、Windows 10が私の/dev/sda1にあります。

ただし、/dev/sda3 をフォーマットし、/dev/sda3 に OpenSuse をインストールした後、新しい OpenSuse インストールに付属の grub は、同じ起動順序で Windows 10 を検出できませんでした。

だから、いくつかのフォーラムをチェックして、またはos-proberなど、さまざまな方法を試してみましたが、update-bootloader何の効果もありませんでした。

このような試みの後、私は方法に関するstackoverflow wikiの質問を見つけました。2番目のハードドライブのデュアルブートウィンドウ、UEFI / GPTシステム。私はこれを段階的に従った。

完了時に最初の試みが失敗しました。これが私の/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 "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
}

それを作るために、私は次のステップに従いました。 (私が何か間違っていた場合は、上記のリンクを使用して同じ手順を書き直しました...)

1)Windows 10ディスクのマウントパスを見つけます。これが私の状況です/run/media/cavit/685EBC705EBC3920、、

2)環境変数をに設定しますwin

3)Windows用efiを見つけたら私に/Windows/Boot/EFI/bootmgfw.efi

4)grub2-probe --target=hints_string $win与えられた--hint-bios=hd0,gpt4 --hint-efi=hd0,gpt4 --hint-baremetal=ahci0,gpt4 --hint='hd2,gpt4'

5)grub-probe --target=fs_uuid $win与えられた685EBC705EBC3920、、

drivemap6)Windows 10ディスクはすでに最初のディスクであるため、そのディスクはありません。

7)find /boot -name grub.cfg与えられた/boot/grub2/grub.cfg、、

8)grub-mkconfig -o /boot/grub2/grub.cfg次の出力を提供します。

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出力は提供されません。

しかし、再起動して新しいエントリを選択した後、最初の試みでgrubは出力を提供しましたcan't find command chainload。もともと文には最後のコード行がこのように見えたが/etc/grub.d/40_customchainload (${root})/Windows/Boot/EFI/bootmgfw.efiもしかしたらその命令がで修正されたのではないかと思って、もしかして確認してみましたがchainloader今回はエラーが出ましたねError: Invalid Signature

一方、Windows 10ディスク(/ dev / sda1)には奇妙なパーティションがあります。追加のパーティションがあり、なぜ存在するのか理解できません。これが私のblkid結果です。

/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"

/dev/sda2 にツリー構造のEFIフォルダがありますが、

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

ubuntuだから私が何か間違っているのか、なぜこのフォルダが私のディレクトリにあるのかわかりませんEFI。この問題を解決するために確認できるフォーラムやWikiがもうないようです。それでは、Windows 10でグラブ検出の問題を解決する方法はありますか?

注:Windowsでは休止状態をオフにし、クイックスタートなどを無効にしました。

関連情報