BIOSベースのシステムを使用してPXEboot環境(Foremanベース)を正常に設定しました。デフォルトのBIOSサブシステムを使用して、virtualboxでも同じことを実行できます。
UEFIが普及し始め、UEFIベースのシステムをPXEBootしたいと思いました。
Virtualboxに「EFIを有効にする」設定があり、
TFTPgrubx64.efi
サーバーとProxyDHCPがそれらをオプションとして送信する準備ができていることを確認しました。
ただし、EFI対応のVMを起動した後、いくつかのBLK *:デバイスが一覧表示されている場所に奇妙なシェルが表示されます。それはすべてです...
このシェルを使用してTFTPから起動ファイルを要求するにはどうすればよいですか(DHCPフローは表示されません)?
私は編集に関するいくつかのヒントを見つけましたが、私のデバイスstartup.nsh
にはそのファイルがありません。BLK
答え1
以下はVirtualbox 6.1を使って私に効果的でした。コンピュータの設定で、次の操作を行います。
- 「システム - > EFIを有効にする」
- 「ネットワーク->アドバンス->アダプタのタイプ:半仮想化ネットワーク(virtio-net)」。
これにより、デフォルトでUEFIシェルから起動します。入力exit
するとBoot Manager
メニューが出ます。そのメニューからUEFI PXEv4
スタートアップマネージャを選択すると、次の新しい画面が表示されます。
>>Start PXE over IPv4.
その後、grub.cfgで起動します。 PXEを介して仮想マシンを自動的に起動するには、起動メニューに入り、起動順序を変更する必要があります。
これを見るには、アダプタをUEFI PXEv4
具体的に選択する必要がありました。Paravirtualized Network
その他は動作しません。
答え2
この問題を解決しました。実際、それは2つの質問で構成されています。
- VirtualBoxは、EFIが有効になっているとPXEBootingをサポートしません。
- ベアメタルを使用すると、DHCP要求が送信されていますが、ProxyDHCP「接続」応答が処理されていません(EFI PXEBootに失敗しました)が表示されます。これは次のようなことがわかりました。問題DNS- EFIをサポートする最小バージョンは2.76です。
答え3
私は簡単にしました。https://github.com/windli2018/virtualbox-efi-netboot。これがまだ必要な人に役立つことを願っています。起動ipxeを含むefi起動iOSイメージのみです。