When the Rhel/Centos 7 operating systems moved forward to systemd, network device name configuration changed to predictable network device names

There is an explanation for systemd's predictable netwrk device names at https://github.com/systemd/systemd/blob/master/src/udev/udev-builtin-net_id.c#L20e

After controlled installation, my network interface is named as enp0s3

en=Ethernet p=bus and s=slot — PCI geographical location

since this is a remote server, how can i identify p and s values for kickstart file?


1 Answer 1


One method is to use the traditional eth0 naming scheme. This suits single network interface servers very well. This method may not be a good idea for laptops or systems with many or dynamic network interfaces in which case you will need to deal with that complexity, somehow. In particular, the ksdevice=eth0 net.ifnames=0 biosdevname=0 options should make the server use eth0, and indicate to KickStart that eth0 is the device, for example in an EFI grub configuration:

menuentry "centos7" {
        linuxefi /centos7/vmlinuz ks=.../ks/c7 ksdevice=eth0 net.ifnames=0 biosdevname=0
        initrdefi /centos7/initrd.img

an older pxelinux.cfg file might instead contain something like

label centos7
         kernel centos7/vmlinuz
         append initrd=centos7/initrd.img ks=.../ks/c7 ksdevice=eth0 net.ifnames=0 biosdevname=0

Then in the KickStart configuration file .../ks/c7 you may need to include or generate appropriate configuration for the system, e.g.

bootloader --location=mbr --append="net.ifnames=0 biosdevname=0"
network --device=eth0 --bootproto=dhcp --ipv6=auto
  • This can cause problems later down the line, e.g. flipping mac addresses upon reboot, because the old naming scheme is becoming less and less supported. Aug 27, 2021 at 19:29

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .