Kickstart servers with multiple network interfaces

I attempted to kickstart a server this week with multiple network interfaces, and received an anaconda error stating that it couldn’t find the kickstart configuration file. After a bit of debugging, I noticed that the host kickstarted from one of the interfaces on PCI bus 2, but Anaconda was attempting to use the interface on PCI bus 0. This made sense, since I PXE booted from the one NIC that had link, but anaconda discovered and tried to use all of the installed interfaces. To get around this issue, you can modify the ksdevice= variable a couple of ways:

1. Add the MAC address of the NIC to kickstart from: ksdevice=DE:AD:BE:EF:CA:FE

2. Use the “link” keyword to tell kickstart to use the interface that has a link status of UP: ksdevice=link

3. Use the “bootif” keyword to tell kickstart to use the boot interface: ksdevice=bootif

Due to a bug, option number 3 didn’t work. Since only one of the three NICs connected to the server had link, I ended up using option #2 to install my servers. This worked pretty well, and with a bit of custom logic in my kickstart %post section, unattended installs are now working awesome!

3 Comments

Eugene  on June 13th, 2009

Hi Matt! which version of RHEL were you installing? Thanks!

Ton  on January 7th, 2011

Thank you, I was trying to find this out the hard way/

Brian  on February 2nd, 2011

Another option is to call the device but sometimes linux swaps interfaces so this may not always work.

linux ks=http:server/kickstart.cfg ksdevice=eth0 ip=ipaddress netmask=your.netmask gateway=your.gateway dns=your.dns
and if you dont want to use ipv6 just add noipv6 to the end of you ks line.

Leave a Comment