openSUSEのインストール後にWindows 10プロジェクトがGRUBメニューに表示されない

openSUSEのインストール後にWindows 10プロジェクトがGRUBメニューに表示されない

Windows 10と同じハードドライブにopenSUSE Leap 15をインストールしましたが、空き容量を割り当てました。デュアルブートオプションを期待していましたが、Windows 10プロジェクトはGRUBメニューにまったく表示されません。すべてのパーティション(Windows EFIシステムパーティションを含む)がまだ存在します。しかし、Windowsの起動を復元する方法がわかりません。 openSUSEを失うことなくWindowsを再起動するには?

現在のハードディスクの状態は次のとおりです。

Device: /dev/sda
Size: 232.89 GiB
Encrypted: No
Device Path: pci-0000:00:1f.2-ata-1
Device ID 1: ata-Samsung_SSD_850_EVO_250GB_S21NNXAG700322J
Device ID 2: scsi-0ATA_Samsung_SSD_850_S21NNXAG700322J
Device ID 3: scsi-1ATA_Samsung_SSD_850_EVO_250GB_S21NNXAG700322J
Device ID 4: scsi-35002538d4028bcda
Device ID 5: scsi-SATA_Samsung_SSD_850_S21NNXAG700322J
Device ID 6: wwn-0x5002538d4028bcda

そして写真:

ここに画像の説明を入力してください。

答え1

現在インストールされているGRUBパッケージの名前を確認してください。そのようなエントリが含まれているgrub2-i386-pc場合/boot/grub2/i386-pc、またはディレクトリが存在する場合は、誤ってレガシーBIOSモードでSuSEインストーラを起動したため、以前のバージョンのBIOSのGRUBブートローダがインストールされ、最新のUEFIで起動されたエントリは自然に起動しません。オペレーティングシステムソリューション。

この問題を解決するには:

まず、UEFIモードでシステムをLinuxで起動し、OpenSUSEインストールにアクセスする方法を学びます。 openSUSE インストールメディアは次の場所にあります。構造システムモードまたはLiveCD / USBがこれに適している可能性があります。以下は、openSUSEドキュメントの指示へのリンクです。

を実行して、実際にUEFIモードになっていることを確認してくださいefibootmgr -v。応答すると、EFI variables are not supported on this systemUEFIモードでは起動できませんが、レガシーBIOSモードでは起動します。 (従来のBIOSモードで起動すると、EFI NVRAM変数にアクセスするために使用されるメカニズムであるUEFIランタイムサービスは無効になります。)

従来のBIOSよりUEFI起動を優先するようにUEFI BIOS設定を変更するか、従来の互換性を完全に無効にする必要があります(CSM =互換性サポートモジュールとも呼ばれます)。この時点の実際のプロセスは、ハードウェアとUEFI BIOSによって異なります。ハードウェアのマニュアルを参照してください。

UEFIモードでシステムを正常に起動し、openSUSEインストールにアクセスすると、削除する現在のGRUBブートローダーパッケージ。その後、EFIシステムパーティションを/boot/efiGRUB2としてマウントし、完全に再インストールします。パッケージ管理でGRUB2ハードウェア関連パッケージの実際のバージョンを選択するように求められたら、grub2-x86_64-efi代わりにを選択してくださいgrub2-i386-pc

通常、GRUBを完全に再インストールすると、このツールを使用してEFI NVRAM変数を自動的に更新するスクリプトが含まれますefibootmgr。を使用すると、efibootmgr -vUEFI BIOS設定で利用可能なものと同様の起動オプションのリストが表示されます。 GRUBのUEFIバージョンを(再)インストールした後、リストにはgrubx64.efiEFIシステムパーティションのブートローダファイルの場所を指定するOpenSUSEの新しいエントリを含める必要があります。何らかの理由でこれが発生しない場合は、次のコマンドを使用して手動で作成できます。

efibootmgr -c -d /dev/sda -L "openSUSE" -l '\EFI\opensuse\grubx64.efi'

このefibootmgr -dオプションは、パーティション自体ではなくEFIシステムパーティションを含むディスク装置全体を指定します。

EFIシステムパーティションはWindows固有のものではありません。 UEFIシステムでは、インストールされているすべてのオペレーティングシステムがデフォルトのブートローダをここに配置する必要があります。ブートローダ間の競合を避けるための標準化されたディレクトリパターンもあります。すべてのベンダーはブートローダを\EFI\<vendor name>\ディレクトリに配置する必要があり、openSUSEとMicrosoftはそれに準拠しています。

答え2

見つかったのと同様の解決策を試してみてください。ここ

  1. SUSEから起動し、Windowsパーティションをマウントします。
  2. シェルで実行:

    sudo os-prober
    
  3. Windowsが見つかったら、次を実行します。

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

関連情報