iPXE discussion forum

Full Version: imgargs (ipappend 2 for red hat kickstart)
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi!

Newer Red Hat kickstart installations need a config like this:

kernel vmlinuz
ipappend 2
append initrd=initrd.img ks=http://server-ip/kickstart.file.ks network ksdevice=boofit

Is there anyway to make this work in iPXE?

I have tried to just insert ipappend 2 in imgargs, but that just wont work. I can skip it, and use ksdevice=eth0, but what about our users that have multiple nics in their machines?

Any ideas?

Torgeir
(2012-09-18 10:55)Torgeir Wrote: [ -> ]Newer Red Hat kickstart installations need a config like this:

kernel vmlinuz
ipappend 2
append initrd=initrd.img ks=http://server-ip/kickstart.file.ks network ksdevice=boofit

Is there anyway to make this work in iPXE?

I have tried to just insert ipappend 2 in imgargs, but that just wont work. I can skip it, and use ksdevice=eth0, but what about our users that have multiple nics in their machines?

According to http://www.syslinux.org/wiki/index.php/SYSLINUX, the "IPAPPEND 2" will cause PXELINUX to add the text "BOOTIF=<hardware-address-of-boot-interface>" to the kernel command line. You can replicate this behaviour in iPXE by expanding the ${netX/mac} variable. For example:

Code:
#!ipxe
kernel vmlinuz ks=http://server-ip/kickstart.file.ks network ksdevice=bootif BOOTIF=${netX/mac}
initrd initrd.img
boot

Michael
(2012-09-18 11:06)mcb30 Wrote: [ -> ]
(2012-09-18 10:55)Torgeir Wrote: [ -> ]Newer Red Hat kickstart installations need a config like this:

kernel vmlinuz
ipappend 2
append initrd=initrd.img ks=http://server-ip/kickstart.file.ks network ksdevice=bootif

Is there anyway to make this work in iPXE?

I have tried to just insert ipappend 2 in imgargs, but that just wont work. I can skip it, and use ksdevice=eth0, but what about our users that have multiple nics in their machines?

According to http://www.syslinux.org/wiki/index.php/SYSLINUX, the "IPAPPEND 2" will cause PXELINUX to add the text "BOOTIF=<hardware-address-of-boot-interface>" to the kernel command line. You can replicate this behaviour in iPXE by expanding the ${netX/mac} variable. For example:

Code:
#!ipxe
kernel vmlinuz ks=http://server-ip/kickstart.file.ks network ksdevice=bootif BOOTIF=${netX/mac}
initrd initrd.img
boot

Michael

If I use pxelinux with a label like this (it works as intended):

Code:
label linux
kernel vmlinuz
ipappend 2
append initrd=initrd.img ks=http://server-ip/kickstart.file.ks network ksdevice=boofit

However inside iPXE using imgargs I can't get it past networkmanager (waiting for input eth0/wlan0, testing on a laptop).

Only way with imgargs is if I set ksdevice=eth0. Is it possible inside iPXE to determine if net0 is eth0/eth1, or do I have to get ksdevice=booif bootif=MAC working?
Is net0 the booting NIC?

Torgeir
Got it working when I used 01-MACADDRESS. Checked cat /proc/cmdline on the one from pxelinux.

Code:
#!ipxe
kernel vmlinuz ks=http://server-ip/kickstart.file.ks network ksdevice=bootif BOOTIF=01-${netX/mac}
initrd initrd.img
boot

Torgeir
(2012-09-18 11:47)Torgeir Wrote: [ -> ]Got it working when I used 01-MACADDRESS. Checked cat /proc/cmdline on the one from pxelinux.

Code:
#!ipxe
kernel vmlinuz ks=http://server-ip/kickstart.file.ks network ksdevice=bootif BOOTIF=01-${netX/mac}
initrd initrd.img
boot

Great; thanks for letting us know what worked!

Michael
Reference URL's