web-dev-qa-db-ja.com

既存のWindowsインストールでのUEFIマルチブート

私はすでにいくつかの回答とガイドを読みました:

PCにWindows 10(x64)が既にインストールされています。マザーボードにはクラス3 UEFIファームウェアが付属しています(CSMブートはサポートされていません)。トラブルシューティングのためにセキュアブートを無効にしました。私のパーティションは次のとおりです:

      Partition ###  Type              Size     Offset 
      -------------  ----------------  -------  -------
      Partition 1    System             101 MB  1024 KB
      Partition 2    Reserved            16 MB   102 MB
      Partition 3    Primary            473 GB   118 MB
      Partition 4    Primary           2052 MB   473 GB
      Partition 5    Recovery          1794 MB   475 GB                                                                     

私の 理解 は、UEFIファームウェアがEFIシステムパーティション(パーティション1)で<EFI_SYSTEM_PARTITION>/EFI/BOOT/<MACHINE_TYPE_SHORT_NAME.EFI>に一致するファイルを検索することです。次に、ファームウェアは、ブートマネージャー(ケース1)/ブートローダー(ケース2)がファームウェアのブート優先順位で最も高いものに「制御を渡します」。ケース1は「他のブートローダーをロード」し、ケース2は「カーネルをロード」して、ブートプロセスの初期部分を終了し、OSを起動します。

からの出力に基づく

bcdedit /enum

WindowsブートManagerは、パーティション1にpath=/EFI/Microsoft/Boot/bootmgfw.efiがあり、これは私にとって意味があります。 WindowsブートLoaderpath=\Windows\System32\winload.efiが付いたパーティション3にあります。

UEFIファームウェアでは、ブート優先度の下で、同じfile nameでパーティション1のWindowsブートManagerが正しく聞こえることを除いて、これは問題ありません、ただしWindowsブートLoaderの代わりに、パーティションに2番目のリストUEFI: kX650znv512GP3 NVMe Toshiba SSDがあります3、file name: /EFI/Microsoft/Boot/bootmgfw.efi。後者を最初のブート優先度として設定すると、OSが読み込まれず、BCDファイルが見つからないというメッセージが表示されます。さらに、なぜパーティション3にも/EFI/Boot/bootx64.efi /EFI/Microsoft/Boot/BootMgFw.efi /Boot/BCD /Boot/boot.sdi /Boot/bootfix.binがあるのですか?

だから私の質問は:

  • EFIシステムパーティション(パーティション1)の外にいくつかのブートファイルがあるのはなぜですか?
  • ファームウェアにブート可能ファイルではないように見えるのはなぜですか(UEFI: kX650znv512GP3 NVMe Toshiba SSDを含むパーティション3のfile name: /EFI/Microsoft/Boot/bootmgfw.efi)。

別のブートmanagerをパーティション1(GRUB2またはrEFInd)にインストールするとき、Ubuntuと現在インストールされているWindows 10のどちらかを選択できるようにしたい。(私が間違っている場合は修正してください。ただし、Windowsブートマネージャーは必要です。startwinload.efiを実行するだけなので、rEFIndまたはGRUB2のタスクを実行する必要があります)。 rEFIndはWindows 10を自動的に検出しますか、それともWindows 10ブートローダーefiファイルを使用して手動で編集する必要がありますか(パーティション3に束があるため、現在のところどちらが原因なのかわかりません) )?

この website は、Windowsブートマネージャ(パーティション1の/EFI/Microsoft/Boot/bootmgfw.efiを想定しています)がC:\Windows\System32\Boot\winload.efiを開始することを示しています。

1
chevydog

ようやくすべてが機能するようになったので、自分の質問に答えるつもりです。これは、同様の問題や質問を持つ他の人の役に立つかもしれません。

質問1:

重要な(デフォルトで)efiファイルは、EFIシステムパーティション(パーティション1)にあり、通常、ファームウェアで(FS0の下に)/EFI/Microsoft/Boot/bootmgfw.efiおよび/EFI/Boot/bootx64.efiとして表示されます。 bootx64.efiは単なるブートローダーのようですが、bootmgfw.efiはWindowsブートマネージャーを起動します。 OS(Windows)が1つだけインストールされている場合は、どのefiファイルから起動するかは関係ありません。Windows Boot Managerメニューが表示されないのは、 1つのOSを検出します。

質問2:

正直なところ、実際に機能する/EFI/Microsoft/Boot/bootmgfw.efi(パーティション1)を使用すると、ファームウェアが常にbootmgfw.efi(パーティション3)をブートリストに追加する理由がわかりません。そもそも機能しないefiファイルがC:ドライブ(パーティション3)にある理由もわかりません。

質問3:

私の場合、rEFIndはハードドライブ上のすべてのefiファイルを検出しましたが、Windowsを起動できませんでした。これがなぜなのか私にはわかりません。さらに、efiファイルの1つを起動しようとすると、画面が点滅し、コンピューターが再起動し、(UEFIファームウェアで)起動順序を確認すると、Windowsブートマネージャーが再び上位にありました。それ以来、rEFIndを注文の最初の状態に戻しても、まったく起動できなくなりました。これにより、コンピューターが再起動するだけです(GRUBをインストールしたばかりなので、rEFInd以外はすべて問題なく動作したので、気にしません)。

tldr;無関係なブートファイルが存在し、Windows 10ブートマネージャーがrEFIndを殺す場合があります。これはDell 'BIOS'ファームウェア1.2.2にあります。

1
chevydog