Sunteți pe pagina 1din 4

Servidor PXE de Instalaciones GNU/Linux

Segn Wikipedia, PXE hace referencia al entorno de ejecucin de prearranque (Preboot eXecution
Environment). Es un entorno para arrancar e instalar el sistema operativo en ordenadores a travs
de una red, de manera independiente de los dispositivos de almacenamiento de datos disponibles
(como discos duros) o de los sistemas operativos instalados.
PXE fue introducido como parte del framework Wired for Management por Intel y fue descrito en la
especificacin (version 2.1) publicada por Intel y Systemsoft el 20 de septiembre de 1999. PXE
utiliza varios protocolos de red como IP, UDP, DHCP y TFTP, y conceptos como Globally Unique
Identifier (GUID), Universally Unique Identifier (UUID) y Universal Network Device Interface
(UNDI).
El trmino cliente PXE slo se refiere al papel que la mquina juega en el proceso de arranque
mediante PXE. Un cliente PXE puede ser un servidor, un ordenador de mesa, porttil o cualquier
otra mquina que est equipada con cdigo de arranque PXE.
El firmware del cliente trata de encontrar un servicio de redireccin PXE en la red para recabar
informacin sobre los servidores de arranque PXE disponibles. Tras analizar la respuesta, el
firmware solicitar al servidor de arranque apropiado el file path de un network bootstrap program
(NBP), lo descargar en la memoria RAM del ordenador mediante TFTP, probablemente lo
verificar, y finalmente lo ejecutar. Si se utiliza un nico NBP para todos los clientes PXE se
puede especificar mediante BOOTP sin necesidad de un proxy DHCP, pero an ser necesario un
servidor TFTP.
Nota importante: Se que las distros estn bastante atrasadas. Tambin se que existe gPXE, el
cual ayuda a hacer este trabajo aun ms fcil. Pero la intencin de esta gua es proporcionar una
base de conocimiento til y un panorama de cmo funcionan las cosas.
Al final este tutorial nos brindar un Servidor desde el cual podemos instalar en cuestin de
minutos las distintas distribuciones de GNU/Linux que se muestran va PXE (arranque por red) en
el nmero de computadoras que haya en nuestra red local.

Manos a la obra...
Descargar los ISOs de las distribuciones
# mkdir p
/media/iso/
# cd /media/iso/
# wget http://download.fedoraproject.org/pub/fedora/linux/releases/15/Fedora/i386/iso/Fedora15i386DVD.iso
# wget http://mirror.anl.gov/pub/ubuntuiso/DVDs/ubuntu/10.10/release/ubuntu10.10dvdi386.iso
# wget ftp://mirror.stanford.edu/pub/mirrors/centos/6.0/isos/i386/CentOS6.0i386binDVD.iso
# wget http://opensuse.mirror.netriplex.com/distribution/11.4/iso/openSUSE11.4DVDi586.iso
# wget http://linuxfreedom.com/linuxmint/linuxmint.com/stable/11/linuxmint11gnomedvd32bit.iso
# wget http://cdnetworksus1.dl.sourceforge.net/project/systemrescuecd/sysresccdx86/2.2.1/systemrescuecdx862.2.1.iso
# wget http://free.nchc.org.tw/clonezillalive/oldstable/clonezillalive1.2.214.iso

Luego de completadas las descargas, renombramos los ISOs para manejar nombres simples
# mv Fedora15i386DVD.iso fedora.iso
# mv ubuntu10.10dvdi386.iso ubuntu.iso
# mv CentOS6.0i386binDVD.iso centos.iso
# mv openSUSE11.4DVDi586.iso opensuse.iso
# mv linuxmint11gnomedvd32bit.iso linuxmint.iso
# mv systemrescuecdx862.2.1.iso sysrescue.iso
# mv clonezillalive1.2.214.iso clonezilla.iso

Instalar y configurar los servicios


# yum install dhcp vsftpd tftpserver
# nano /etc/dhcpd.conf
ddnsupdatestyle interim;
not authoritative;
option domainnameservers 8.8.8.8;
option subnetmask 255.255.255.0;
subnet 10.42.43.0 netmask 255.255.255.0
{
authoritative;
range 10.42.43.50 10.42.43.100;
allow unknownclients;
allow booting;
allow bootp;
nextserver
10.42.43.1;
filename "pxelinux.0";
}
Nota: La tarjeta de red por medio de la cual se van a conectar los clientes debe tener la direccin 10.42.43.1, para el correcto
funcionamiento del servicio DHCP.

Configuramos TFTP en XINET


# nano /etc/xinetd.d/tftp

Buscamos la lnea: disable=yes, y la ponemos as:


disable=no

Editamos el fichero /etc/exports que le pertenece a NFS y aadimos lo siguiente:


# nano /etc/exports
/var/ftp/ubuntu 10.42.43.0/24(rw,sync)
/var/ftp/clonezilla 10.42.43.0/24(rw,sync)
/var/ftp/sysrescue 10.42.43.0/24(rw,sync)
/var/ftp/linuxmint 10.42.43.0/24(rw,sync)

Editamos el fichero /etc/fstab que le pertenece a mountd y aadimos lo siguiente:


# nano /etc/fstab
/media/iso/fedora.iso /var/ftp/fedora/ udf,iso9660 user,auto,loop 0 0
/media/iso/centos.iso /var/ftp/centos/ udf,iso9660 user,auto,loop 0 0
/media/iso/ubuntu.iso /var/ftp/ubuntu/ udf,iso9660 user,auto,loop 0 0
/media/iso/linuxmint.iso /var/ftp/linuxmint/ udf,iso9660 user,auto,loop 0 0
/media/iso/clonezilla.iso /var/ftp/clonezilla/ udf,iso9660 user,auto,loop 0 0
/media/iso/sysrescue.iso /var/ftp/sysrescue/ udf,iso9660 user,auto,loop 0 0
/media/iso/opensuse.iso /var/ftp/opensuse/ udf,iso9660 user,auto,loop 0 0

Creamos los directorios necesarios y montamos los ISOs


Directorios donde se van a montar los ISOs
# mkdir p
/var/ftp/centos/
# mkdir p
/var/ftp/fedora/
# mkdir p
/var/ftp/ubuntu/
# mkdir p
/var/ftp/linuxmint/
# mkdir p
/var/ftp/clonezilla/
# mkdir p
/var/ftp/sysrescue/
# mkdir p
/var/ftp/opensuse/
# mount a

Directorios donde estar la configuracin PXE


# mkdir p
/tftpboot/images/
# mkdir p
/tftpboot/images/ubuntu/
# mkdir p
/tftpboot/images/linuxmint/
# mkdir p
/tftpboot/images/fedora/
# mkdir p
/tftpboot/images/centos/
# mkdir p
/tftpboot/images/systemrescuecd/
# mkdir p
/tftpboot/images/clonezilla/
# mkdir p
/tftpboot/images/opensuse/
# mkdir p
/tftpboot/pxelinux.cfg/

De cada distro debemos copiar su initrd y su kernel (vmlinuz*) y pegarlos en el directorio de cada distro
ubicado en el rbol /tftpboot/images. En el caso de SystemRescueCD el kernel se llama rescuecd y no
vmlinuz*, y en el caso de openSUSE el kernel se llama linux.

Copiamos tambin los siguientes ficheros a /tftpboot/


# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
# cp /usr/lib/syslinux/menu.c32 /tftpboot/

Crear y editar el archivo de configuracin del men PXE


# nano /tftpboot/pxelinux.cfg/default
DEFAULT menu.c32
MENU TITLE fraterneo's GNU/Linux PXE Server
PROMPT 0
TIMEOUT 150
LABEL SystemRescueCD 2.2.0 (Live CD)
KERNEL images/sysrescue/rescuecd
APPEND initrd=images/sysrescue/initram.igz netboot=nfs://10.42.43.1:/var/ftp/sysrescue/ setkmap=es scandelay=1 docache
vga=791 ramdisk_size=32768
LABEL Clonezilla 1.2.214
(Live CD)
KERNEL images/clonezilla/vmlinuz1
APPEND initrd=images/clonezilla/initrd1.img boot=live union=aufs netboot=nfs nfsroot=10.42.43.1:/var/ftp/clonezilla/
vga=791 ramdisk_size=32768
LABEL CentOS 6 (Install DVDi386)
KERNEL images/centos/vmlinuz
APPEND initrd=images/centos/initrd.img ip=dhcp method=ftp://10.42.43.1/centos/ vga=791 ramdisk_size=32768
LABEL Fedora 15 (Install DVDi386)
KERNEL images/fedora/vmlinuz
APPEND initrd=images/fedora/initrd.img ip=dhcp method=ftp://10.42.43.1/fedora/ vga=791 ramdisk_size=32768
LABEL Ubuntu 10.10 (LiveInstall
DVDi386)
KERNEL images/ubuntu/vmlinuz
APPEND initrd=images/ubuntu/initrd.lz boot=casper onlyubiquity
netboot=nfs nfsroot=10.42.43.1:/var/ftp/ubuntu/
vga=791 ramdisk_size=32768
LABEL LinuxMint 11 (LiveInstall
DVDi386)
KERNEL images/linuxmint/vmlinuz
APPEND initrd=images/linuxmint/initrd.lz boot=casper netboot=nfs nfsroot=10.42.43.1:/var/ftp/linuxmint/ vga=791
ramdisk_size=32768
LABEL openSUSE 11.4 (Install DVDi386)
KERNEL images/opensuse/linux
APPEND initrd=images/opensuse/initrd root=/dev/ram0 load_ramdisk=1 splash=silent showopts vga=791 ramdisk_size=4096
install=ftp://10.42.43.1/opensuse/

Luego de esto le damos todos los permisos a todo el rbol /tftpboot


# chmod R
777 /tftpboot/

Reiniciamos los servicios correspondientes


# service vsftpd restart
# service xinetd restart
# service nfs restart
# service dhcpd restart

Opcional: Establecemos que los servicios se inicien automticamente durante el arranque del
sistema.
# chkconfig vsftpd level 345 on
# chkconfig xinetd level 345 on
# chkconfig nfs level 345 on
# chkconfig dhcpd level 345 on

NOTA IMPORTANTE: Recordar que para inicializar el DHCPD es necesario tener una tarjeta de red
configurada en la misma subred en la que trabajar el servidor. Adems es imprescindible
deshabilitar SELINUX y el FIREWALL.

S-ar putea să vă placă și