Cómo diseñar un proyecto menor en un servidor PXE basado en una plataforma Linux

Su pregunta está redactada de manera extraña, presumiblemente porque aún no sabe lo suficiente sobre el tema para formular una mejor pregunta. Está bien; Es por eso que se hacen preguntas. Reformularé la pregunta como mi interpretación de lo que creo que estás preguntando. Desea saber qué partes deben ensamblarse en un servidor (lo llamaré un servidor de arranque) para arrancar sin disco un host cliente PXE.

Los componentes que necesita se dividen en dos categorías: las partes que realmente se ejecutan en el servidor de arranque y las partes que se distribuyen al cliente PXE para iniciar un sistema operativo. Los componentes basados ​​en el servidor más comúnmente (hay algunas alternativas) incluyen un servidor DHCP, junto con un archivo de configuración adecuado para este propósito y un servidor TFTP. Cada uno de estos componentes distribuye datos y archivos al cliente de arranque, de acuerdo con el protocolo y el procedimiento PXE.

Los archivos que se envían al cliente PXE de arranque son: un gestor de arranque PXE (muy a menudo pxelinux.0 ), un núcleo del sistema operativo (generalmente Linux, AFAIK) y un sistema de archivos raíz. Estos deben ensamblarse en los lugares correctos en el servidor de arranque. Una vez adquirido (o construido), ensamblar el servidor de arranque en funcionamiento es principalmente una cuestión de colocar las piezas en los lugares correctos, y crear y configurar correctamente algunos archivos para que el servidor de arranque haga lo correcto cuando el cliente lo solicite. Los procedimientos para hacerlo están bien documentados y pueden variar según las versiones específicas de las herramientas que tenga o elija.
El procedimiento de arranque PXE sigue algunos pasos:

  1. el BIOS del cliente PXE emite una transmisión DHCP
  2. el servidor DHCP responde, dándole al cliente una IP, un nombre de archivo y la IP de un servidor TFTP. El nombre de archivo identifica el gestor de arranque PXE ( pxelinux.0 )
  3. el cliente solicita al servidor TFTP especificado que le envíe el archivo especificado
  4. el servidor TFTP envía el archivo especificado, el gestor de arranque PXE.
  5. el cliente inicia el archivo, el gestor de arranque PXE
  6. el gestor de arranque PXE se ejecuta y solicita un archivo de configuración del servidor TFTP
  7. el servidor TFTP encuentra y envía el archivo de configuración al cliente
  8. el gestor de arranque PXE que se ejecuta en el cliente interpreta el archivo de configuración, que especifica una imagen del núcleo, una imagen del sistema de archivos raíz y algunos argumentos del núcleo.
  9. el gestor de arranque PXE solicita al servidor TFTP que envíe los componentes especificados al cliente y, al recibirlos, los carga en la memoria.
  10. el gestor de arranque PXE pasa la ejecución a la imagen del kernel en memoria, junto con los argumentos del kernel y la información que el kernel necesita para iniciarse, así como para poder acceder al sistema de archivos raíz basado en RAM.

El gran trabajo en su proyecto será ensamblar una imagen del núcleo y del sistema de archivos raíz. Los requisitos del proyecto y la plataforma de hardware dictarán lo que se incluye en esos componentes. Está mucho más allá del alcance de una plataforma como esta para explicar los detalles de cómo lograrlo. Es posible que pueda encontrar un paquete que ya tenga lo que necesita, o una aproximación lo suficientemente cercana que pueda modificarse para cumplir con sus requisitos. Pude usar el paquete @http: //distro.ibiblio.org/tinyco… como base para un sistema Linux sin disco en funcionamiento. Existen otros paquetes, marcos y herramientas que están destinados al trabajo de sistemas integrados, como BuildRoot, el Proyecto Yocto y Open Embedded. Algunos o todos estos pueden ser útiles para crear su sistema Linux sin disco.