web-dev-qa-db-ja.com

カスタムの次のサーバーとファイル名でQEMU / LibvirtのiPXE UEFIブート可能イメージを作成する

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番目のサーバーにリダイレクトしないかのようです。

2
djuarez

少なくともDebianでは、iPXE ROM qemuが使用するイメージは/usr/lib/ipxe/usr/lib/ipxe/qemuにあります。どちらの仮想NIC VMで使用しています。

iPXEソースコードをダウンロードしてください コードを変更し、ROMイメージをビルドして、標準イメージをカスタマイズしたイメージに置き換えます。

2
telcoM