PXEから起動したLinuxボックスがあります。実行に使用されるネットワークインタフェースを決定できますか?
答え1
PXELINUXを使用すると仮定する場合。
フラグがありますIPAPPEND
。に設定すると、PXELINUXはカーネルコマンドラインに2
引数を追加します。BOOTIF=<hardware-address-of-boot-interface>
これにより、使用されているインターフェイスを識別するために使用できるMACアドレスがあります。
http://www.syslinux.org/wiki/index.php/SYSLINUX#IPAPPEND_flag_val_.5BPXELINUX_only.5D
答え2
IPAPPEND=2
私は長年PXELINUXを使用してきました。しかし、最近EFI PXEブートに切り替える必要があり、ほとんどの人はPXELINUXよりGRUBを好むようです。
GRUB EFI PXE ブートローダは、ブート$net_default_mac
インターフェイスの MAC アドレスを含む変数を定義します。これを使用してカーネルコマンドラインにMACアドレスを追加できますが、IPAPPEND=2
両方の点でPXELINUXの値とは異なります。
01
ハードウェアタイプのプレフィックスバイト(= Ethernet)は含まれていません。ba:98:76:54:32:10
ダッシュの代わりにコロンを使用してオクテットを区切ります(例01-ba-98-76-54-32-10
:)。
PXELINUX形式を必要とするいくつかのスクリプトがあるので、BOOTIF
GRUB設定にコピーしたいと思います。
残念ながら、GRUBのテキスト操作機能はほとんど存在しないようです。私は使用します正規表現次のようにコマンドします。
set dd="[0-9a-f][0-9a-f]"
regexp --set 1:o1 --set 2:o2 --set 3:o3 --set 4:o4 --set 5:o5 --set 6:o6 \
($dd):($dd):($dd):($dd):($dd):($dd) \
$net_default_mac
set hwaddr="01-$o1-$o2-$o3-$o4-$o5-$o6"
menuentry 'My Linux' --class fedora --class gnu-linux --class gnu --class os {
linuxefi my-kernel-image BOOTIF=$hwaddr
initrdefi my-initramfs.img
}