28Jun

Cómo configurar discos utilitarios de arranque de red con PXE

Le mostramos cómo iniciar en red el Ubuntu LiveCD.En este artículo, mostraremos cómo hacer que otra red de utilidades pueda arrancar, lo que le dará el conocimiento para replicar el procedimiento para otras utilidades que pueda estar usando.

Nota: este artículo no está dirigido a principiantes, ¡aunque le invitamos a seguir leyendo!

Imagen de Steve Jurvetson

Descripción general

Esta guía tiene como objetivo proporcionarle las herramientas con las cuales, usted podrá convertir utilidades, para ser PXEable. Aunque desafortunadamente, no será posible convertir ninguna herramienta bajo el sol, no estaríamos frikis si al menos no lo intentáramos.

Como se menciona en la guía "Cómo arrancar en red( PXE) Ubuntu LiveCD", si todavía no está utilizando Ubuntu como su número uno "ir a" para la herramienta de solución de problemas, diagnóstico y procedimientos de rescate, ¿qué está esperando?

Dicho esto, uno tiene que reconocer que hay cosas que simplemente no se pueden hacer dentro del LiveCD de Ubuntu( como las actualizaciones del BIOS), o que ya está usando una herramienta diferente que le gusta y que prefiere seguir usando por cualquier razón.

Recomendaciones, supuestos y requisitos previos

  • Se supone que ya ha configurado el servidor FOG como se explica en nuestra guía "¿Qué es el arranque en red( PXE) y cómo se puede usar?".
  • Verá el programa "VIM" utilizado como editor, principalmente porque está ampliamente disponible en plataformas Linux. Puede usar cualquier otro editor que desee.
  • El Ultimate Boot CD( UBCD) se utiliza como ejemplo, ya que a diferencia de otras colecciones de utilidades, es de descarga gratuita y los programas que agrupa son de uso gratuito.

¿Por qué no solo usa ISO sobre PXE?

Esta es a menudo la primera pregunta que se hace al hablar de PXEing. La respuesta corta es que si bien técnicamente es posible tomar una imagen ISO y PXE en las máquinas del cliente, casi siempre el contenido de dicha ISO, se espera tener la manifestación física de sí misma accesible en la unidad de CDROM física. Por lo tanto, cualquiera que sea el contenido de dicho ISO, intentará buscar los archivos "post boot-sector" en la unidad física CDROM de la máquina cliente, no los encontrará y fail para arrancar.

Las dos formas de solucionar este problema son:

  • Grabar el ISO y ponerlo en la unidad de CDROM de la máquina del cliente. Aunque simple, No con CD, es exactamente lo que estamos tratando de evitar. ..
  • Abra la ISO y cambiela forma en que el programa trabaja dentro de ella, de modo que utiliza un controlador CDROM que sabe cómo buscar el ISO en la RAM - Bastante complejo y diferente para cada tipo de programa de arranque. ES DECIR.no es el mismo procedimiento para Linux, WinPE o UBCD por mencionar algunos.

Como ambos de los anteriores derrotan el objetivo de "solo usar un ISO", esta es la razón por la que no recomendamos continuar con este esfuerzo.

El método Kernel

Aunque es muy raro, a veces el programa que intenta iniciar solo necesita un Kernel para funcionar. Un ejemplo típico de esto es "memtest86 +".Memtest viene incluido con la mayoría de los CD de instalación de distribuciones de Linux y con FOG.Como Memtest solo necesita poder comunicarse con las capacidades más básicas del hardware probado, I.E.la memoria( RAM), y puede funcionar bien sin siquiera soportar completamente el hardware en el que se ejecuta( IE probará la memoria, incluso si no sabe su tipo, velocidad & etc. ..) no tiene necesidad decualquier otra cosa y puede funcionar de manera completamente autónoma.

La entrada del menú PXE para memtest puede ser tan simple como:

LABEL Ejecutar Memtest86 +
kernel fog /memtest/ memtest
append -

En este ejemplo, la "LABEL Run Memtest86 +" establece el nombre de la entrada, el "kernel fog /memtest/ memtest"le dice a PXElinux dónde tomar el kernel que será enviado al cliente y "append -" le dice a PXElinux que ignore las opciones de arranque adicionales de * inheritance.

* Nota: dependiendo de su configuración, esto puede que ni siquiera sea necesario y, de hecho, en FOG no se usa.

El método Kernel + Initrd

Este método es con mucho el más utilizado y ampliamente difundido por un par de razones:

  • Muchas utilidades hoy en día provienen del mundo de Linux.
  • Debido a que Linux tiene un gran soporte de hardware y es de uso gratuito, cada vez más empresas se dan cuenta de que Linux es una base excelente para construir sus propios programas.

Permite usar la utilidad CPUstress de UBCD como ejemplo.

En la estructura de archivos UBCD, esta utilidad se encuentra en el directorio "ubcd /boot/ cpustress".Los archivos que estamos buscando se llaman "bzImage" que es el "kernel", e "initrd.gz" que es el "disco de memoria RAM inicial".Si está utilizando la configuración de FOG que creamos, le recomendamos que copie el directorio en "/tftpboot/howtogeek/ utils".Una vez hecho esto, edite el archivo "/tftpboot/howtogeek/menus/ utils.cfg" y añádalo a la entrada de arranque que se encuentra en las entradas de menú del UBCD.esto se puede encontrar en "ubcd /menus/syslinux/ cpu.cfg".Con los ajustes para la configuración de FOG, la entrada del menú debería verse así:

MENÚ ETIQUETA StressCPU V2.0( requiere CPU con SSE)
AYUDA DE TEXTO
Prueba de tortura a su CPU para asegurarse de que no tiene sobrecalentamiento
problemas. Requiere CPUs x86 equipadas con SSE.Ejecuta una versión especial de
Gromacs innerloops que mezcla SSE y las instrucciones de ensamblaje normales para calentar
tu CPU tanto como sea posible.
ENDTEXT
KERNEL howtogeek /utils/cpustress/ bzImage
INITRD howtogeek /utils/cpustress/ initrd.gz
APPEND root = /dev/ ram0 ramdisk_size = 12000 noapic ubcdcmd = stresscpu2

Dónde:

  • MENU LABEL - establece el nombre de la entrada
  • TEXT HELP - Esta directiva opcional, da ayudatexto que se mostrará en el menú para proporcionar información sobre la entrada seleccionada.
  • KERNEL: especifica la ubicación del archivo "kernel" en el directorio TFTPD.
  • INITRD: el mismo que el anterior solo para el archivo "initrd".
  • APPEND: especifica los parámetros adicionales que se deben pasar al programa arrancado.

Un par de cosas a tener en cuenta son:

  • Hardcore geeks notarían que reemplazamos la directiva original de "LINUX" por "KERNEL".Esto es porque: A. esto hace que el ejemplo sea más fácil de leer. B. En este ejemplo, realmente no importa.
    Dicho esto, generalmente cuando se usa la directiva "LINUX", es mejor dejarlo así porque le dice a pxelinux / syslinux que no estamos utilizando ningún kernel sino uno de Linux.
  • Hemos tomado deliberadamente la directiva "silenciosa" de los parámetros adjuntos. Esto se debe a un cambio en la forma en que Syslinux maneja el parámetro "silencioso" en las versiones recientes.
  • Es posible cambiar el funcionamiento del programa "StressCPU", simplemente cambiando el parámetro adjunto "ubcdcmd".Entonces, para usar las otras funciones, solo se necesita copiar la entrada y reemplazar "stresscpu2" por: cpuinfo, cpuburn o mprime24.

Si bien este es un ejemplo muy simple, debería ser suficiente para comenzar.

El método Kernel + Initrd + NFS

Este método es el que utilizamos en la guía "Cómo iniciar en red( PXE) el Ubuntu LiveCD".Este método se basa en el anterior y utiliza el hecho de que algunas distribuciones de Linux admiten tener su "sistema de archivos raíz" montado desde NFS.La guía de Ubuntu es un excelente ejemplo, pero tenga la seguridad de que ya tenemos otra planeada para el futuro cercano."Mantén tus ojos abiertos para un hongo negro".

El método MEMDISK

MEMDISK es una utilidad que se distribuye con el paquete Syslinux. El propósito de esta utilidad es permitirle emular un "disco"( principalmente refiriéndose a disquetes) usando su imagen. La forma en que funciona esta utilidad es enganchar en la ubicación de la RAM que especifica cómo comunicarse con la unidad de disquete( A.K.A. Manejador de interrupciones) y la señala a una nueva ubicación que maneja el programa MEMDISK.Con este método, el "kernel" es la utilidad MEMDISK y el "initrd" es el archivo de la imagen del disquete( .img).

Lo único a tener en cuenta es que FOG viene con una versión de "memdisk" que es compatible con la versión pxelinux.0 que utiliza. Por lo tanto, se recomienda no copiar el archivo "memdisk" que acompaña al archivo "img" de su fuente.

Debido a que este método ya se usa ampliamente, incluso para utilidades regulares y BootCD, la mayoría de las veces es simple encontrar el archivo "IMG" en el BootCD, copiarlo al directorio TFTPD del servidor del PXE y copiar la entrada del menú de ISOlinuxal menú de PXElinux.
Dicen que "hablar es barato", así que echemos un vistazo a cómo podemos adaptar una de las utilidades que utilizan el método MEMDISK de UBCD, para trabajar desde PXE.

La utilidad TestMemIV se puede encontrar en la estructura de archivos UBCD en "ubcd /images/ testmem4.img.gz".Como ya tenemos la utilidad de disco memdisk, solo se necesita copiar el archivo "img" en el directorio "howtogeek /utils/".Con los ajustes para la configuración del FOG, la entrada del menú debería verse así:

MENÚ ETIQUETA TestMemIV
AYUDA DE TEXTO
Prueba la memoria del sistema y la memoria en las tarjetas de video Nvidia.
ENDTEXT
LINUX memdisk
INITRD howtogeek /utils/ testmem4.img.gz

Si bien este es un ejemplo de un archivo de imagen de disquete autónomo de UBCD, la mayoría de los demás programas UBCD utilizan la misma imagen base para comenzar a trabajar( fdubcd.img.gz) y utilice el parámetro adjunto "ubcdcmd" para iniciar automáticamente un programa desde el inicio de la publicación de CDROM.Esto significa que no podrá convertir la mayoría de sus utilidades para ser redirigible sin una ingeniería inversa importante. Si bien tal ingeniería inversa es posible( como se puede ver aquí) y es un excelente ejercicio geek, está más allá del alcance de esta guía.

Con lo anterior, ahora tiene las herramientas para realizar este procedimiento para el diagnóstico de OEM esotérico o la utilidad de actualización del BIOS.

Y así, bloqueado más allá de la Puerta de la Sangre y más allá de la Sala de Fuego, Valor espera a que el Héroe de la Luz se despierte. ..