¿Cómo puedo instalar la máquina virtual Ubuntu usando el servidor de arranque PXE?
Necesito todos los detalles de las configuraciones y qué cambiar en los archivos de configuraciones.
fuente
¿Cómo puedo instalar la máquina virtual Ubuntu usando el servidor de arranque PXE?
Necesito todos los detalles de las configuraciones y qué cambiar en los archivos de configuraciones.
Ver Wikipedia: PXE
Este es mi entendimiento!
PXE (lado del cliente) difunde una solicitud de IP. El servidor DHCP responde con la información requerida: IP, IP del siguiente servidor (IP del servidor TFTP), pxelinux.0
(nombre del archivo del cargador de arranque PXE), ... etc.
PXE (lado del cliente) solicita el pxelinux.0
archivo del servidor TFTP, lo carga en la RAM y luego le pasa el control pxelinux.0
.
pxelinux.0
obtiene el archivo de configuración de arranque del servidor TFTP con el nombre:
(si no existe, intenta con el siguiente)
default
archivarElección del usuario o entrada de menú predeterminada. pxelinux.0
solicita el kernel y RAMDisk correspondientes del servidor TFTP y los carga en la RAM.
Luego pasa los parámetros de arranque y el control al núcleo cargado.
Kernel carga las partes restantes del servidor TFTP o cualquier otro servidor de protocolo, dependiendo de sus características / propiedades.
Hay muchas formas de configurar el servidor PXE, esta es una de ellas.
Estas instrucciones se probaron en Ubuntu 9.10 y Ubuntu 10.04 en una máquina real. Deberían seguir siendo válidos con solo unos pocos cambios. (Actualizado y probado para Ubuntu 14.04 en VirtualBox, verifique las revisiones de edición para versiones anteriores)
Mi objetivo era PartedMagic 4.5 , debería ser similar a Ubuntu o cualquier distribución de Linux.
Instalar paquetes DHCP y TFTP
sudo apt-get install isc-dhcp-server openbsd-inetd lftp tftpd-hpa syslinux
Configuración de DHCP
Editar /etc/default/isc-dhcp-server
, interfaz Ethernet para servicio DHCP
INTERFACES="eth0"
Editar /etc/dhcp/dhcpd.conf
o /etc/ltsp/dhcpd.conf
existe, configuración del servicio DHCP
Configuraciones específicas de PXE: filename
&next-server
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option subnet-mask 255.255.255.0;
option routers 192.168.10.123;
option broadcast-address 192.168.10.255;
filename "pxelinux.0";
next-server 192.168.10.123;
}
Configure una IP estática para eth0
, 192.168.10.123
en mi caso, usar el administrador de red para la edición Desktop o /etc/network/interfaces
para la edición Server.
auto eth0
iface eth0 inet static
address 192.168.10.123
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255
Reinicializar la interfaz de red:
sudo ifdown eth0
sudo ifup eth0
Reiniciar servicio
sudo service isc-dhcp-server restart
Comprobar estado
netstat -lu
Salida
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:bootpc *:*
Configuración TFTP
Edite /etc/inetd.conf
, elimine #<off>#
desde el principio de la tftp
línea o agregue si no está debajo del #:BOOT:
comentario. (Omita esto con systemd, 15.10 y posterior)
tftp dgram udp wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot
Habilitar el servicio de arranque para inetd
sudo update-inetd --enable BOOT
Comienza el servicio
sudo service openbsd-inetd restart
sudo service tftpd-hpa restart
Comprobar estado
netstat -lu
Salida
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 *:tftp *:*
Configuración de archivos de arranque PXE
Descomprimir pmagic-pxe-4.5.zip
. Si pxelinux.0
no está allí, lo consigue a partir sysliux-common
paquete instalado en /usr/lib/syslinux/pxelinux.0
, Proyecto Syslinux o Ubuntu Netboot imagen .
Póngalos en una estructura similar.
/var/lib/tftpboot/
|-- pxelinux.0
|-- pxelinux.cfg/
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
Edite /var/lib/tftpboot/pxelinux.cfg/default
, si es necesario, rutas de ejemplo: pmagic/bzimage
&pmagic/initramfs
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
Configurar permisos correctos
sudo find /var/lib/tftpboot -type f -exec chmod 644 {} \;
sudo find /var/lib/tftpboot -type d -exec chmod 755 {} \;
Cambie el orden de arranque del BIOS por una vez usando F9o F12, para la configuración permanente desde la configuración del BIOS DEL, F2o F12. (Dependiendo de la marca de la máquina)
Mover a la parte superior: [PXE | NIC | LAN | Ethernet | Network]
.
inetutils-inetd
o xinetd
puede usarse en lugar de openbsd-inetd
, algunos inetd
pasos son diferentes.
El directorio raíz TFTP se puede cambiar desde /etc/default/tftpd-hpa
. Recuerde actualizar /etc/inetd.conf
también.
Muchas distribuciones soportan cargar RAMDisk a través de muchos protocolos: SSH (SFTP), SMB, NFS ... Ejemplo Ubuntu soporta NFS.
Algunas tarjetas de red antiguas no son compatibles con PXE, se puede usar iPXE (por ejemplo , gPXE o Etherboot ), ya sea en disquete, unidad USB, disco duro ( /boot
partición) o incluso flashearlo a la ROM (solo se admiten pocas NIC). GRUB2 tiene un módulo para admitir el arranque mediante PXE.
Ver también Wikipedia: gPXE y ROM-O-matic .
Ubuntu Netboot Image de cdimage.ubuntu.com/netboot/ proporciona la instalación de Ubuntu desde la red y le pedirá que descargue todos los paquetes necesarios desde el espejo oficial o local si tiene uno.
La mayoría de los usuarios buscan arrancar imágenes en vivo a través de PXE. Esta pregunta fue solo para configurar un servidor PXE. Ver Ubuntu Wiki: Instalación - LocalNet
El menú PXE se puede personalizar, la mejor plantilla para aprender es Ubuntu NetBoot . Ver imagen múltiple de Pxeboot
memdisk
se puede usar para cargar directamente las imágenes ISO o de disquete a través de PXE. syslinux-common
El paquete tiene una copia. El cliente debe tener suficiente RAM para contener la imagen más una parte para ejecutar el sistema operativo cargado.
Ejemplo de configuración:
/var/lib/tftpboot/
|-- FDSTD.144
|-- memdisk
|-- pxelinux.0
|-- slitaz-cooking.iso
|-- pxelinux.cfg
| `-- default
`-- pmagic/
|-- bzimage
`-- initramfs
/pxelinux.cfg/default
DEFAULT partmagic
LABEL partmagic
MENU LABEL PartMagic 4.5
KERNEL pmagic/bzimage
APPEND initrd=pmagic/initramfs edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw vga=791 sleep=10 loglevel=0 keymap=us livemedia
LABEL slitaz
MENU LABEL ^Slitaz.iso
TEXT HELP
Testing boot from iso.
ENDTEXT
KERNEL memdisk
APPEND initrd=slitaz-cooking.iso
LABEL freedos_std
MENU LABEL ^FreeDOS STD
TEXT HELP
Testing boot from Floppy IMG.
ENDTEXT
KERNEL memdisk
APPEND initrd=FDSTD.144
Los paquetes de PartedMagic se eliminaron del sitio oficial después de que el desarrollador original decidiera comercializarlo, algunos lanzamientos se podían encontrar a través de la red de torrents. Mi respuesta aquí es un resumen de la primera configuración de PXE que funcionó para mí. Ubuntu Netboot Image debería funcionar con las mismas instrucciones.
netstat -lu | grep tftp
muestra en modo de audición. La carpeta / tftpboot es 777, sin embargo, si lo intentotftp> get pxelinux.0
desde el cliente, siempre obtengo un tftp: pxelinux.0: error de permiso denegado . ¿Tienes una idea para depurarlo? Gracias por adelantado./var/lib/tftpboot/
con 755 (predeterminado) debería estar bien. Compruebe sipxelinux.0
tiene 644 o ejecutesudo chmod -R +r /var/lib/tftpboot/
para que todos sus contenidos sean legibles.filename "pxelinux.0";
... sin comentarios; P ... gracias por su respuesta y por esta excelente (y completa) respuesta. Saludos