Instalación e Configuración dun Servidor PXE: Diferenzas entre revisións
| (Non se amosan 75 revisións do historial feitas polo mesmo usuario.) | |||
| Liña 8: | Liña 8: | ||
==Funcionamento==  | 
  ==Funcionamento==  | 
||
# No equipo cliente escollemos arrancar por PXE  | 
|||
# O Cliente PXE busca un servidor DHCP na rede  | 
|||
# Unha vez localizado, o servidor asignalle á máquina cliente unha IP, netmask, gw  | 
|||
# Mediante o protocolo TFTP o servidor envía á máquina cliente o SO   | 
|||
# O cliente co que lle manda o servidor é capaz de arrancar un minisistema na RAM.  | 
|||
Para instalar un Servidor PXE precisamos instalar:  | 
  Para instalar un Servidor PXE precisamos instalar:  | 
||
*Servidor DHCP  | 
  *Servidor DHCP  | 
||
*Servidor TFTP  | 
  *Servidor TFTP  | 
||
<b>Nota:</b> O servidor DHCP e o Servidor TFTP non teñen porque estar na mesma máquina  | 
|||
==Proceso de arranque do Servidor PXE en Detalle==  | 
|||
[[File:Pxe1.png|center]]  | 
|||
# O cliente envía por broadcast unha menaxe DHCPDISCOVER  | 
|||
# O Servidor DHCP responde coa IP, next-server, filename  | 
|||
# O Cliente solicita unha petición TFTP a next-server solicitando filename.  | 
|||
# O Servidor TFTP responde e envía o filename o cliente.  | 
|||
=Configuracións de Rede Iniciais=  | 
|||
*Empregaremos <b>Virtualbox</b> para simular ambos equipos.   | 
|||
[[File:redepxe.png|center|thumb|500px]]  | 
|||
*O Servidor terá instalado un sistema <b>Debian Jessie</b> actualizado   | 
|||
*O Servidor terá dúas tarxetas de rede, A <b>configuración da rede do servidor será</b>  | 
|||
<TABLE ALIGN="RIGHT" BORDER CELLSPACING="0" CELLPADDING="0">  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD><B>Conexión de Área Local 1</B></TD>  | 
|||
  <TD><B>Conexión de Área Local 2</B></TD>  | 
|||
 </TR>  | 
|||
 <TR ALIGN="LEFT">  | 
|||
  <TD>  | 
|||
*Está conectada a rede <B>NAT</B>  | 
|||
*<B>IP:</B> 10.0.2.15  | 
|||
*<B>Netmask:</B>255.255.255.0  | 
|||
*<B>GW:</B>10.0.2.2  | 
|||
  </TD>  | 
|||
  <TD>  | 
|||
*Está conectada a rede interna (<B>intnet</B>)  | 
|||
*<B>IP:</B> 172.20.4.100  | 
|||
*<B>Netmask:</B>255.255.0.0  | 
|||
  </TD>  | 
|||
</TABLE>  | 
|||
*A rede interna intnet, <b>non proporciona DHCP</b>.  | 
|||
*Se arrancamos unha 2º MV conectada a intnet co SystemRescueCd e lle asignamos unha ip compatible  | 
|||
<source lang='bash'>  | 
|||
ifconfig enp0s3 172.20.4.1 netmask 255.255.0.0  | 
|||
</source>  | 
|||
*Veremos que ten rede co servidor  | 
|||
<source lang='bash'>  | 
|||
ping 172.20.4.100  | 
|||
</source>  | 
|||
==Acceso dende o equipo real á Máquina Virtual con NAT==  | 
|||
Empregamos <b>VirtualBox</b> para simular a nosa rede.  | 
|||
A 1º tarxeta de rede do Servidor PXE está configurada por NAT, polo que non podemos comunicar o equipo real coa MV.  | 
|||
Para facelo podemos empregar redireccionamento de portos (<b>port forwarding</b>).   | 
|||
Redireccionaremos o porto TCP/2222 da máquina real o porto TCP/22 (SSH) da máquina virtual.  | 
|||
<TABLE ALIGN="RIGHT" BORDER CELLSPACING="0" CELLPADDING="0">  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>[[File:Port_forwarding1.png|center]]</TD>  | 
|||
  <TD>[[File:Port_forwarding2.png|center]]</TD>  | 
|||
 </TR>  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>  | 
|||
  </TD>  | 
|||
  <TD>  | 
|||
Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
|||
  </TD>  | 
|||
</TABLE>  | 
|||
Na máquina real comprobamos que temos o porto aberto  | 
|||
<source lang='bash'>  | 
|||
root@debianRojas:/home/rojas# netstat -nap | grep 2222   | 
|||
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      9967/VirtualBox   | 
|||
</source>  | 
|||
Para que a configuración sexa efectiva é preciso apagar a máquina e o virtualbox. Logo reiniciamos a máquina.  | 
|||
Na nosa máquina temos que instalar un servidor ssh  | 
|||
<source lang='bash'>  | 
|||
apt-get install ssh  | 
|||
</source>  | 
|||
E permitir o acceso ssh do root  | 
|||
<source lang='bash'>  | 
|||
/etc/ssh/sshd_config   | 
|||
PermitRootLogin yes  | 
|||
</source>  | 
|||
Conectámonos dende o equipo real  | 
|||
<source lang='bash'>  | 
|||
ssh -p 2222 root@127.0.0.1  | 
|||
</source>  | 
|||
=Instalación do Servidor PXE=  | 
|||
==Instalamos un servidor dhcp==  | 
|||
*Instalamos o paquete necesario  | 
|||
<source lang='bash'>  | 
|||
apt-get install isc-dhcp-server  | 
|||
</source>  | 
|||
*Modificamos os arquivos de configuración correspondentes  | 
|||
<source lang='bash'>  | 
|||
/etc/default/isc-dhcp-server  | 
|||
INTERFACES=”eth1”  | 
|||
</source>  | 
|||
<source lang='bash'>  | 
|||
/etc/dhcp/dhcpd.conf  | 
|||
###############################################################  | 
|||
# Comentamos as seguintes liñas para que non espere un timeout  | 
|||
###############################################################  | 
|||
#option domain-name "example.org";   | 
|||
#option domain-name-servers ns1.example.org, ns2.example.org;  | 
|||
###############################################################  | 
|||
# Descomentamos a seguinte liña  | 
|||
###############################################################  | 
|||
# If this DHCP server is the official DHCP server for the local  | 
|||
# network, the authoritative directive should be uncommented.  | 
|||
authoritative;      | 
|||
###############################################################  | 
|||
# Definimos un rango de direccións a asignar entre 10 e 20.  | 
|||
###############################################################  | 
|||
subnet 172.20.0.0 netmask 255.255.0.0 {  | 
|||
        range 172.20.2.10 172.20.2.20;  | 
|||
         ############################################  | 
|||
	 # Necesario para configurar o Servidor PXE  | 
|||
         ############################################  | 
|||
	 next-server 172.20.4.100;  | 
|||
	 filename “pxelinux.0”;  | 
|||
        }  | 
|||
</source>  | 
|||
*Iniciamos o Servicio DHCP  | 
|||
<source lang='bash'>	  | 
|||
	/etc/init.d/isc-dhcp-server restart  | 
|||
</source>  | 
|||
*Arrancamos o cliente co SRCD e colle a IP 172.20.2.10  | 
|||
==Instalando o servidor tftp==  | 
|||
<source lang='bash'>	  | 
|||
apt-get install tfptd-hpa  | 
|||
</source>  | 
|||
*O seu arquivo de configuración é  | 
|||
<source lang='bash'>	  | 
|||
# /etc/default/tftpd-hpa  | 
|||
TFTP_USERNAME="tftp"  | 
|||
TFTP_DIRECTORY="/srv/tftp"  | 
|||
TFTP_ADDRESS="0.0.0.0:69"  | 
|||
TFTP_OPTIONS="--secure"  | 
|||
</source>  | 
|||
*Iniciamos o servidor   | 
|||
<source lang='bash'>	  | 
|||
/etc/init.d/tftpd-hpa start  | 
|||
</source>  | 
|||
*Os directorio onde serviremos as imaxes de arranque é /srv/tfp  | 
|||
*Descargamos a imaxe de instalación de Debian strecth 64 bits para arrancar pola rede  | 
|||
<source lang='bash'>	  | 
|||
cd /srv/tftp  | 
|||
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/netboot/netboot.tar.gz  | 
|||
tar xzf netboot.tar.gz   | 
|||
</source>  | 
|||
<b>Nota:</b> Nestes momentos hai un bug no netboot da rama testing, así que teremos que descargar a versión stable.  | 
|||
<source lang='bash'>	  | 
|||
wget http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz  | 
|||
</source>  | 
|||
*Aparecen as seguines carpetas e arquivos  | 
|||
<source lang='bash'>	  | 
|||
debian-installer  ldlinux.c32  pxelinux.0  pxelinux.cfg  version.info  | 
|||
</source>  | 
|||
*O seu significado é o seguinte:  | 
|||
**<b>debian-installer</b>: Contén o núcleo do sistema  | 
|||
**<b>pxelinux.0</b>: É o cargador de arranque a través da rede, forma parte do proxecto syslinux  | 
|||
**<b>pxelinux.cfg/default</b>: É o arquivo de configuración de pxelinux, onde lle indica que kernel arrancar. Posteriormente empregaremos este arquivo para crear menús.  | 
|||
==Comprobamos==  | 
|||
*Iniciamos a máquina cliente coa súa tarxeta configurada na rede interna e arrancamos  | 
|||
<TABLE ALIGN="RIGHT" BORDER CELLSPACING="0" CELLPADDING="0">  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>[[File:comprobamos1.png|center|thumb|500px]]</TD>  | 
|||
  <TD>[[File:comprobamos2.png|center|thumb|500px]]</TD>  | 
|||
 </TR>  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>  | 
|||
  </TD>  | 
|||
  <TD>  | 
|||
Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
|||
  </TD>  | 
|||
</TABLE>  | 
|||
*Comeza o proceso de instalación de Debian correctamente  | 
|||
*<b>Problema</b>: Non temos acceso a Internet.  | 
|||
*<b>Solución</b>: Temos que facer que o servidor PXE enrute a eth1 a eth0 para que así a rede interna teña acceso a Internet.  | 
|||
==Configurar Enrutamento no Servidor PXE==  | 
|||
*En /etc/sysctl.conf descomentamos  | 
|||
<source lang='bash'>  | 
|||
net.ipv4.ip_forward=1  | 
|||
</source>  | 
|||
*Creamos un script coa nosa configuración personalizada  | 
|||
<source lang='bash'>  | 
|||
/etc/iptables-script.sh  | 
|||
#Configuración para enmascarar os paquetes recibidos da rede interna  | 
|||
iptables -t nat -A POSTROUTING -s 172.20.0.0/16 -o eth0 -j MASQUERADE  | 
|||
</source>  | 
|||
*Dámoslle permiso de execución  | 
|||
<source lang='bash'>  | 
|||
chmod +x /etc/iptables-script.sh  | 
|||
</source>  | 
|||
*Facemos que se execute o inicio  | 
|||
<source lang='bash'>  | 
|||
vi /etc/rc.local  | 
|||
#Cargamos a configuración de iptables  | 
|||
/etc/iptables-script.sh  | 
|||
</source>  | 
|||
*Modificamos a configuración do servidor DHCP  | 
|||
<source lang='bash'>  | 
|||
option domain-name-servers 8.8.8.8; # DNS  | 
|||
subnet 172.20.0.0 netmask 255.255.0.0 {  | 
|||
  range 172.20.2.10 172.20.2.20;  | 
|||
  option routers 172.20.4.100; #Porta de enlace (Ten que ser o servidor PXE)  | 
|||
 …..  | 
|||
}  | 
|||
</source>  | 
|||
=Creando unha configuración Mulitidistro=  | 
|||
Agora xa temos un servidor PXE funcional que nos permite arrancar por rede a instalación de Debian, pero queremos que nos apareza un menú que nos permitar arrancar a nosa máquina con varias imaxes a través da rede.  | 
|||
==Reconfiguracion do instalador de Debian==  | 
|||
Para elo imos a deixar o noso <b>/srv/tftp</b> como sigue:  | 
|||
*Creamos unha carpeta boot onde teremos unha carpeta por cada sistema arrancable.  | 
|||
*Creamos dentro de boot a carpeta <b>strecht64</b> (A nosa distribución debian). Movemos todo o contido da instalación de Debian a /srv/tftp/boot/stretch64.    | 
|||
*Para poder arrancar pola rede, <b>necesitamos algúns arquivos de inicio</b>, que forman parte do paqute <b>syslinux</b>  | 
|||
**Poderíamos descargalos de [https://www.kernel.org/pub/linux/utils/boot/syslinux/ aquí] e descomprimir os que necesitásemos  | 
|||
**En vez diso, <b>imos a reempregar os que xa veñen coa instalación por rede do Debian</b> que temos descargado.  | 
|||
*Creamos unha carpeta para os arquivos necesarios para o arranque  | 
|||
<source lang='bash'>  | 
|||
mkdir /srv/tftp/libs  | 
|||
</source>  | 
|||
*Copiamos os seguintes arquivos  | 
|||
<source lang='bash'>  | 
|||
cp strecht64/debian-installer/amd64/pxelinux.0 /srv/tftp  | 
|||
cd strecht64/debian-installer/amd64/boot-screens/  | 
|||
cp libcom32.c32 /srv/tftp/libs  | 
|||
cp libutil.c32 /srv/tftp/libs  | 
|||
cp vesamenu.c32 /srv/tftp/libs  | 
|||
cp splash.png /srv/tftp/libs  | 
|||
cp ldlinux.c32 /srv/tftp  | 
|||
</source>  | 
|||
*Creamos un arquivo baleiro para o menú  | 
|||
<source lang='bash'>  | 
|||
touch pxelinux.cfg/default  | 
|||
</source>  | 
|||
*A estructura de arquivos quedaría como sigue  | 
|||
<source lang='bash'>  | 
|||
usuario@debian:/srv/tftp# tree   | 
|||
.  | 
|||
├── boot  | 
|||
│   └── stretch64  | 
|||
│      └── debian-installer  | 
|||
│          └── amd64  | 
|||
│               │   ├── boot-screens  | 
|||
│               └── grub  | 
|||
├── libs  | 
|||
│   ├── libcom32.c32  | 
|||
│   ├── libutil.c32  | 
|||
│   ├── vesamenu.c32  | 
|||
│   └── splash.png  | 
|||
├── ldlinux.c32  | 
|||
├── pxelinux.0  | 
|||
└── pxelinux.cfg  | 
|||
    └── default  | 
|||
</source>  | 
|||
Editamos o arquivo pxelinux.cfg/default e creamos un menú para o noso debian  | 
|||
<source lang='bash'>  | 
|||
#Ruta onde se almacenan as librerias necesarias para o arranque  | 
|||
path ../libs  | 
|||
#Menu de arranque grafico  | 
|||
default libs/vesamenu.c32  | 
|||
prompt 0  | 
|||
timeout 300  | 
|||
#imaxe de fondo 640x480 pixels  | 
|||
MENU BACKGROUND libs/splash.png  | 
|||
MENU TITLE Benvido a PXE  | 
|||
LABEL Debian Stretch 64  | 
|||
    MENU LABEL Debian Stretch 64  | 
|||
      KERNEL boot/stretch64/debian-installer/amd64/linux  | 
|||
      APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz  | 
|||
</source>  | 
|||
[[File:Debian_boot1.png|center|thumb|500px]]  | 
|||
===Pasándolle parámetros o instalador Debian===  | 
|||
De este xeito xa non teremos que escoller o idioma de instalación  | 
|||
<source lang='bash'>  | 
|||
LABEL Debian Stretch 64  | 
|||
        MENU LABEL Debian Stretch 64  | 
|||
        KERNEL boot/stretch64/debian-installer/amd64/linux  | 
|||
        APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8  | 
|||
</source>  | 
|||
==Engadindo o System Rescue CD==  | 
|||
Queremos ter un menú multinivel coas seguintes opcións  | 
|||
*Instaladores  | 
|||
**Debian Stretch 64  | 
|||
*Live-CD  | 
|||
**System Rescue CD  | 
|||
O SRCD non é tan sinxelo de configurar como a imaxe netboot de Debian. Nese caso, todo o que necesitaba para arrancar era o núcleo, pero o SRCD necesita durante o seu arranque acceder o arquivo sysrcd.dat. Por iso será necesario <b>instalar un servidor NFS</b> para compartilo na rede.  | 
|||
===Instalación dun servidor NFS===  | 
|||
*Instalamos o paquete necesario  | 
|||
<source lang='bash'>  | 
|||
apt-get install nfs-kernel-server  | 
|||
</source>  | 
|||
*No arquivo de configuración compartimos unha carpeta como só lectura  | 
|||
<source lang='bash'>  | 
|||
/etc/exports  | 
|||
/srv/nfs/srcd   172.20.0.0/255.255.0.0(ro,sync)  | 
|||
</source>  | 
|||
*Reiniciamos o servicio  | 
|||
<source lang='bash'>  | 
|||
/etc/init.d/ssh restart  | 
|||
</source>  | 
|||
===Preparación dos arquivos do SRCD===  | 
|||
*Primeiro creamos a carpeta onde se almacenará o arranque do SRCD.   | 
|||
<source lang='bash'>  | 
|||
mkdir /srv/tftp/boot/srcd  | 
|||
</source>  | 
|||
*Descargamos unha iso do SRCD e montámola na máquina virtual.  | 
|||
<source lang='bash'>  | 
|||
mount /dev/sr0 /media/cdrom  | 
|||
</source>  | 
|||
*Copiamos os arquivos necesarios para o arranque á carpeta /srv/tftp/boot/srcd  | 
|||
<source lang='bash'>  | 
|||
cp /media/cdrom/isolinux/initram.igz /srv/tftp/boot/srcd  | 
|||
cp /media/cdrom/isolinux/rescue* /srv/tftp/boot/srcd  | 
|||
</source>  | 
|||
*Copiamos o resto de arquivos necesarios a /srv/nfs/srcd  | 
|||
<source lang='bash'>  | 
|||
cp /media/cdrom/sysrcd.dat /srv/nfs/srcd  | 
|||
cp /media/cdrom/sysrcd.md5 /srv/nfs/srcd  | 
|||
</source>  | 
|||
===Modificamos o arquivo de configuración===  | 
|||
Modificamos o menú de arranque pxelinux.cfg/default  | 
|||
<source lang='bash'>  | 
|||
######################  | 
|||
# Opcións Xerais  | 
|||
######################  | 
|||
#Ruta onde se almacenan as librerias necesarias para o arranque  | 
|||
path ../libs  | 
|||
#Menu de arranque grafico  | 
|||
default libs/vesamenu.c32   | 
|||
prompt 0  | 
|||
timeout 300  | 
|||
#imaxe de fondo 640x480 pixels  | 
|||
MENU BACKGROUND libs/splash.png.1  | 
|||
MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000   | 
|||
MENU TITLE Benvido a PXE  | 
|||
#####################  | 
|||
# Definición do menú  | 
|||
#####################  | 
|||
MENU BEGIN INSTALADORES  | 
|||
 MENU TITLE INSTALADORES  | 
|||
  LABEL Debian Stretch 64  | 
|||
 	MENU LABEL ^Debian Stretch 64  | 
|||
        KERNEL boot/stretch64/debian-installer/amd64/linux  | 
|||
	APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8  | 
|||
   	TEXT HELP  | 
|||
  		Instala Debian Stretch 64 bits.  | 
|||
   	ENDTEXT  | 
|||
   LABEL volver  | 
|||
 	MENU LABEL ^Volver  | 
|||
 	MENU EXIT  | 
|||
        TEXT HELP  | 
|||
  		Volta o menu principal.  | 
|||
   	ENDTEXT  | 
|||
MENU END  | 
|||
MENU BEGIN LIVE-CD  | 
|||
 MENU TITLE LIVE-CD  | 
|||
    LABEL SystemRescueCD  | 
|||
	 MENU LABEL ^System Rescue Cd 64  | 
|||
	 KERNEL boot/srcd/rescue64 setkmap=es  | 
|||
	 APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.4.100:/srv/nfs/srcd  | 
|||
         TEXT HELP  | 
|||
		Inicia o System Rescue CD con idioma castelan.  | 
|||
         ENDTEXT  | 
|||
    LABEL volver  | 
|||
 	MENU LABEL ^Volver  | 
|||
 	MENU EXIT  | 
|||
        TEXT HELP  | 
|||
  		Volta o menu principal.  | 
|||
   	ENDTEXT  | 
|||
   MENU END  | 
|||
</source>  | 
|||
<TABLE ALIGN="CENTER" BORDER CELLSPACING="0" CELLPADDING="0">  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>[[File:multiboot1.png|center|thumb|500px]]</TD>  | 
|||
  <TD>[[File:multiboot2.png|center|thumb|500px]]</TD>  | 
|||
 </TR>  | 
|||
 <TR ALIGN="CENTER">  | 
|||
  <TD>  | 
|||
Menú Principal  | 
|||
  </TD>  | 
|||
  <TD>  | 
|||
Menú Live-CD  | 
|||
  </TD>  | 
|||
</TABLE>  | 
|||
===Melloras visuais no arquivo de configuración===  | 
|||
Introducimos as seguintes modificacións:  | 
|||
*<b>Cambiamos a imaxe de fondo</b>  | 
|||
<source lang='bash'>  | 
|||
MENU BACKGROUND libs/splash.png.1  | 
|||
</source>  | 
|||
Obtivémola de [[https://www.plop.at/images/ploplinux/splash.png aquí]] , pero vale calquera imaxe 640x480   | 
|||
*<b>Teclas aceleradoras:</b>  | 
|||
<source lang='bash'>  | 
|||
 MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000   | 
|||
 MENU LABEL ^Debian Stretch 64  | 
|||
</source>  | 
|||
Definimos a cor vermella.O premer D xa se selecciona esta opción  | 
|||
*<b>Mensaxe de axuda o seleccionar a opción</b>  | 
|||
<source lang='bash'>  | 
|||
TEXT HELP  | 
|||
         Instala Debian Stretch 64 bits.  | 
|||
ENDTEXT  | 
|||
</source>  | 
|||
[[File:MultibootCores1.png|center|thumb|500px]]  | 
|||
===Personalizando o SRCD con scripts de arranque===  | 
|||
Isto pode ser moi importante xa que nos pode permitir definir os nosos propios scripts de clonación e restauración.  | 
|||
<source lang='bash'>  | 
|||
LABEL SystemRescueCDAuto  | 
|||
        MENU LABEL ^System Rescue Cd 64 Automatico  | 
|||
        KERNEL boot/srcd/rescue64 setkmap=es  | 
|||
        APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.0.100:/srv/nfs/srcd  ar_source=nfs://172.20.0.100:/srv/nfs/srcd ar_nowait  | 
|||
</source>  | 
|||
*ar_source: Indica a ruta do arquivo autorun  | 
|||
*ar_nowait: Inidica  que non espere  | 
|||
Hai que poñer un arquivo autorun en /srv/nfs/srcd  | 
|||
Podemos definir alias en base a scripts que teñamos definidos no noso servidor  | 
|||
<source lang='bash'>  | 
|||
#!/bin/bash  | 
|||
dhclient eth0  | 
|||
mount -t nfs -o nolock gandalf:/NFS/images /mnt/backup  | 
|||
alias clonar=’/mnt/scripts/restaurarWindows.sh’  | 
|||
echo Funciona  | 
|||
exit 0  | 
|||
</source>  | 
|||
===Engadindo unha contrasinal a unha opción de arrque===  | 
|||
*Xeramos unha passwd encriptada con  | 
|||
<source lang='bash'>  | 
|||
# PASSWD Encriptada generada con  | 
|||
# openssl passwd -1 -salt sXiKzkus mypassword  | 
|||
</source>  | 
|||
*Engadimos a contrasinal o menú de arranque  | 
|||
<source lang='bash'>  | 
|||
LABEL SystemRescueCDAuto  | 
|||
        MENU LABEL ^System Rescue Cd 64 Automatico  | 
|||
        MENU PASSWD $1$sXiKzkus$XHG5rLQlceWdGB3gL0C8e.  | 
|||
        KERNEL boot/srcd/rescue64 setkmap=es  | 
|||
        APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.0.100:/srv/nfs/srcd  ar_source=nfs://172.20.0.100:/srv/nfs/srcd ar_nowait  | 
|||
</source>  | 
|||
==Engadindo ISO's de utilidades==  | 
|||
===Engadindo un identificador de Hardware (<b>HDT</b> Hardware Deteccion Tool)===  | 
|||
*Imos a engadir unha categoría Utilidades o noso menú dende a que arrancaremos varias ferramentas en formato .iso.  | 
|||
*HDT analiza o noso equipo e identifica o seu harware  | 
|||
*Creamos a carpeta para almacenar a iso do HDT  | 
|||
<source lang='bash'>  | 
|||
mkdir -p /srv/tftp/iso/hdt  | 
|||
</source>  | 
|||
*Descargamos a iso  | 
|||
<source lang='bash'>  | 
|||
cd /srv/tftp/iso/hdt  | 
|||
wget http://hdt-project.org/raw-attachment/wiki/hdt-0.5.0/hdt-0.5.2.iso  | 
|||
</source>  | 
|||
*Engadimos as entradas correspondentes o noso menú  | 
|||
<source lang='bash'>  | 
|||
MENU BEGIN UTILIDADES  | 
|||
 MENU TITLE UTILIDADES  | 
|||
    LABEL Detector de Hardware  | 
|||
        MENU LABEL ^Detector de Hardware  | 
|||
        LINUX libs/memdisk  | 
|||
        INITRD iso/hdt/hdt-0.5.2.iso  | 
|||
        APPEND iso  | 
|||
        TEXT HELP  | 
|||
                Información sobre o hardware do Sistema.  | 
|||
        ENDTEXT  | 
|||
    LABEL volver  | 
|||
        MENU LABEL ^Volver  | 
|||
        MENU EXIT  | 
|||
        TEXT HELP  | 
|||
                Volta o menu principal.  | 
|||
        ENDTEXT  | 
|||
   MENU END  | 
|||
</source>  | 
|||
[[File:hdt.png|center|thumb|500px]]  | 
|||
===Engadindo un Antivirus (<b>AVG</b>)===  | 
|||
Neste caso queremos arrancar unha iso dun antivirus que nos permita escanear o noso equipo. O antivirus escollido é AVG Rescue CD. Pode conectarse a Internet para actualizar a súa base de virus  | 
|||
*Creamos a carpeta para almacenar a iso do AVG  | 
|||
<source lang='bash'>  | 
|||
mkdir /srv/tftp/iso/avg  | 
|||
</source>  | 
|||
*Descargamos a iso  | 
|||
<source lang='bash'>  | 
|||
cd /srv/tftp/iso/avg  | 
|||
wget http://download.avg.com/filedir/inst/avg_arl_cdi_all_120_150814a10442.iso  | 
|||
</source>  | 
|||
*Renomeamos a avg.iso  | 
|||
*Engadimos as entradas correspondentes o noso menú  | 
|||
<source lang='bash'>  | 
|||
 LABEL AVG  | 
|||
        MENU LABEL ^Antivirus AVG  | 
|||
        LINUX libs/memdisk  | 
|||
        INITRD boot/avg/avg.iso  | 
|||
        APPEND iso  | 
|||
        TEXT HELP  | 
|||
                Escanea o Sistema en procura de Virus.  | 
|||
        ENDTEXT  | 
|||
</source>  | 
|||
<b>Nota:</b> Para que a iso arranque, o equipo cliente necesita un mínimo de 1,5 GiB de RAM  | 
|||
==Engadindo imaxes de disquetes==  | 
|||
===Engadindo entrada para <b>Freedos</b>===  | 
|||
Freedos é un clónico libre de MS-DOS. Queremos ter a posibilidade de arracar Freedos remotamente, isto podería ser útil para actualizar a BIOS dun equipo vello que necesitase facelo a través dun disquete.  | 
|||
*Creamos a carpeta onde almacenaremos a imaxe  | 
|||
<source lang='bash'>  | 
|||
mkdir /srv/tftp/boot/freedos  | 
|||
</source>  | 
|||
*Descargamos a imaxe   | 
|||
<source lang='bash'>  | 
|||
cd /srv/tftp/boot/freedos  | 
|||
wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img  | 
|||
</source>  | 
|||
*Necesitamos un compoñente de syslinux chamado memdisk que  permítenos crear discos na RAM. Así que descargamos o paquete syslinux, descomprimímolo e copiamos só o necesario.  | 
|||
<source lang='bash'>  | 
|||
cd /tmp  | 
|||
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip  | 
|||
unzip syslinux-6.03.zip   | 
|||
cp bios/memdisk/memdisk /srv/tftp/libs  | 
|||
</source>  | 
|||
*Engadimos a opción para o arranque no menú na categoría LIVE-CD  | 
|||
<source lang='bash'>  | 
|||
vi /srv/tftp/pxelinux.cfg/default  | 
|||
		LABEL Freedos  | 
|||
		MENU LABEL ^Freedos  | 
|||
		KERNEL libs/memdisk  | 
|||
		APPEND initrd=boot/freedos/fdboot.img  | 
|||
	      TEXT HELP  | 
|||
 	  		Inicia o S.O. FreeDos  | 
|||
   	ENDTEXT  | 
|||
</source>  | 
|||
*Se quixésemos modificar a imaxe de Freedos para engadirlle os arquivos necesarios para flashear a bios:  | 
|||
Montamos a imaxe do disco  | 
|||
<source lang='bash'>  | 
|||
mount -o loop fdboot.IMG /mnt  | 
|||
</source>  | 
|||
*Copiamos na carpeta /mnt os arquivos necesarios  | 
|||
*Desmontamos e listo  | 
|||
Revisión actual feita o 12 de agosto de 2016 ás 20:27
Introducción
Un Servidor PXE (Preboot eXecution Environment), permite a un equipo cliente arrancar un SO a travé da rede. Isto pode ser útil nos seguintes casos:
- O equipo cliente non ten unidade de CD e queremos arrancar dende un CD-Live.
 - O equipo cliente non ten disco duro e queremos que colla o SO dende a rede
 - Ter diferentes utilidades, como memtest ou antivirus, preparadas para ser executadas sobre un equipo independentemente do que teña instalado.
 
Funcionamento
- No equipo cliente escollemos arrancar por PXE
 - O Cliente PXE busca un servidor DHCP na rede
 - Unha vez localizado, o servidor asignalle á máquina cliente unha IP, netmask, gw
 - Mediante o protocolo TFTP o servidor envía á máquina cliente o SO
 - O cliente co que lle manda o servidor é capaz de arrancar un minisistema na RAM.
 
Para instalar un Servidor PXE precisamos instalar:
- Servidor DHCP
 - Servidor TFTP
 
Nota: O servidor DHCP e o Servidor TFTP non teñen porque estar na mesma máquina
Proceso de arranque do Servidor PXE en Detalle
- O cliente envía por broadcast unha menaxe DHCPDISCOVER
 - O Servidor DHCP responde coa IP, next-server, filename
 - O Cliente solicita unha petición TFTP a next-server solicitando filename.
 - O Servidor TFTP responde e envía o filename o cliente.
 
Configuracións de Rede Iniciais
- Empregaremos Virtualbox para simular ambos equipos.
 
- O Servidor terá instalado un sistema Debian Jessie actualizado
 - O Servidor terá dúas tarxetas de rede, A configuración da rede do servidor será
 
| Conexión de Área Local 1 | Conexión de Área Local 2 | 
  | 
  
  | 
- A rede interna intnet, non proporciona DHCP.
 - Se arrancamos unha 2º MV conectada a intnet co SystemRescueCd e lle asignamos unha ip compatible
 
ifconfig enp0s3 172.20.4.1 netmask 255.255.0.0
- Veremos que ten rede co servidor
 
ping 172.20.4.100
Acceso dende o equipo real á Máquina Virtual con NAT
Empregamos VirtualBox para simular a nosa rede. A 1º tarxeta de rede do Servidor PXE está configurada por NAT, polo que non podemos comunicar o equipo real coa MV.
Para facelo podemos empregar redireccionamento de portos (port forwarding). Redireccionaremos o porto TCP/2222 da máquina real o porto TCP/22 (SSH) da máquina virtual.
| 
 Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
Na máquina real comprobamos que temos o porto aberto
root@debianRojas:/home/rojas# netstat -nap | grep 2222 
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               LISTEN      9967/VirtualBox
Para que a configuración sexa efectiva é preciso apagar a máquina e o virtualbox. Logo reiniciamos a máquina.
Na nosa máquina temos que instalar un servidor ssh
apt-get install ssh
E permitir o acceso ssh do root
/etc/ssh/sshd_config 
PermitRootLogin yes
Conectámonos dende o equipo real
ssh -p 2222 root@127.0.0.1
Instalación do Servidor PXE
Instalamos un servidor dhcp
- Instalamos o paquete necesario
 
apt-get install isc-dhcp-server
- Modificamos os arquivos de configuración correspondentes
 
/etc/default/isc-dhcp-server
INTERFACES=”eth1”
/etc/dhcp/dhcpd.conf
###############################################################
# Comentamos as seguintes liñas para que non espere un timeout
###############################################################
#option domain-name "example.org"; 
#option domain-name-servers ns1.example.org, ns2.example.org;
###############################################################
# Descomentamos a seguinte liña
###############################################################
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;    
###############################################################
# Definimos un rango de direccións a asignar entre 10 e 20.
###############################################################
subnet 172.20.0.0 netmask 255.255.0.0 {
        range 172.20.2.10 172.20.2.20;
         
         ############################################
	 # Necesario para configurar o Servidor PXE
         ############################################
	 next-server 172.20.4.100;
	 filename “pxelinux.0”;
        }
- Iniciamos o Servicio DHCP
 
	
	/etc/init.d/isc-dhcp-server restart
- Arrancamos o cliente co SRCD e colle a IP 172.20.2.10
 
Instalando o servidor tftp
	
apt-get install tfptd-hpa
- O seu arquivo de configuración é
 
	
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
- Iniciamos o servidor
 
	
/etc/init.d/tftpd-hpa start
- Os directorio onde serviremos as imaxes de arranque é /srv/tfp
 - Descargamos a imaxe de instalación de Debian strecth 64 bits para arrancar pola rede
 
	
cd /srv/tftp
wget http://ftp.nl.debian.org/debian/dists/testing/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar xzf netboot.tar.gz
Nota: Nestes momentos hai un bug no netboot da rama testing, así que teremos que descargar a versión stable.
	
wget http://ftp.nl.debian.org/debian/dists/jessie/main/installer-amd64/current/images/netboot/netboot.tar.gz
- Aparecen as seguines carpetas e arquivos
 
	
debian-installer  ldlinux.c32  pxelinux.0  pxelinux.cfg  version.info
- O seu significado é o seguinte:
- debian-installer: Contén o núcleo do sistema
 - pxelinux.0: É o cargador de arranque a través da rede, forma parte do proxecto syslinux
 - pxelinux.cfg/default: É o arquivo de configuración de pxelinux, onde lle indica que kernel arrancar. Posteriormente empregaremos este arquivo para crear menús.
 
 
Comprobamos
- Iniciamos a máquina cliente coa súa tarxeta configurada na rede interna e arrancamos
 
| 
 Como deixamos host IP baleiro, calquera máquina que se conecte o porto 2222 da nosa máquina comunicarase coa MV  | 
- Comeza o proceso de instalación de Debian correctamente
 - Problema: Non temos acceso a Internet.
 - Solución: Temos que facer que o servidor PXE enrute a eth1 a eth0 para que así a rede interna teña acceso a Internet.
 
Configurar Enrutamento no Servidor PXE
- En /etc/sysctl.conf descomentamos
 
net.ipv4.ip_forward=1
- Creamos un script coa nosa configuración personalizada
 
/etc/iptables-script.sh
#Configuración para enmascarar os paquetes recibidos da rede interna
iptables -t nat -A POSTROUTING -s 172.20.0.0/16 -o eth0 -j MASQUERADE
- Dámoslle permiso de execución
 
chmod +x /etc/iptables-script.sh
- Facemos que se execute o inicio
 
vi /etc/rc.local
#Cargamos a configuración de iptables
/etc/iptables-script.sh
- Modificamos a configuración do servidor DHCP
 
option domain-name-servers 8.8.8.8; # DNS
subnet 172.20.0.0 netmask 255.255.0.0 {
  range 172.20.2.10 172.20.2.20;
  option routers 172.20.4.100; #Porta de enlace (Ten que ser o servidor PXE)
 …..
}
Creando unha configuración Mulitidistro
Agora xa temos un servidor PXE funcional que nos permite arrancar por rede a instalación de Debian, pero queremos que nos apareza un menú que nos permitar arrancar a nosa máquina con varias imaxes a través da rede.
Reconfiguracion do instalador de Debian
Para elo imos a deixar o noso /srv/tftp como sigue:
- Creamos unha carpeta boot onde teremos unha carpeta por cada sistema arrancable.
 - Creamos dentro de boot a carpeta strecht64 (A nosa distribución debian). Movemos todo o contido da instalación de Debian a /srv/tftp/boot/stretch64.
 - Para poder arrancar pola rede, necesitamos algúns arquivos de inicio, que forman parte do paqute syslinux
- Poderíamos descargalos de aquí e descomprimir os que necesitásemos
 - En vez diso, imos a reempregar os que xa veñen coa instalación por rede do Debian que temos descargado.
 
 - Creamos unha carpeta para os arquivos necesarios para o arranque
 
mkdir /srv/tftp/libs
- Copiamos os seguintes arquivos
 
cp strecht64/debian-installer/amd64/pxelinux.0 /srv/tftp
cd strecht64/debian-installer/amd64/boot-screens/
cp libcom32.c32 /srv/tftp/libs
cp libutil.c32 /srv/tftp/libs
cp vesamenu.c32 /srv/tftp/libs
cp splash.png /srv/tftp/libs
cp ldlinux.c32 /srv/tftp
- Creamos un arquivo baleiro para o menú
 
touch pxelinux.cfg/default
- A estructura de arquivos quedaría como sigue
 
usuario@debian:/srv/tftp# tree 
.
├── boot
│   └── stretch64
│      └── debian-installer
│          └── amd64
│               │   ├── boot-screens
│               └── grub
├── libs
│   ├── libcom32.c32
│   ├── libutil.c32
│   ├── vesamenu.c32
│   └── splash.png
├── ldlinux.c32
├── pxelinux.0
└── pxelinux.cfg
    └── default
Editamos o arquivo pxelinux.cfg/default e creamos un menú para o noso debian
#Ruta onde se almacenan as librerias necesarias para o arranque
path ../libs
#Menu de arranque grafico
default libs/vesamenu.c32
prompt 0
timeout 300
#imaxe de fondo 640x480 pixels
MENU BACKGROUND libs/splash.png
MENU TITLE Benvido a PXE
LABEL Debian Stretch 64
    MENU LABEL Debian Stretch 64
      KERNEL boot/stretch64/debian-installer/amd64/linux
      APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz
Pasándolle parámetros o instalador Debian
De este xeito xa non teremos que escoller o idioma de instalación
LABEL Debian Stretch 64
        MENU LABEL Debian Stretch 64
        KERNEL boot/stretch64/debian-installer/amd64/linux
        APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8
Engadindo o System Rescue CD
Queremos ter un menú multinivel coas seguintes opcións
- Instaladores
- Debian Stretch 64
 
 - Live-CD
- System Rescue CD
 
 
O SRCD non é tan sinxelo de configurar como a imaxe netboot de Debian. Nese caso, todo o que necesitaba para arrancar era o núcleo, pero o SRCD necesita durante o seu arranque acceder o arquivo sysrcd.dat. Por iso será necesario instalar un servidor NFS para compartilo na rede.
Instalación dun servidor NFS
- Instalamos o paquete necesario
 
apt-get install nfs-kernel-server
- No arquivo de configuración compartimos unha carpeta como só lectura
 
/etc/exports
/srv/nfs/srcd   172.20.0.0/255.255.0.0(ro,sync)
- Reiniciamos o servicio
 
/etc/init.d/ssh restart
Preparación dos arquivos do SRCD
- Primeiro creamos a carpeta onde se almacenará o arranque do SRCD.
 
mkdir /srv/tftp/boot/srcd
- Descargamos unha iso do SRCD e montámola na máquina virtual.
 
mount /dev/sr0 /media/cdrom
- Copiamos os arquivos necesarios para o arranque á carpeta /srv/tftp/boot/srcd
 
cp /media/cdrom/isolinux/initram.igz /srv/tftp/boot/srcd
cp /media/cdrom/isolinux/rescue* /srv/tftp/boot/srcd
- Copiamos o resto de arquivos necesarios a /srv/nfs/srcd
 
cp /media/cdrom/sysrcd.dat /srv/nfs/srcd
cp /media/cdrom/sysrcd.md5 /srv/nfs/srcd
Modificamos o arquivo de configuración
Modificamos o menú de arranque pxelinux.cfg/default
######################
# Opcións Xerais
######################
#Ruta onde se almacenan as librerias necesarias para o arranque
path ../libs
#Menu de arranque grafico
default libs/vesamenu.c32 
prompt 0
timeout 300
#imaxe de fondo 640x480 pixels
MENU BACKGROUND libs/splash.png.1
MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000 
MENU TITLE Benvido a PXE
#####################
# Definición do menú
#####################
MENU BEGIN INSTALADORES
 MENU TITLE INSTALADORES
  LABEL Debian Stretch 64
 	MENU LABEL ^Debian Stretch 64
        KERNEL boot/stretch64/debian-installer/amd64/linux
	APPEND initrd=boot/stretch64/debian-installer/amd64/initrd.gz locale=gl_ES.UTF-8 keymap=es language=es country=ES supported-locales=es_ES.UTF-8
   	TEXT HELP
  		Instala Debian Stretch 64 bits.
   	ENDTEXT
   LABEL volver
 	MENU LABEL ^Volver
 	MENU EXIT
   
        TEXT HELP
  		Volta o menu principal.
   	ENDTEXT
MENU END
   
MENU BEGIN LIVE-CD
 MENU TITLE LIVE-CD
    LABEL SystemRescueCD
	 MENU LABEL ^System Rescue Cd 64
	 KERNEL boot/srcd/rescue64 setkmap=es
	 APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.4.100:/srv/nfs/srcd
         TEXT HELP
		Inicia o System Rescue CD con idioma castelan.
         ENDTEXT
    LABEL volver
 	MENU LABEL ^Volver
 	MENU EXIT
        TEXT HELP
  		Volta o menu principal.
   	ENDTEXT
   MENU END
| 
 Menú Principal  | 
  
 Menú Live-CD  | 
Melloras visuais no arquivo de configuración
Introducimos as seguintes modificacións:
- Cambiamos a imaxe de fondo
 
MENU BACKGROUND libs/splash.png.1
Obtivémola de [aquí] , pero vale calquera imaxe 640x480
- Teclas aceleradoras:
 
 MENU COLOR HOTKEY      1;36;44    #fc0000 #00000000 
 MENU LABEL ^Debian Stretch 64
Definimos a cor vermella.O premer D xa se selecciona esta opción
- Mensaxe de axuda o seleccionar a opción
 
TEXT HELP
         Instala Debian Stretch 64 bits.
ENDTEXT
Personalizando o SRCD con scripts de arranque
Isto pode ser moi importante xa que nos pode permitir definir os nosos propios scripts de clonación e restauración.
LABEL SystemRescueCDAuto
        MENU LABEL ^System Rescue Cd 64 Automatico
        KERNEL boot/srcd/rescue64 setkmap=es
        APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.0.100:/srv/nfs/srcd  ar_source=nfs://172.20.0.100:/srv/nfs/srcd ar_nowait
- ar_source: Indica a ruta do arquivo autorun
 - ar_nowait: Inidica que non espere
 
Hai que poñer un arquivo autorun en /srv/nfs/srcd Podemos definir alias en base a scripts que teñamos definidos no noso servidor
#!/bin/bash
dhclient eth0
mount -t nfs -o nolock gandalf:/NFS/images /mnt/backup
alias clonar=’/mnt/scripts/restaurarWindows.sh’
echo Funciona
exit 0
Engadindo unha contrasinal a unha opción de arrque
- Xeramos unha passwd encriptada con
 
# PASSWD Encriptada generada con
# openssl passwd -1 -salt sXiKzkus mypassword
- Engadimos a contrasinal o menú de arranque
 
LABEL SystemRescueCDAuto
        MENU LABEL ^System Rescue Cd 64 Automatico
        MENU PASSWD $1$sXiKzkus$XHG5rLQlceWdGB3gL0C8e.
        KERNEL boot/srcd/rescue64 setkmap=es
        APPEND initrd=boot/srcd/initram.igz netboot=nfs://172.20.0.100:/srv/nfs/srcd  ar_source=nfs://172.20.0.100:/srv/nfs/srcd ar_nowait
Engadindo ISO's de utilidades
Engadindo un identificador de Hardware (HDT Hardware Deteccion Tool)
- Imos a engadir unha categoría Utilidades o noso menú dende a que arrancaremos varias ferramentas en formato .iso.
 - HDT analiza o noso equipo e identifica o seu harware
 - Creamos a carpeta para almacenar a iso do HDT
 
mkdir -p /srv/tftp/iso/hdt
- Descargamos a iso
 
cd /srv/tftp/iso/hdt
wget http://hdt-project.org/raw-attachment/wiki/hdt-0.5.0/hdt-0.5.2.iso
- Engadimos as entradas correspondentes o noso menú
 
MENU BEGIN UTILIDADES
 MENU TITLE UTILIDADES
    LABEL Detector de Hardware
        MENU LABEL ^Detector de Hardware
        LINUX libs/memdisk
        INITRD iso/hdt/hdt-0.5.2.iso
        APPEND iso
        TEXT HELP
                Información sobre o hardware do Sistema.
        ENDTEXT
    LABEL volver
        MENU LABEL ^Volver
        MENU EXIT
        TEXT HELP
                Volta o menu principal.
        ENDTEXT
   MENU END
Engadindo un Antivirus (AVG)
Neste caso queremos arrancar unha iso dun antivirus que nos permita escanear o noso equipo. O antivirus escollido é AVG Rescue CD. Pode conectarse a Internet para actualizar a súa base de virus
- Creamos a carpeta para almacenar a iso do AVG
 
mkdir /srv/tftp/iso/avg
- Descargamos a iso
 
cd /srv/tftp/iso/avg
wget http://download.avg.com/filedir/inst/avg_arl_cdi_all_120_150814a10442.iso
- Renomeamos a avg.iso
 - Engadimos as entradas correspondentes o noso menú
 
 LABEL AVG
        MENU LABEL ^Antivirus AVG
        LINUX libs/memdisk
        INITRD boot/avg/avg.iso
        APPEND iso
        TEXT HELP
                Escanea o Sistema en procura de Virus.
        ENDTEXT
Nota: Para que a iso arranque, o equipo cliente necesita un mínimo de 1,5 GiB de RAM
Engadindo imaxes de disquetes
Engadindo entrada para Freedos
Freedos é un clónico libre de MS-DOS. Queremos ter a posibilidade de arracar Freedos remotamente, isto podería ser útil para actualizar a BIOS dun equipo vello que necesitase facelo a través dun disquete.
- Creamos a carpeta onde almacenaremos a imaxe
 
mkdir /srv/tftp/boot/freedos
- Descargamos a imaxe
 
cd /srv/tftp/boot/freedos
wget http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.0/fdboot.img
- Necesitamos un compoñente de syslinux chamado memdisk que permítenos crear discos na RAM. Así que descargamos o paquete syslinux, descomprimímolo e copiamos só o necesario.
 
cd /tmp
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip
unzip syslinux-6.03.zip 
cp bios/memdisk/memdisk /srv/tftp/libs
- Engadimos a opción para o arranque no menú na categoría LIVE-CD
 
vi /srv/tftp/pxelinux.cfg/default
		LABEL Freedos
		MENU LABEL ^Freedos
		KERNEL libs/memdisk
		APPEND initrd=boot/freedos/fdboot.img
	      TEXT HELP
 	  		Inicia o S.O. FreeDos
   	ENDTEXT
- Se quixésemos modificar a imaxe de Freedos para engadirlle os arquivos necesarios para flashear a bios:
 
Montamos a imaxe do disco
mount -o loop fdboot.IMG /mnt
- Copiamos na carpeta /mnt os arquivos necesarios
 - Desmontamos e listo
 




