web-dev-qa-db-ja.com

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

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

現時点では、 rEFInd ブートローダーを統合しようとしています。ファームウェアを使用してUSBフラッシュドライブから起動できるため、UEFIイメージが機能していると言えます。ただし、Windows Boot Managerを使用すると、上記で説明したのと同じ結果が得られます(エラーコード0xC000007B)。現在、私のBCD構成は(写真)です。

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

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

注:UEFI Windowsでの起動が許可されているのはUEFIイメージ(.efiファイル)のみであり、UEFI以外のイメージ(ntldrbootmgrなど)の形式もどのようなものか疑問に思います。 )?

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

1
Nemo759

1年後、私は再び同じ問題に遭遇しました。幸いなことに、今回は解決策を見つけました。 Windows以外のUEFIイメージをロードするOsLoaderをWindowsBoot-Managerに追加するには、BCDレジストリを手動で編集する必要があります。 RegEditには、「HKEY_LOCAL_MACHINE\BCD00000000」という名前のキーがあります。これは、Windows EFI System-Partitionからロードされ、そのサブキーを編集すると、BSDファイルが直接編集されます。その下に「Description」という名前のキーがありますが、「Objects」という名前のもう1つのキーに焦点を当てます。その下で、新しいオブジェクトを作成する(または既存のオブジェクトを変更する)必要があります。次に、target-object-GUID-nameの下で、「Description」タイプの値を「0x10100003」に編集する必要があります(つまり、ファームウェアアプリケーションのosloader-この検索のクレジットはこれに移動します ページ )。これで、このオブジェクトの「path」要素と「device」要素は、OSローダーが選択されたときにロードされるUEFIファイルを指定します。

大きな警告:

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

そうしたら、 efi Boot Cfg を使用してWindowsの起動を手動で修正する必要があります。どちらを使用することをお勧めします。

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

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

3
Nemo759

EFIは起動前環境です。そのため、EFI自体はWindowsツール、Linuxツール、またはその他のOSレベルのツールではありません。あなたのフレーズのいくつかは、EFIがWindowsの一部であると思うように聞こえるので、これを明確にしたいと思います。そうではありません。

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

私はあなたが示したWindowsbcdeditコマンドの出力にあまり精通していないので、コメントすることはできません。ただし、WindowsからインストールするためのrEFIndのインストール手順を確認することをお勧めします。コマンドの1つを入力するのを間違えた可能性は十分にあります。

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

1
Rod Smith

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

refindにはext2/4 reiserfs btrfsおよびiso9660のドライバーが含まれていますが、ご覧のとおり、WindowsのEFIローダーは\ EFI\Microsoft\Boot\bootmgfw.efiにあります。このパーティションは非表示になっているため、Windowsからは表示できませんが、Linux Live(たとえば、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ブートローダーをロードすることはできませんが、ESPパーティションから再検索がロードされると、他のパーティションのローダーefiおよびレガシーローダーにアクセスできます。

0
b907