web-dev-qa-db-ja.com

UEFIモードからのBIOSブートローダーの起動

GRUBを使用してUEFIモードで起動するLinuxセットアップがあります。残念ながらまだGPTまたはUEFIをサポートしていないOpenBSDを試してみたいので、ドライブを従来のMBRテーブルでパーティション化し、インストールCDを使用してそのディスクにOpenBSDをインストールしました。

次に、OpenBSDブートローダーを通常のGRUB方法でチェーンロードしようとします:

menuentry "OpenBSD" {
    insmod part_msdos
    insmod chain
    set root=(hd1,4)
    chainloader +1
}

しかし、「無効なEFIファイルパス」に遭遇しました。

EFIモードで最初に起動した後、BIOSブートローダーをチェーンロードすることは可能ですか?マザーボードのブートメニューで起動するドライブの選択にフォールバックできますが、GRUBメニューエントリの方が明らかに望ましいでしょう。

3
Matt Kline

私の知る限りではありません。 UEFI内でcan MBR-partitioned disksを使用している間は、BIOS(MBR)形式のブートローダーを使用できません。 UEFIで準備された環境。したがって、GRUB.efiはそれを開始しようとさえしません。 .efiパスのみを指定する必要があります。

3
user1686

GRUBでやりたいことを行うことはできませんが、少なくともほとんどのUEFIベースのコンピューターでは、少なくとも2つの方法でできます

  • ファームウェアに組み込まれているブートマネージャーを使用できます。通常、ブートプロセスの早い段階でファンクションキーを介してこれにアクセスします。インストールしたEFIモードブートプログラム(GRUBなど、おそらくディストリビューションにちなんで名付けられたオプションを介して)およびその他のいくつか(外部メディア、ネットワークブート、BIOS/CSM /レガシーのオプションなど)を起動するオプションが表示されます。 -モードブート)。ただし、表示される内容の詳細は、マシンごとに大きく異なります。
  • My rEFInd boot manager。 を使用できます。これをLinuxにインストールしてから、refind.confファイルを編集する必要があります。scanfor行のコメントを解除し、hdbiosはオプションの1つです。 uefi_deep_legacy_scanオプションのコメントを解除する必要がある場合もありますが、それはファームウェアによって異なります。これにより生成されるオプションが多すぎる場合は、dont_scan_volumesオプションを使用してリストをトリミングできます。 USBフラッシュドライブバージョンを使用してインストールせずに試すことができますが、そのrefind.confファイルを編集する必要があります。

これらのオプションは両方とも、柔軟な互換性サポートモジュール(CSM)を備えたファームウェアに依存することに注意してください。最新のUEFIベースのシステムのほとんどにはそのようなCSMがありますが、いくつかの(ほとんどが古い)実装では、UEFIにCSMを提供するのではなく、実際にBIOS上にUEFIを構築しました。これらの古いシステムはそれほど簡単に切り替えることができません。

4
Rod Smith