Linux sin disco: arranca con ZFS, iSCSI y PXE

Fuentes: Diskless Linux boot using ZFS, iSCSI & PXE

Este artículo describe un método para arrancar un sistema Linux sin disco duro utilizando ZFS, iSCSI y PXE. El autor buscaba una solución para probar modelos de lenguaje grandes (LLMs) en su PC de juegos sin alterar su configuración de Windows, que a menudo se corrompe con actualizaciones. También deseaba evitar los inconvenientes de usar un USB para arrancar Linux, como la pérdida de datos y la dependencia de un dispositivo físico. La solución implica arrancar el sistema operativo Linux desde un disco remoto a través de la red, aprovechando la flexibilidad de PXE e iSCSI.

El proceso se basa en varios componentes clave: Netboot.xyz, un servidor DHCP/TFTP, ZFS y un servidor iSCSI. Netboot.xyz simplifica la creación de un entorno de arranque en red. El servidor DHCP/TFTP proporciona los archivos de arranque a la máquina cliente. ZFS se utiliza para crear un volumen (ZVol) que se exporta como un destino iSCSI. iSCSI permite acceder al ZVol a través de la red como si fuera un disco local.

La configuración implica varios pasos: instalar y configurar Netboot.xyz en un servidor (como un host Proxmox), crear un ZVol, configurar un destino iSCSI, y configurar el servidor DHCP para que dirija a la máquina cliente al servidor TFTP. Se crean archivos de configuración personalizados (como debian13-iscsi.ipxe y custom.ipxe) para especificar la dirección del servidor iSCSI, el IQN (iSCSI Qualified Name) y las credenciales de autenticación. También se descarga la imagen del instalador de Debian y se coloca en el servidor web para que sea accesible a través de PXE.

Este método ofrece varias ventajas, como la portabilidad (el sistema operativo se puede arrancar desde cualquier lugar con acceso a la red), la seguridad (el sistema operativo no se almacena localmente) y la facilidad de mantenimiento (las actualizaciones se pueden implementar centralmente). Sin embargo, también tiene algunas limitaciones. El rendimiento del arranque es más lento que un arranque local, ya que implica la transferencia de datos a través de la red. Además, requiere un servidor dedicado para alojar el entorno de arranque en red. Alternativas incluyen el uso de un USB o un disco duro externo, pero estas soluciones tienen sus propias desventajas. Es importante tener en cuenta que la configuración es compleja y requiere un conocimiento técnico considerable.