Instalando GNU/Linux sin discos
Hoy en día es mas y mas común en medianas y grandes empresas instalar grandes cantidades de GNU/Linux para servidores y/o estaciones de trabajo.
En esos casos es muy complicado e inefectivo hacer la instalación con CDs o DVDs. también la gran variedad y versiones de distribuciones existentes hoy en día hace que sea incomodo tener CDs y DVDs.
Para resolver este inconveniente y hacer más fácil la instalación, migración, o para simplemente experimentar aquí escribo un mini-tutorial de como crear un servidor de instalaciones de GNU/Linux.
Lo necesario
Los siguientes paquetes son necesarios para soportar la instalación desde la Red:
- TFTPD
- Servidor DHCP
- SysLinux
- Servidor Web
- Imágenes de los CD/DVD de tu dristribución
El siguiente bash script puede ayudar a instalar todo lo necesario en un Fedora Linux. Creo que para Debian y similares hay que utilizar apt-get en vez de yum, si alguien puede confirmar esto sería grandioso.
#!/bin/bash yum install -y tftp* syslinux* http-2* if [ ! -f dhcp-3.0.7.tar.gz ] then wget http://ftp.isc.org/isc/dhcp/dhcp-3.0.7.tar.gz fi tar xfvz dhcp-3.0.7.tar.gz cd dhcp-3.0.7 ./configure && make && make install # crear las directorio y archivos de configuraciones mkdir -p /tftpboot/images/ mkdir -p /tftpboot/pxelinux.cfg > /tftpboot/pxelinux.cfg/default
Una vez que tenemos todo lo necesario pasamos a la fase de configuraciones, para eso tenemos que entender como funciona el “servidor de instalaciones”. El DHCPD asigna una IP y también provee información de donde esta localizado el booteo desde red, si el cliente así lo requiere. El cliente se conecta a servidor de booteo y mediante el tftp (Trivial File Transferer Protocol) baja y ejecuta el kernel Linux y desde ahi ejecuta el instalador de la distribución
Configurando
Generalmente el tftp es lanzado desde el xinetd (al menos en Red Hat y derivados) y por defecto viene desactivado. Para activarlo hay que editar el archivo /etc/xinetd.d/tftp y cambiar disabled = yes por disabled = no.
Luego hay que copiar la imagen del pxelinux.0 y menu.c32 del syslinux (generalmente ubicado en /usr/lib/syslinux/) a la carpeta del tftp (por lo general /tftpboot).
Tenemos que crear directorios para cada distribución en /tftpboot/images/distroxxx-arch/ y copiar el vmlinuz el initrd.img que vienen generalmente en el directorio /boot del DVD o primer CD de la distribución dada. Este paso se puede hacer N veces para N distribuciones diferentes. Una cosa importante, las distribuciones que pueden estar alojada en un servidor de instalaciones es totalmente al servidor, ejemplo un servidor de instalación con RH7 i386 puede hostear un debian r3 x86_64.
Aquí esta una configuración ejemplo que tiene que poner en /tftpboot/pxelinux.cfg/default:
default menu
serial 0,38400
prompt 0
timeout 20#para cada distribucion
#en ejemplo es la distro xxx-arch y el servidor de instalaciones el 192.168.2.1
label xxx-arch
kernel /images/xxx-arch/vmlinuz
append local_ramdisk=1 network initrd=/images/xxx-arch/initrd.img ks=http://192.168.2.1/images/xxx-arch-ks.cfg
Ahora como se darán cuenta el tftp despliega un menú, para que el cliente puede elegir que distribución desea elegir. Una vez elegida el tftp envia el vmlinuz (kernel linux) y el initrd.img (imagen donde se encuentra el instalador de la distro). El initrd.img a su vez recibe dos parámetros importantes, network y ks=…
El ks (kickstart) es un archivo (http://192.168.2.1/images/xxx-arch-ks.cfg) con los pasos que el instalador debe seguir al instalar. El Red Hat y derivados viene con un utilitario para generar este archivo (system-config-kickstart), aunque aquí pongo uno generico que simplemente levanta el modo gráfico y nada más, el usuario necesita configurar todo como si fuera a instalar desde un DVD. Si utilizan apache este archivo estaria localizado en /var/www/html/images/xxx-arch-ks.cfg
auth –useshadow –enablemd5
graphical
firewall –disabled
firstboot –disable
interactive
keyboard es
lang en_ES
rootpw –iscrypted $1$a6UXROwn$Ls67BE5neu5GhY2QbWsmR1
selinux –disabled
install
url –url=http://192.168.2.1/images/xxx-arch/
reboot
xconfig –defaultdesktop=GNOME –depth=8 –resolution=640×480
bootloader –location=mbr
zerombr
clearpart –all
Ahora tenemos que copiar el contenido del ISO a la carpeta web de la distribución (http://192.168.2.1/images/xxx-arch/) osea /var/www/html/images/xxx-arch/.
Por último tenemos que configurar el DHCPD, si ya existe un servidor en nuestra red solo tenemos que agregar algunas líneas a el (El 192.168.2.1 es el servidor de booteo en este ejemplo):
#en el principio
allow booting;
allow bootp;#en la declaración de la subnet tiene que poner lo siguiente
next-server 192.168.2.1;
filename “pxelinux.0″;
Ahora hay que iniciar los servicios correspondientes en el servidor de instalación:
/etc/init.d/httpd start
/etc/init.d/xinetd start
/etc/init.d/dhcpd start
También se puede ejecutar los siguientes comandos si se quiere habilitar los mismos cuando se reinicie el sistema operativo:
chkconfig httpd on
chkconfig xinetd on
chkconfig dhcpd on
Si la tarjeta de red no soporta booteo en red les recomiento que hechen una mirada a proyecto Ethernet Boot.
Espero que les haya sido de utilidad este mini-artículo… si surgen dudas no duden en pedir ayuda dejando su comentario…








[...] mi post anterior de instalación de GNU/Linux desde la red, estube googleando por ahí para hacer lo mismo, pero instalar FreeBSD, usando GNU/Linux como [...]