web-dev-qa-db-ja.com

syslinuxチェンロードをefiファイル?

私は、PXE-BootingによるプロビジョニングをRedhat Satellite ServerからWindows展開サーバーと統合しようとしています。

これを行うには、(UEFI)SysLinuxブートローダからWDSに、Linuxカーネルの代わりに別のEFIブートローダー(GRUB2/grubx64.efi)をロードしたいです。 Provisioned Systemがハードディスクに起動ローダをインストールしていないため、これはTFTPを介してロードされます。

それは可能ですか?

バックグラウンド:

理想的な衛星専用設定では、Satellite ServerはDHCPを制御して独自の次のサーバーとファイルオプションを設定するのが好きです。その後、TFTPによってPXEブートローダの1つをロードします。これはカーネルを起動します。衛星サーバーは、DHCPサーバーを操作して正しいブートローダーを設定して(私たちの場合は常に同じ、grub2/grubx64.efi)、そしてGrubが使用する正しいカーネル引数を設定します。

混在環境があり、DHCPは常にsyslinuxブートローダを指します。 syslinuxメニューに何かを追加できますが、syslinuxに代わることはできません。

Naiveソリューションはsyslinuxでカーネルコマンドラインを複製することですが、カーネルコマンドラインがホストごとに異なるため、これは機能しません(MACアドレスが含まれます)。

したがって、syslinuxが代わりにgrub2/grubx64.efiローダーをロードする方法が必要です。これは、プロセスの残りの部分を開始します。

1
Kevin Keane
non-UEFI XXX -> UEFI YYY
 _

これは有効なチェーンロードパスではありません。

レガシーモードで起動されていない非UEFI XXXから、それは、そのコンポーネントが不足しているUEFI環境がRegacyを起動しているため、UEFI YYYコンポーネントにチェーンロードできないことがあります。

編集1:

PCSは今日2つの異なる起動前環境を起動することができます。レガシー(古典的な古いBIOS環境)または新しいUEFI。 PCがBIOS /ファームウェア環境を起動して、必要なものを選択して、PCが起動する環境を設定できます。

PCもネットから起動するように設定されている場合、DORAシーケンスのDHCP検出パケットを使用して、起動前の環境が起動されているPXEサーバーに指示し、DHCPサーバー(PXEが有効になっている)が右側のNBPの提供に応答します。 (ネットワークブートプログラム)以前に宣言された環境に応じてBIOSまたはUEFIのいずれかでなければなりません。 PXEチェーンロードプロセスは多くの場合、ブートマネージャのロードを含み、その後、ブートローダーの両方のコンポーネントはレガシーかUEFIのいずれかでなければなりませんが、それらを混在させることはできません。

2
Pat