Tutoriales gratis - Tftp + pxe - Arranque a través de red

Tftp + pxe - Arranque a través de red

PXE (Preboot Execution Environment) es una herramienta que permite arrancar un sistema operativo o programa a través de la red, igual que si lo arrancaramos de un CD. Un ejemplo claro de utilización es en una escuela de informática donde se esté enseñando a instalar sistemas operativos. En vez de grabar cd's para todos los alumnos, arrancan de un servidor que les da todas las imagenes necesarias.

Para que funcione tenemos que seguir también este otro tutorial de configuración del DHCP:

Configurar DHCP - Servidor de ips

TFTP

Instalación

Para llevar a cabo la instalación de los paquetes anteriores lo haremos de la siguiente manera:
Para instalar el xinetd, abriremos el terminal y ejecutaremos el siguiente comando:

Mostrar/Ocultar código bash

Ver código
 
 
 
yum install xinetd
 
 
 
 
 

Para el paquete tftpf-hpa.rpm el descargaremos desde el navegador, una vez está descargado ejecutaremos el siguiente comando desde el terminal:

Mostrar/Ocultar código bash

Ver código
 
 
 
 
rpm-ivh tftpd-hpa-12:42-2tr.i586.rpm
 
 
 

También nos hara falta el httpd, lo instalamos:

Mostrar/Ocultar código bash

Ver código
 
 
 
yum install httpd
 
 
 
 

Configuración

Entramos en el directorio /etc/xinetd.d

Una vez estamos dentro del directorio, editamos el fichero de configuración: nano tftpd y modificamos para que quede de la siguiente manera:

Mostrar/Ocultar código bash

Ver código
 
 
 
service tftp
 
{
 
socket_type                      = dgram
 
protocol                              = udp
 
wait                                      = yes
 
user                                      = root
 
server                                  = /usr/sbin/in.tftpd
 
server_args             = /tftpboot
 
disable                 = yes
 
}
 
 
 
 

Con la linea /tftpboot le decimos donde se encuentran los ficheros del pxe

Al guardar los cambios y cerrar, nos crea la carpeta "tftpboot" raíz.
El siguiente paso que tenemos que realizar se descargarnos el pxelinux.0, lo descargamos de aqui:

A continuación nos situamos en la carpeta donde hemos guardado el fichero, lo descomprimimos, y ejecutamos el siguiente comando:

Mostrar/Ocultar código bash

Ver código
 
 
 
cp pxelinux.0 /tftboot
 
 
 
 
 

Dentro de / tftpboot crearemos un fichero de texto que se diga, menu.txt, donde introduciremos el menú de PXE, que se verá por pantalla, como por ejemplo algo así:

Mostrar/Ocultar código bash

Ver código
 
 
 
************MENU PXE***********
 
0- Gparted
 
1- Clonezilla
 
2- Ubuntu 10.10
 
3- Fedora 13
 
************************************
 
 
 
 

Hecho esto, procedemos a descargarnos las imagenes que integraremos en el PXE. En este caso vamos a meter un Gparted Live, Clonezilla Live, Fedora 13 instalación y Ubuntu 10.10 Live o instalación (ambas cosas).

En la raíz crearemos una carpeta que se llame SSOO y dentro de esta crearemos varias carpetas, una que se llame ISO, que será donde guardaremos las iso de los sistemas, el resto será donde montaremos cada una de las imágenes.

El siguiente paso, será montar las imágenes, para montarlas utilizaremos los siguientes comandos:

Estas imagenes hay que montarlas cada vez que arranque el servidor, por lo que podemos crear un script para arranque con el sistema para que te monte automáticamente las carpetas, sino tienes que montarlas a mano cada vez que arranques el servidor.

Mostrar/Ocultar código bash

Ver código
 
 
 
mount -o loop /SSOO/ISO/Fedora13.iso /SSOO/Fedora13/
 
mount -o loop /SSOO/ISO/Clonezilla.iso /SSOO/ Clonezilla/ 
 
mount -o loop /SSOO/ISO/Gparted.iso /SSOO/ Gparted/ 
 
mount -o loop /SSOO/ISO/ubuntu10-10.iso  /SSOO/Ubuntu/ 
 
 
 
 

Una vez tenemos montadas las imágenes, nos situaremos en la carpeta tftpboot y crearemos las carpetas Fedora13, Clonezilla, Ubuntu y Gparted. Las utilizaremos para copiar dentro los archivos de arranque de las ISOs.

Para copiar los archivos de arranque de las ISO, utilizaremos los siguientes comandos:

Mostrar/Ocultar código bash

Ver código
 
 
 
cp initrd.img /tftpboot/ Fedora13/     
 
cp vmlinuz /tftpboot/Fedora13/
 
cp initrd1.img /tftpboot/Gparted/    
 
cp vmlinuz1 /tftpboot/ Gparted/
 
cp initrd.img /tftpboot/ Clonezilla/    
 
cp vmlinuz /tftpboot/Clonezilla/
 
cp initrd.lz /tftpboot/Ubuntu/    
 
cp vmlinuz /tftpboot/Ubuntu
 
 
 
 
 

Los archivos vmlinuz, vmlinuz1 y inirtd.img se encuentran dentro de las carpetas donde estan montadas las imagenes, cada imagen utiliza su estructura de carpetas, debes buscar dentro hasta encontrarlo.

Dentro de /tftpboot crearemos una carpeta que se llame, pxelinux.cfg y dentro de esta carpeta crearemos un archivo de texto, que se diga default.

Dentro de este fichero introduciremos las siguientes líneas, para ayudar al PXE a encontrar los archivos de arranque.

Mostrar/Ocultar código bash

Ver código
 
 
 
display menu.txt
 
 
LABEL 0
 
kernel Gparted/vmlinuz1
 
append initrd=Gparted/initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=http://192.168.1.1/Gparted/live/filesystem.squashfs
 
 
LABEL 1
 
kernel Clonezilla/vmlinuz
 
append initrd=Clonezilla/initrd.img boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_keymap="" ocs_live_batch="no" ocs_lang="" vga=788 nosplash fetch=http://192.168.1.1/Clonezilla/live/filesystem.squashfs
 
 
LABEL 2
 
kernel Ubuntu/vmlinuz
 
append root=/dev/nfs boot=casper netboot=nfs nfsroot=192.168.1.1:/SSOO/Ubuntu initrd=Ubuntu/initrd.lz quiet splash --
 
default 2
 
prompt 1    
 
 
LABEL 3
 
kernel Fedora14/vmlinuz
 
append vga=0x318 initrd=Fedora14/initrd.img
 
 
 
 

Para terminar la configuración crearemos un fichero de texto en: /etc/httpd/conf.d/ que se diga alias.conf, en este fichero introduciremos las siguientes líneas:

Alias / Fedora13"/SSOO/ Fedora13"

<Directory "/SSOO/ Fedora13">

Options Indexes MultiViews FollowSymLinks

AllowOverride none 

Order allow,deny

Allow from all

</Directory>


Alias / Gparted "/SSOO/ Gparted " 

<Directory "/SSOO/ Gparted ">

Options Indexes MultiViews FollowSymLinks

AllowOverride none 

Order allow,deny

Allow from all

</Directory>


Alias / Clonezilla "/SSOO/ Clonezilla"

<Directory "/SSOO/ Clonezilla">

Options Indexes MultiViews FollowSymLinks

AllowOverride none 

Order allow,deny

Allow from all

</Directory>


Alias /Ubuntu "/SSOO/ Ubuntu " 

<Directory "/SSOO/ Ubuntu ">

Options Indexes MultiViews FollowSymLinks

AllowOverride none 

Order allow,deny

Allow from all

</Directory>

 

Chuza!DoMelhorReduggyLa TafaneraZabalduAupatuMenéameTuentiBuzzDiggFacebookTwitterCabozo