VMを作成してlibvirt/qemuでUEFIモードで起動します。デフォルトでiPXEを実行することはわかっていますが、filename
およびnext-server
プロパティ。
どうすればそのようなことができますか?
[〜#〜]編集[〜#〜]:
私は以下を試しました:
git clone git://git.ipxe.org/ipxe.git
Ipxe/srcディレクトリにiPXEスクリプトを作成します。
ファイルipxe/src/chain.ipxeの内容:
#!ipxe
Prompt --key 0x02 --timeout 2000 Press Ctrl-B for the iPXE command line... && Shell ||
dhcp
set net0/filename /pxeserver/loader/uefi/bootx64.efi.0
set net0/next-server <IP>
show net0/filename
show net0/next-server
autoboot
埋め込みスクリプトを使用してイメージをビルドします。
make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe
イメージを作成します。
truncate -s 3MiB usb.img
mkfs.vfat usb.img
mmd -i usb.img "::/efi"
mmd -i usb.img "::/efi/boot"
mcopy -i usb.img bin-x86_64-efi/ipxe.efi "::/efi/boot/bootx64.efi"
次に、VMこのusb.imgを指定してVMストレージデバイスに指定します。それはiPXEを起動し、filename
およびnext-server
オーバーライドし、DHCPを介してIPを取得し、サーバーからの起動を試み、対応するブートローダーを取得し、次にgrub
構成をダウンロードしようとしないように、GRUBシェルを起動します。 next-server
(ログを再確認します。bootx64.efi.0
ファイルではなくgrub.cfg
ファイルのみをログに記録します。まるで、PXEブートを2番目のサーバーにリダイレクトしないかのようです。
少なくともDebianでは、iPXE ROM qemuが使用するイメージは/usr/lib/ipxe
と/usr/lib/ipxe/qemu
にあります。どちらの仮想NIC VMで使用しています。
iPXEソースコードをダウンロードしてください コードを変更し、ROMイメージをビルドして、標準イメージをカスタマイズしたイメージに置き換えます。