iPXE discussion forum
imgargs (ipappend 2 for red hat kickstart) - Printable Version

+- iPXE discussion forum (https://forum.ipxe.org)
+-- Forum: iPXE user forums (/forumdisplay.php?fid=1)
+--- Forum: General (/forumdisplay.php?fid=2)
+--- Thread: imgargs (ipappend 2 for red hat kickstart) (/showthread.php?tid=5445)



imgargs (ipappend 2 for red hat kickstart) - Torgeir - 2012-09-18 10:55

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


RE: imgargs (ipappend 2 for red hat kickstart) - mcb30 - 2012-09-18 11:06

(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


RE: imgargs (ipappend 2 for red hat kickstart) - Torgeir - 2012-09-18 11:47

(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


RE: imgargs (ipappend 2 for red hat kickstart) - mcb30 - 2012-09-18 12:59

(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