Bueno, después de hacer una prueba, me he decidido a escribir un pequeño guión de como he hecho la prueba.
Algunas de las configuraciones las he sacado de la web de zytor.
Para la prueba he utilizado dos máquinas virtuales utilizando “VirtualBox” y un CentOS 5.3.
Primero he hecho una instalación con lo mínimo.

Para ello hay que quitar todas las selecciones de los paquetes.

Al final quedan unos 150 paquetes instalados. A esos añadimos “syslinux”, “dnsmasq” y “httpd”. Además instalar los paquetes “tftp” y “tcpdump”, para hacer algunas comprobaciones.
Para la prueba que me ocupa, paro el servicio “iptables” con el comando “service iptables stop” y deshabilito la seguridad con el comando “system-config-securitylevel-tui”

Lo siguiente es la configuración del dnsmasq, dejamos el fichero “/etc/dnsmasq.conf” con:

no-resolv
dhcp-range=192.168.100.88,192.168.100.99,12h
dhcp-boot=pxelinux.0
enable-tftp
tftp-root=/var/ftpd
conf-dir=/etc/dnsmasq.d
Creo el directorio /var/ftpd y arranco el servicio “dnsmasq”.
Copio el fichero pxelinux.0 al directorio /var/ftpd y creo la estructura con los ficheros necesarios. Al final queda así:
/var/ftpd/menu.c32
/var/ftpd/pxelinux.0
/var/ftpd/img/initrd-centos53-x86.img
/var/ftpd/img/vmlinuz-centos53-x86
/var/ftpd/pxelinux.cfg/default
Los ficheros menu.c32 , pxelinux.0 , vmlinuz-centos53-x86 y initrd-centos53-x86.img los he copiado del paquete syslinux y del cd de la instalación
Los comandos para las copias son:
cp /usr/lib/syslinux/menu.c32 /var/ftpd/
cp /usr/lib/syslinux/pxelinux.0 /var/ftpd/
mkdir /var/ftpd/img
cp /media/cdrom/isolinux/initrd.img /var/ftpd/img/initrd-centos53-x86.img
cp /media/cdrom/isolinux/vmlinuz /var/ftpd/img/vmlinuz-centos53-x86
mkdir /var/ftpd/pxelinux.cfg/
El fichero “/var/ftpd/pxelinux.cfg/default” contiene:
# Default boot option to use
DEFAULT menu.c32
# Prompt user for selection
PROMPT 0
# Menu Configuration
MENU WIDTH 80
MENU MARGIN 10
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU TIMEOUTROW 20
MENU TITLE Main Menu
# Menus
## centos
LABEL CentOS-5.3
MENU LABEL ^CentOS-5.3
KERNEL img/vmlinuz-centos53-x86
APPEND initrd=img/initrd-centos53-x86.img
LABEL BootLocal
MENU LABEL ^Boot Local Disk
MENU default
localboot 0
Creo el directorio “/var/www/html/cdrom” y monto ahí el CD de la instalación.
Primero desmonto el CD con “umount /dev/cdrom” y luego monto el CD en el directorio que tendrá acceso por HTTP para la instalación . Ejecuto “mount /dev/cdrom /var/www/html/cdrom”.
Arranco el servicio httpd con “service httpd start”.
Creo otra máquina virtual y le indico que arranque desde la red.

Si todo va bien, debe aparecer el menú creado

Escogemos la opción de arranque de CentOS-5.3 y esperamos a que cargue.
Le tenemos que decir que vamos a instalar por HTTP y le diremos la ip de nuestra máquina y como directorio “/cdrom” que es donde hemos montado el CD con la instalación.