Well, you said you'd rebuilt it and that may well be why it doesn't boot so I would recommend going back to the original DVD version of both kernel and initrd.img (they have to match). You can find them in the images/pxeboot/ directory on the CentOS boot media.
When you PXE boot, your network card will contact the DHCP server which then contains a 'next server' that points to your tftp server. It will then search down through $tftproot/pxelinux.cfg/ looking for files that match its MAC address, removing one digit at a time from the righthand end of it until it matches or drops through and uses the pxelinux.cfg/default file if no match is found. So if your MAC address is 123456789abc then it will look for pxelinux.cfg/123456789abc then pxelinux.cfg/1234568789ab then 123456789a, all the way down to "1" and stop on the first match or use the file called "default" if there is no match. Your pxelinux config file then has a menu that tells it the files to retrieve - kernel and initrd.img. It'll pull those over to the target machine and then load the initrd and boot the kernel.
So the error you are getting is one that's usually caused by either the wrong initrd.img being fetched, a failure to fetch it at all, the contents being corrupted or the image it has fetched was larger than the default ram disk size.
You'll want a pxelinux.cfg file that contains entries like this:
Code: Select all
LABEL CentOS 7 x86_64 Kickstart
MENU LABEL CentOS 7.6 x86_64 Kickstart
KERNEL images/centos/x86_64/7.6/vmlinuz
APPEND initrd=images/centos/x86_64/7.6/initrd.img ramdisk_size=100000 ip=dhcp repo=http://192.168.x.y/mirrors/CentOS-7-x86_64/ ks=http://192.168.x.y/mirrors/seven4.ks text