En este artículo, analicemos cómo configurar tftpboot, incluida la instalación de los paquetes necesarios y las configuraciones de tftpboot.
El servicio de arranque TFTP se usa principalmente para realizar la instalación del sistema operativo en una máquina remota a la que no tiene acceso físico. Para realizar la instalación del sistema operativo con éxito, debe haber una manera de reiniciar el servidor remoto, ya sea usando wakeonlan o alguien que lo reinicie manualmente o de alguna otra manera.
En esos escenarios, puede configurar los servicios tftpboot en consecuencia y la instalación del sistema operativo se puede realizar de forma remota (necesita tener el archivo de configuración de autoyast para automatizar los pasos de instalación del sistema operativo).
Se presenta el procedimiento paso a paso en este artículo para SLES10-SP3 en arquitectura de 64 bits. Sin embargo, estos pasos son bastante similares a los de cualquier otra distribución de Linux.
Paquetes requeridos
Los siguientes paquetes deben instalarse para la configuración de tftpboot.
- paquetes de servicios de dhcp:dhcp-3.0.7-7.5.20.x86_64.rpm y dhcp-server-3.0.7-7.5.20.x86_64.rpm
- paquete tftpboot:tftp-0.48-1.6.x86_64.rpm
- paquete pxeboot:syslinux-3.11-20.14.26.x86_64.rpm
Instalación del paquete
Instale los paquetes para los servicios del servidor dhcp:
$ rpm -ivh dhcp-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh dhcp-server-3.0.7-7.5.20.x86_64.rpm Preparing... ########################################### [100%] 1:dhcp ########################################### [100%] $ rpm -ivh tftp-0.48-1.6.x86_64.rpm $ rpm -ivh syslinux-3.11-20.14.26.x86_64.rpm
Después de instalar el paquete syslinux, se creará el archivo pxelinux.0 en el directorio /usr/share/pxelinux/. Esto es necesario para cargar imágenes de initrd y kernel de instalación en la máquina cliente.
Verifique que los paquetes se hayan instalado correctamente.
$ rpm -qa | grep dhcp $ rpm -qa | grep tftp
Descargue el tftpserver apropiado del repositorio de su respectiva distribución de Linux.
Pasos para configurar tftpboot
Paso 1:Crear el directorio /tftpboot
Cree el directorio tftpboot en el directorio raíz ( / ) como se muestra a continuación.
# mkdir /tftpboot/
Paso 2:copia la imagen de pxelinux
La imagen PXE Linux estará disponible una vez que haya instalado el paquete syslinux. Copie esto en la ruta /tftpboot como se muestra a continuación.
# cp /usr/share/syslinux/pxelinux.0 /tftpboot
Paso 3:Cree el punto de montaje para ISO y monte la imagen ISO
Supongamos que vamos a instalar la distribución Linux SLES10 SP3 en un servidor remoto. Si tiene el DVD SUSE10-SP3, insértelo en la unidad o monte la imagen ISO que tiene. Aquí, la imagen ISO se ha montado de la siguiente manera:
# mkdir /tftpboot/sles10_sp3 # mount -o loop SLES-10-SP3-DVD-x86_64.iso /tftpboot/sles10_sp3
Consulte nuestro artículo anterior sobre cómo montar y ver archivos ISO.
Paso 4:copie las imágenes de vmlinuz e initrd en /tftpboot
Copie el initrd al directorio tftpboot como se muestra a continuación.
# cd /tftpboot/sles10_sp3/boot/x86_64/loader # cp initrd linux /tftpboot/
Paso 5:Cree el directorio pxelinux.cfg
Cree el directorio pxelinux.cfg en /tftpboot y defina las definiciones de arranque pxe para el cliente.
# mkdir /tftpboot/pxelinux.cfg # cat >/tftpboot/pxelinux.cfg/default default linux label linux kernel linux append initrd=initrd showopts instmode=nfs install=nfs://192.168.1.101/tftpboot/sles10_sp3/
Las siguientes opciones se utilizan para,
- kernel:especifica dónde encontrar el kernel de instalación de Linux en el servidor TFTP.
- instalar:especifica los argumentos de arranque para pasar al kernel de instalación.
Según las entradas anteriores, el modo de instalación nfs se usa para servir archivos de configuración y RPM de instalación. Por lo tanto, tenga la configuración de nfs en esta máquina con el directorio /tftpboot en la lista exportada. Puede agregar la opción "autoyast" con el archivo de configuración de autoyast para automatizar los pasos de instalación del sistema operativo; de lo contrario, debe ejecutar los pasos de instalación manualmente.
Paso 6:cambie el propietario y el permiso para el directorio /tftpboot
Asignar none:nadie al directorio /tftpboot.
# chown nobody:nobody /tftpboot # chmod 777 /tftpboot
Paso 7:Modificar /etc/dhcpd.conf
Modifique /etc/dhcpd.conf como se muestra a continuación.
# cat /etc/dhcpd.conf ddns-update-style none; default-lease-time 14400; filename "pxelinux.0"; # IP address of the dhcp server nothing but this machine. next-server 192.168.1.101; subnet 192.168.1.0 netmask 255.255.255.0 { # ip distribution range between 192.168.1.1 to 192.168.1.100 range 192.168.1.1 192.168.1.100; default-lease-time 10; max-lease-time 10; }
Especifique la interfaz en /etc/syslinux/dhcpd para escuchar las solicitudes dhcp provenientes de los clientes.
# cat /etc/syslinux/dhcpd | grep DHCPD_INTERFACE DHCPD_INTERFACE=”eth1”;
Aquí, esta máquina tiene la dirección IP de 192.168.1.101 en el dispositivo eth1. Entonces, especifique eth1 para DHCPD_INTERFACE como se muestra arriba.
En una nota relacionada, consulte nuestro artículo anterior sobre 7 ejemplos para configurar la interfaz de red usando ifconfig.
Paso 8:Modificar /etc/xinetd.d/tftp
Modifique el archivo /etc/xinetd.d/tftp para reflejar lo siguiente. De forma predeterminada, el valor para el parámetro de desactivación es "sí", asegúrese de modificarlo a "no" y debe cambiar la entrada server_args a -s /tftpboot.
# cat /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no }
Paso 9:Sin cambios en /etc/xinetd.conf
No es necesario modificar el archivo etc/xinetd.conf. Utilice los valores predeterminados especificados en el archivo xinetd.conf.
Paso 10:reiniciar los servicios xinetd, dhcpd y nfs
Reinicie estos servicios como se muestra a continuación.
# /etc/init.d/xinetd restart # /etc/init.d/dhcpd restart # /etc/init.d/nfsserver restart
Después de reiniciar los servicios nfs, puede ver la lista de directorios exportados (/tftpboot) con el siguiente comando,
# showmount -e
Finalmente, la configuración de tftpboot está lista y ahora la máquina cliente se puede iniciar después de cambiar el primer dispositivo de inicio como "red" en la configuración del BIOS.
Si encuentra algún error de tftp, puede solucionar el problema recuperando algunos archivos a través del servicio tftpd.
Recupere algún archivo del tftpserver para asegurarse de que el servicio tftp funcione correctamente con el cliente tftp. Supongamos que el archivo sample.txt está presente en el directorio /tftpboot.
$ tftp -v 192.168.1.101 -c get sample.txt