Configurar PXE (instalacion por red)


Hola Amigos aquí os dejo un pequeño How to para la instalación por red

Necesitamos instalar tres pequeñas aplicaciones

tftpd-hpa, dhcp-server, y nfs-kernel-server

NOTA:La instalación de estos paquetes dependerá de la distribución que uses

configuramos nuestro DHCP- server para que nos de una IP automaticamente y nos capture pxelinux.0



vim /etc/dhcp3/dhcpd.conf

# Archvio para el uso de DHCP

subnet 192.168.0.0 netmask 255.255.255.0 {

ddns-update-style none;

# El servidor tftp, por supuesto eso varía según su configuración y topología.

next-server 192.168.0.1;

# Rango de direcciones que atenderé con este servidor

range 192.168.0.250 192.168.0.254;

option domain-name-servers 200.63.206.1;

# Como estoy usando NAT mando la ruta por defecto.

option routers 192.168.0.1;

# El archivo que manda enseguida para no tener que esperar tanto tiempo.

filename="pxelinux.0";

}

configuramos nuestro server tftp

Por defecto tftp-hpa3 quiere arrancar con inetd, pero nosotros lo
configuramos par que arranque como demonio y lo configuremos así:

dpkg-reconfigure tftp-hpa

y editamos el siguiente archivo y lo dejamos así: /etc/default/tftpd-hpa:



RUN_DAEMON=”yes”

# La ruta donde descansan nuestros archivos

OPTIONS=”-l -s /var/lib/tftpboot”

Ahora configuremos nfs para que las maquinas puedan acceder a los directorios donde están montadas las isos

primero montamos la iso



mount -o loop /home/palichis/distros/debianETCH.iso /home/palichis/debian

ahora editamos /etc/exports que es donde ponemos los directorios a compartir por nfs



/home/palichis/debian 192.168.0.0/255.255.255.0(ro,no_root_squash,sync)

A continuación nos descargaremos netboot

y descomprimiremos el contenido en /var/lib/tftpboot



tar xjf netboot.tar.gz -C /var/lib/tftpboot

Ahora copiamos initrd.gz y vmlinuz de la carpeta casper de nuestra iso montada



cp /home/palichis/debian/casper/initrd.gz /var/lib/tftpboot/solidinitrd.gz

cp /home/palichis/debian/casper/vmlinux /var/lib/tftpboot/solidvmlinux

Ahora tenemos que hacer un pequeño cambio en la imagen initrd.gz para que nos pueda bootear por red



mkdir /var/lib/tftpboot/initrd

cd /var/lib/tftpboot/initrd

gzip -dc /home/palichis/debian/casper/initrd.gz | cpio -i

vim /var/lib/tftpboot/initrd/scripts/casper

aqui buscamos la función do_netmount() y cambiamos:

DE



if [ "${NFSROOT}" = "auto" ]; then

NFSROOT=${ROOTSERVER}:${ROOTPATH}

fi



POR



if [ "${NFSROOT}" = "auto" ]; then

ROOTSERVER="192.168.0.1"

ROOTPATH="/home/palichis/debian"

NFSROOT=${ROOTSERVER}:${ROOTPATH}

fi

guardamos y salimos

Luego de esto para crear una nueva imagen con los nuevos datos hacemos



find ./ | cpio -H newc -o > solidinitrd

gzip solidinitrd.gz

tenemos nuestra nueva imagen creada y lo que haremos es copiar de
/var/lib/tftpboot/initrd a /var/lib/tftpboot/ reemplazando al initrd.gz
anterior

ahora vamos a modificar nuestro boot para que arranque con los parámetros solicitados

vim /var/lib/tftpboot/pxelinux.cfg/default



DISPLAY ubuntu-installer/i386/boot-screens/boot.txt

F1 boot-screens/f1.txt

F2 boot-screens/f2.txt

DEFAULT install

LABEL install

kernel vmlinuz
append boot=casper
initrd=solidinitrd.gz ramdisk_size=148576 netboot=nfs
nfsdir=192.168.0.1:/var/lib/tftpboot/ubuntu-installer/xubuntu
root=/dev/ram rw quiet splash --

PROMPT 1

TIMEOUT 10

y por último vamos a reiniciar los servicios instalados al inicio



/etc/init.d/dhcp3-server restart

/etc/init.d/nfs-kernel-server restart

/etc/init.d/tftpd-hpa restart