Windows 8.1 UEFI x64 は UEFI イメージを起動できません

Windows 8.1 UEFI x64 は UEFI イメージを起動できません

この質問をした後、疑問が浮かびました1つWin8.1 UEFI x64 ブート マネージャーは、Windows 自体 (winload.efi) 以外を起動できないようです。そこから他の UEFI イメージ (.efi) を起動しようとすると、エラー コード 0xC000007B が表示されます。これはファイルが見つからないためではなく、ファイルが「無効」であるためであると確信しています。そのファイルの名前を変更すると、エラーが 0xC000000F に変わります。セキュア ブートを無効にしましたが、うまくいきませんでした。

現時点では、再検索ブートローダー。ファームウェアを使用して USB フラッシュ ドライブから起動できるため、UEFI イメージは動作していると言えます。ただし、Windows ブート マネージャーを使用すると、上記と同じ結果になります (エラー コード 0xC000007B)。現時点での BCD 構成は次のとおりです (画像):

コマンドラインのスクリーンショット http://imageshack.com/a/img811/7857/kbth.png

F:\rEfit\refindrefind が保存されるディレクトリであり、「refind_x64.efi」はプログラム イメージです。

ntldr注: UEFI Windows で起動できるのは UEFI イメージ (.efi ファイル) のみなのか、また非 UEFI イメージ ( 、などbootmgr)の形式は何なのかも知りたいです。

編集: rEFInd を標準ディレクトリ (「EFI」) に移動しても問題は解決しませんでした。

答え1

1年後、私は再び同じ問題に遭遇しました。幸運にも、今回は解決策を見つけました。Windows 以外の UEFI イメージをロードする OsLoader を Windows ブート マネージャーに追加するには、BCD レジストリを手動で編集する必要があります。RegEdit には、「HKEY_LOCAL_MACHINE\BCD00000000」というキーがあります。これは Windows EFI システム パーティションからロードされ、そのサブキーを編集して BSD ファイルを直接編集します。その下に「Description」というキーがありますが、ここでは「Objects」という別のキーに焦点を当てます。その下に新しいオブジェクト (または既存のオブジェクトの変更) が必要です。次に、ターゲット オブジェクトの GUID 名の下で、「Description」タイプの値を「0x10100003」に編集する必要があります (これはファームウェア アプリケーション osloader を意味します - この発見の功績は、こちらにあります)。ページ)。これで完了です。このオブジェクトの「パス」要素と「デバイス」要素は、OS ローダーが選択されたときに読み込まれる UEFI ファイルを指定します。

重大な警告:

テストのためだけに上記を実行しないでください。この方法で Uefi をロードすると、Uefi Boot 構成に焼き付けられ、ロード後は Windows を再度起動できなくなる可能性があります (ロードしたアプリが Uefi Boot Cfg をリセットしない限り)。そのため、確信がある場合にのみこれを使用してください。

私はそうしました、そしてその後手動でWindowsの起動を修正する必要がありますUefi ブート設定どちらを使用するのが好ましいですか。

編集: 最初に「HKEY_LOCAL_MACHINE\BCD00000000」を編集するための権限が必要であることを付け加えるのを忘れていましたが、これは簡単です。プロパティをクリックして権限を変更するだけです。

編集: この発見により、Windows BSD を編集する最も強力な (そして、少なくとも私にとっては簡単な) 方法はレジストリを使用することだということが分かりました。私がレジストリを使用して実現した動作は、BCDedit でも BCD WMI でも実行できません。

答え2

EFIは起動前環境です。したがって、EFI 自体は Windows ツールでも、Linux ツールでも、その他の OS レベルのツールでもありません。一部の表現から、EFI が Windows の一部であると考えているように聞こえるため、この点を明確にしておきたいと思います。そうではありません。

このパスは、rEfit\refindEFI ブート プログラムとしては珍しいものです。このようなプログラムは通常、またはのEFIように、ESP 上のディレクトリのサブディレクトリに存在します。このような非標準の場所が問題の原因である可能性は低いですが、その可能性を否定することはできません。したがって、より標準的な場所を使用することが私の最初の提案です。EFI\refindEFI\Microsoft

あなたが示したWindows コマンドの出力についてはあまり詳しくないのでbcdedit、コメントすることはできませんが、Windows からインストールする場合は、rEFInd のインストール手順を確認することをお勧めします。コマンドの 1 つを入力する際に​​誤りを犯した可能性は十分にあります。

それでも問題が解決しない場合は、別の OS から rEFInd をインストールしてみてください。おそらく、Windows と一緒に何か他のものを起動するために rEFInd をインストールしたのでしょう。ほとんどの人にとってそれは Linux であり、Windows ツールが機能しない場合は、Linux から rEFInd をインストールできるはずです。

答え3

すべての efi ブート マネージャー/ローダーは ESP パーティション上に存在する必要があります。NTFS ドライブとしてフォーマットされている可能性のある F: ドライブに refind を配置することはできません。EFI システムは、「ESP」というラベルが付けられ、fat32 としてフォーマットされている特定のパーティション パーティションを検索します。EFI システムには、他のファイル システム用のドライバーはありません。

refind には ext2/4 reiserfs btrfs および iso9660 用のドライバーが含まれていますが、ご覧のとおり、Windows EFI ローダーは \EFI\Microsoft\Boot\bootmgfw.efi にあります。このパーティションは非表示になっているため Windows からは表示できませんが、Linux ライブ (たとえば gparted を使用) で起動すると表示されます。次に、refind を \EFI\refind に配置して、rEFInd ローダーが \EFI\refind\bootx64.efi にあるようにする必要があります。

その後、Windows ローダーからチェーンロードを試みることができますが、システムをデフォルトのローダーとして refind の .efi ファイルにポイントする方がはるかに良いでしょう。これにより、システムがスキャンされ、使用可能な efi/レガシー ブート オプションを表すアイコンが表示されます。私は refind を使用していますが、ラップトップの電源を入れると、Windows 7 アイコン、Windows 8 アイコン、Ubuntu アイコン、Fedora アイコン、および UbuntuStudio アイコンから選択できます。起動可能な USB または DVD が挿入されている場合は、それらのアイコンも表示されます。

デフォルト設定で問題なく動作しますが、簡単にカスタマイズすることもできます。fat32 ESP パーティション以外のパーティションから efi ブートローダーをロードすることはできませんが、refind が ESP パーティションからロードされると、他のパーティションの efi ローダーとレガシー ローダーにアクセスできるようになります。

関連情報