I have my server setup for PXE boot and then in the menu select "linux" to install the OS. How ever when I enter linux and hit enter I get an error "Could not find kernel image: linux". I have googled and tried a few things but nothing has worked so far.
you need to setup your DHCP server to do the PXE boot. that's how it's going to know where to find the boot loader.
with ISC DHCP, this is a sample config from my DHCP/PXE setup:
Code:
pool {
allow members of "virtual-machine-class-1";
allow members of "virtual-machine-class-2";
allow members of "virtual-machine-class-3";
allow members of "real-machine-class-1";
allow members of "real-machine-class-2";
allow members of "real-machine-class-3";
allow members of "real-machine-class-4";
allow members of "real-machine-class-5";
allow members of "real-machine-class-6";
allow members of "real-machine-class-7";
deny known-clients;
range dynamic-bootp 192.168.0.112 192.168.0.126;
next-server pxeboot.domain.org; # name of TFTP server
filename "pxelinux.0"; # name of bootloader program
}
i setup groups of machines that are allowed to PXE boot, while others are not. machines that are members of these groups can PXE boot, and get pointed to "next-server", and "filename" which is the boot loader (this is done over TFTP) You can then configure the boot loader to load any other kernel image.
as an example, here's my pxelinux setup default menu:
Code:
prompt 1
timeout 0
display pxelinux.cfg/boot.msg
F1 pxelinux.cfg/boot.msg
F2 pxelinux.cfg/f2-centos7-i.msg
F3 pxelinux.cfg/f3-centos7-k.msg
F4 pxelinux.cfg/f4-rhel7-i.msg
F5 pxelinux.cfg/f5-rhel7-k.msg
F6 pxelinux.cfg/f6-centos6-i.msg
F7 pxelinux.cfg/f7-centos6-k.msg
F8 pxelinux.cfg/f8-rhel6-i.msg
F9 pxelinux.cfg/f9-rhel6-k.msg
F10 pxelinux.cfg/f10-fedora-i.msg
F11 pxelinux.cfg/f11-special.msg
INCLUDE pxelinux.cfg/f2-centos7-i.cfg
INCLUDE pxelinux.cfg/f3-centos7-k.cfg
INCLUDE pxelinux.cfg/f4-rhel7-i.cfg
INCLUDE pxelinux.cfg/f5-rhel7-k.cfg
INCLUDE pxelinux.cfg/f6-centos6-i.cfg
INCLUDE pxelinux.cfg/f7-centos6-k.cfg
INCLUDE pxelinux.cfg/f8-rhel6-i.cfg
INCLUDE pxelinux.cfg/f9-rhel6-k.cfg
INCLUDE pxelinux.cfg/f10-fedora-i.cfg
INCLUDE pxelinux.cfg/f11-special.cfg
it points to a bunch of other config files that have specific settings for various OSes, kickstart profiles, or manual installs. The "-i" are interactive installs, while the "-k" are my kickstart profiles.
Here's one example of that:
Code:
#
# CentOS 7
#
label C-7-x86_64
kernel pxelinux.cfg/iso/centos-7-x86_64/images/pxeboot/vmlinuz
append initrd=pxelinux.cfg/iso/centos-7-x86_64/images/pxeboot/initrd.img repo=http://server.domain.com/distros/centos-7-x86_64/ noipv6 ip=dhcp ramdisk_size=9216
label C-7-x86_64-rescue
kernel pxelinux.cfg/iso/centos-7-x86_64/images/pxeboot/vmlinuz
append initrd=pxelinux.cfg/iso/centos-7-x86_64/images/pxeboot/initrd.img repo=http://server.domain.com/distros/centos-7-x86_64/ noipv6 ip=dhcp ramdisk_size=9216 text rescue
here, i'm pointing it to the kernel and initrd over TFTP as before, and i'm giving it a repo via HTTP (so you need webserver setup too), but you can use other protocols as well.
Anyway TL;DR is you need to setup your DHCP, TFTP, and pxelinux to PXE boot and point to a kernel image (and you might need to setup web server or NFS too).