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
、、
drivemap
6)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_custom
、chainload (${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では休止状態をオフにし、クイックスタートなどを無効にしました。