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メニューエントリの方が明らかに望ましいでしょう。
私の知る限りではありません。 UEFI内でcan MBR-partitioned disksを使用している間は、BIOS(MBR)形式のブートローダーを使用できません。 UEFIで準備された環境。したがって、GRUB.efiはそれを開始しようとさえしません。 .efiパスのみを指定する必要があります。
GRUBでやりたいことを行うことはできませんが、少なくともほとんどのUEFIベースのコンピューターでは、少なくとも2つの方法でできます。
refind.conf
ファイルを編集する必要があります。scanfor
行のコメントを解除し、hdbios
はオプションの1つです。 uefi_deep_legacy_scan
オプションのコメントを解除する必要がある場合もありますが、それはファームウェアによって異なります。これにより生成されるオプションが多すぎる場合は、dont_scan_volumes
オプションを使用してリストをトリミングできます。 USBフラッシュドライブバージョンを使用してインストールせずに試すことができますが、そのrefind.conf
ファイルを編集する必要があります。これらのオプションは両方とも、柔軟な互換性サポートモジュール(CSM)を備えたファームウェアに依存することに注意してください。最新のUEFIベースのシステムのほとんどにはそのようなCSMがありますが、いくつかの(ほとんどが古い)実装では、UEFIにCSMを提供するのではなく、実際にBIOS上にUEFIを構築しました。これらの古いシステムはそれほど簡単に切り替えることができません。