Arranque de Debian por red (Debian diskless)
En esta entrada, voy a explicar como arrancar un equipo sin necesidad de tener instalado un sistema operativo.
Hace referencia a una entrada anterior, ya que utiliza PXE para poder arrancar el sistema por red.
DHCP
—————–
El primer paso, es la instalación de servidor DHCP igual que hicimos anteriormente para la instalación de Debian por PXE.
https://dtrinf.wordpress.com/2012/06/19/instalacion-de-un-servidor-pxe-en-debian-6/
TFTP Server
—————–
El siguiente paso, es hacer la instalación del servidor TFTP para servir el fichero de arranque del equipo
apt-get -y install syslinux tftpd-hpa # Copy files for pxe boot cp -r /usr/lib/syslinux/pxelinux.0 /srv/tftp cp -r /usr/lib/syslinux/menu.c32 /srv/tftp # create configuration folder mkdir /srv/tftp/pxelinux.cfg
Instalación debian
———————–
Instalamos debootstrap, y hacemos la instalación del S.O. en local, para poder cargarla posteriormente por red.
aptitude install debootstrap mkdir -p /exports/debian debootstrap --arch i386 squeeze /exports/debian http://ftp.es.debian.org/debian/
Instalamos el kernel del sistema.
chroot /exports/debian mount -t proc proc /proc aptitude install linux-image-686 libc6-i686 exit
Editamos el fichero del menú de PXE para que arranque con el sistema que hemos creado, o del disco duro local en caso de tener un sistema operativo previo instalado.
vi /srv/tftp/pxelinux.cfg/default
DEFAULT menu.c32 PROMPT 0 TIMEOUT 50 NOESCAPE 1 ALLOWOPTIONS 0 MENU TITLE PXE Network Boot Menu LABEL Debian i386 MENU LABEL Debian GNU/Linux, with Linux 2.6.32-5-i386 KERNEL diskless/vmlinuz APPEND root=/dev/nfs quiet panic=0 initrd=diskless/initrd.img nfsroot=192.168.223.201:/exports/debian ip=dhcp rw LABEL local MENU LABEL Boot Local Hard Drive LOCALBOOT 0
Creamos los ficheros de kernel para que el sistema pueda arrancar por red.
cd /srv/tftp mkdir diskless cd diskless cp /exports/debian/boot/vmlinuz-* vmlinuz chroot /exports/debian vi /etc/initramfs-tools/initramfs.conf
BOOT=nfs MODULES=netboot
mkinitramfs -o /root/initrd.img exit cp /exports/debian/root/initrd.img initrd.img
Instalamos el servicio NFS para exportar el sistema por red y que se pueda cargar en los clientes
aptitude install nfs-kernel-server nfs-client vi /etc/exports #------------ /exports/debian *(rw,no_root_squash,no_subtree_check) #------------ exportfs -a showmount -e
Ponemos un password al usuario root
chroot /exports/debian passwd root exit
Crear ficheros de dispositivos
aptitude install makedev cd /exports/debian/dev MAKEDEV generic
Editamos el fichero de montaje de particiones
vi /exports/debian/etc/fstab #-------------------- proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 0 0 none /tmp tmpfs defaults 0 0 #none /var/run tmpfs defaults 0 0 #none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0 none /media tmpfs defaults 0 0 none /var/log tmpfs defaults 0 0 192.168.223.201:/exports/debian /prueba nfs rw,hard,intr,auto 0 0 #--------------------
Configuramos la tarjeta de red
vi /exports/debian/etc/network/interfaces auto lo iface lo inet loopback iface eth0 inet dhcp
Configuramos apt con más repositorios
vi /exports/debian/etc/apt/sources.list #-------------------- deb http://ftp.es.debian.org/debian/ squeeze main deb-src http://ftp.es.debian.org/debian/ squeeze main deb http://security.debian.org/ squeeze/updates main deb-src http://security.debian.org/ squeeze/updates main # squeeze-updates, previously known as 'volatile' deb http://ftp.es.debian.org/debian/ squeeze-updates main deb-src http://ftp.es.debian.org/debian/ squeeze-updates main #--------------------
Antes de hacer cualquier instalación o actualización, es recomendable montar el sistema de ficheros /proc
chroot /exports/debian mount -t proc proc /proc
– Si ejecuta la orden ls /proc debería ver que el directorio no está vacío. Si esto falla, puede intentar montar “proc” fuera del entorno chroot:
mount -t proc proc /mnt/debinst/proc
– Ahora podemos hacer la actualización del sistema
aptitude update exit
– Configurar la localización y el teclado
#Localización chroot /exports/debian aptitude install locales dpkg-reconfigure locales #Teclado aptitude install console-data dpkg-reconfigure console-data exit
Configuramos la zona horaria del sistema
echo "Europe/Madrid" > /exports/debian/etc/timezone cp /exports/debian/usr/share/zoneinfo/Europe/Madrid /exports/debian/etc/localtime chroot /exports/debian dpkg-reconfigure -u tzdata exit
Hacemos un backup de la instalación
cp -rp /exports/debian /exports/debian.BKP_OK
Ahora instalamos los paquetes con prioridad estandar del sistema
chroot /exports/debian tasksel install standard exit
También podemos eliminar exim ya que no lo vamos a utilizar
Por último, limpiamos los paquetes descargados
aptitude clean
Actualizamos el sistema, e instalamos algunas dependencias
chroot /exports/debian apt-get update apt-get -y install ifupdown locales libui-dialog-perl \ dialog isc-dhcp-client netbase net-tools iproute vim \ apt-utils exit
Configuramos la zona horaria del sistema
echo "Europe/Madrid" > /exports/debian/etc/timezone cp /exports/debian/usr/share/zoneinfo/Europe/Madrid /exports/debian/etc/localtime
Configuramos el idioma
echo "es_ES.UTF-8" >> /exports/debian/etc/environment
Configuramos locale
chroot /exports/debian echo "es_ES.UTF-8 UTF-8" >> /etc/locale.gen locale-gen es_ES.UTF-8 update-locale LANG=es_ES.UTF-8 dpkg-reconfigure -u tzdata dpkg-reconfigure locales #escogemos "es_ES.UTF-8 UTF-8" exit
Configuramos el teclado
chroot /exports/debian aptitude install console-data dpkg-reconfigure console-data exit