DISKLESS BOOTING ( EN ESPAÑOL )

Este sistema nos permite servir a otros ordenadores lo necesario para que arranquen un sistema operativo sin tener ni siquiera Disco duro. Sino tan solo con acceso a la red donde esta el servidor y posibilidad de arranque por red en la BIOS del cliente.

De que se trata todo esto … pues simplemente de tener un solo sistema operativo y poder trasmitirlo a otro ordenador vía red LAN para que cargue los ficheros y configuración de un S.O predefinido en el servidor . Una vez hecho esto tener toda la autonomía de un sistema operativo como si estuviese instalado en dicho ordenador , únicamente la función principal del servidor sera pasar todo el sistema de archivos y luego de ello mantenerse conectado con el cliente únicamente par actualizar los datos que el modifique del S.O otorgado por el servidor .

Ahora mas técnicamente , esto sucede de la siguiente manera:

El BOOTING DISKLESS requiere un servidor de DHCP para determinar de una MAC suministrada su ubicación en la red y darle una IP fija. Además se requiere una placa base que permita BOOTEO PXE por red. Un servidor TFTP para poder trasmitir el ROOM de arranque PXE y posteriormente pasar por el mismo servidor el kernel del sistema (el núcleo del mismo) el cual se configurara según los argumentos especificados en la configuración del PXE , para que después de esto el kernel sepa donde buscar los ficheros de sistema en el servidor . Los cuales se trasmitirán por NFS.

Por que PXE,DHCP,TFTP y NFS?

La primera vez que se inicia un nuevo equipo cliente habilitado para inicio remoto PXE, éste utiliza el protocolo DHCP para solicitar una dirección de Protocolo Internet (IP) y la dirección IP de un servidor DISKLESS BOOTING . Como parte de la solicitud inicial el servidor DHCP le facilita la conexión con el servidor TFTP un protocolo utilizado para trasmisión de datos en red , una vez es pasado el ROOM PXE se genera un micro entorno el cual es capaz de cargar el kernel también pasado por TFTP y luego a su vez el kernel ya es capaz de por NFS solicitar todos los archivos del S.O y completar el arranque del mismo.

Que se requiere?

-Un sistema ( Ubuntu en este caso )
-Una placa base que tenga arranque PXE
-Espacio en disco para el sistema del servidor y el sistema que se va a trasmitir
Una red rápida entre cliente y servidor
Servidores NFS,TFTP,DHCP
Y un buen entendimiento de Linux . jiji

Pasos a seguir para lograr montar un servidor de terminales pesados

1 – hacer <<ifconfig>> y sacar tu IP ( anotala te va a ser util ).

2 – Crear una carpeta en /mnt con :

<<sudo mkdir -p /mnt/nfsroot/ubuntu-feisty/dev>>

3 – Instalar todos los servidores :

<< sudo apt-get install dhcp3-server >>
<< sudo apt-get install tftpd-hpa >>
<< sudo apt-get install nfs-kernel-server >>
luego

4 – Para generar el pxe que se va a cargar por red hay que descargar el syslinux .

<< sudo apt-get install syslinux >>

5 -Creamos las carpetas necesarias.

<< sudo mkdir -p /tftpboot/pxelinux.cfg >>
<< sudo mkdir /tftpboot/ubuntu-feisty >>

6 – Copiamos el pxe de sistema en la carpeta creada .

<< sudo cp /usr/lib/syslinux/pxelinux.0 /tftpboot >>

7 – buscamos nuestro kernel con .

<< ls -ltr /boot/vmlinuz-* >>

8 – y lo copiamos a nuestra carpeta /tftpboot.

<< sudo cp /boot/vmlinuz-* /tftpboot/ubuntu-feisty >>

9 – Copiamos la herramienta del sistema que crea la imagen de arranque del kernel y le
ponemos otro nombre.

<< sudo cp -Rp /etc/initramfs-tools /etc/initramfs-tools-pxe >>

10- luego modificamos un archivo de esa carpeta nueva para que bootee desde nfs con

<< sudo gedit /etc/initramfs-tools-pxe/initramfs.conf >>
(cambiamos BOOT=local por BOOT=nfs)

11 – Creamos una nueva imagen

<<sudo mkinitramfs -d /etc/initramfs-tools-pxe -o /tftpboot/ubuntu-feisty/initrd.img-2.6.20-15-generic>> revisar los
números de versión para que todos coincidan con el kernel

12 – Creamos un archivo en /tftpboot/pxelinux.cfg/ que se llame default una forma de hacerlo
es:

<< sudo gedit /tftpboot/pxelinux.cfg/default >> y pegamos esto

LABEL ubuntufeisty
kernel ubuntufeisty/
vmlinuz2.6.2015generic
append root=/dev/nfs nfsroot=***SERVERIP****:/
mnt/nfsroot/ubuntufeisty
ip=dhcp
initrd=ubuntufeisty/
initrd.img2.6.2015generic
rw
PROMPT 0
TIMEOUT 0
DEFAULT ubuntufeisty

13 – modificamos
la configuración del servidor dhcp para que sirva solo a el cliente una ip
fija y le pase el pxe correspondiente el archivo a configurar es /etc/dhcp3/dhcpd.conf y se
hace con :
<< sudo gedit /etc/dhcp3/dhcpd.conf >>
y agregamos lo siguiente:

# ltsp server network
subnet 192.168.80.0 netmask 255.255.255.0 { <–LAMASCARA DE LA RED Y LA SUB NET range 192.168.80.55 192.168.80.55; <–EL RANGO DE IPS A SERVIR option routers 192.168.80.1; filename “pxelinux.0”; nextserver 192.168.80.10; << sudo gedit /etc/default/tftpd-hpa>>
y lo cambiamos por:

#Defaults for tftpdhpa
RUN_DAEMON=”yes”
OPTIONS=”ls/tftpboot”

14.1 – procedemos a dar permisos a la carpeta nfsroot con
<< sudo gedit /etc/exports>>
y agregamos:

/mnt/nfsroot/ubuntufeisty * (rw,no_root_squash,async)

14.2 – luego ponemos :
<< exportfs -rv >> para actualizarlo

15 – MAS TARDE EN EL CLIENTE ponemos:
<< sudo apt-get install nfs-client >>

15.1 En el CLIENTE creamos
<< sudo mkdir -p /mnt/nfsroot/ubuntu-feisty/ >>

16 – montamos en el cliente el enlace con la carpeta del servidor con:

<< sudo mount *****IP SERVER*****:/mnt/nfsroot/ubuntu-feisty /mnt/nfsroot/ubuntu-feisty>>

17 -y luego de montarla copiamos los contenidos del cliente en el servidor
con:

<<sudo cp -ax /. /mnt/nfsroot/ubuntu-feisty/.>>
y
<< sudo cp -ax /dev/. /mnt/nfsroot/ubuntu-feisty/dev/.>>

18 – Una vez copiado todo en el servidor solo tenemos que cambiar el archivo de los
contenidos de montaje /etc/fstab que estara en la carpeta de ubuntufeisty
de nfsroot con:

<< sudo gedit /mnt/nfsroot/ubuntu-feisty/etc/fstab >>
( en la que dejaremos nada mas que las unidades externas montadas y lo demas lo
comentaremos MENOS la swap )

19 – luego
tendremos que cambiar un ultimo fichero en nfsroot y estara listo nuestro servidor
el ultimo comando sera

<< sudo gedit /mnt/nfsroot/ubuntu-feisty/etc/network/interfaces >>
( y comentamos de este archivo todo para que el cliente no genere interfaces de red y
termine por desconectarse del servidor de terminales pesados )

20 -Por ultimo arrancamos todo los servidores con

<< sudo /etc/init.d/dhcp3-server stop >>
<< sudo /etc/init.d/dhcp3-server start >>
<< sudo /etc/init.d/tftpd-hpa stop >>
<< sudo /etc/init.d/tftpd-hpa start >>
<< sudo /etc/init.d/nfs-kernel-server start >>
<< sudo /etc/init.d/nfs-kernel-server stop >>

21 – Y listo solo queda arrancar el cliente en modo de BOOT de LAN y tenemos nuestro
servidor funcionado como servidor de terminales pesados .

Leave a Reply

Your email address will not be published.


*