Principalmente utilizo Linux: lo tengo instalado en mi laptop y escritorio. Gracias al increíble trabajo de WINE, CodeWeavers y Valve, también es donde juego en PC. Puedo ejecutar Windows en una máquina virtual para las raras veces que lo necesito, e incluso pasar una GPU si quiero jugar.

Sin embargo, hay una excepción: jugar el juego AAA ████████████████ con amigos. Desafortunadamente, el desarrollador solo permite Windows. Si intentas ejecutar el juego en Linux o detectan que lo estás haciendo en una máquina virtual, tu dispositivo y cuenta son baneados permanentemente. No quiero verme en esa situación.

Durante varios años, mi escritorio ha tenido un disco dedicado a mantener una instalación de Windows. Preferiría usar el espacio en mi caja de PC para discos de Linux. Como ya tengo un NAS, y mi uso de Windows es poco frecuente, me pregunté si podría trasladar la instalación de Windows a mi NAS. Esto me llevó a la idea de netbootear Windows 11 y escribir estas notas sobre cómo hacerlo.

iPXE e iSCSI

Mi primera tarea fue determinar cómo hacer que una computadora arranque desde un NAS. Mi experiencia con dispositivos de bloque en red es con Ceph RD, donde un dispositivo se monta en un sistema operativo que ya está en funcionamiento. Para arrancar sobre una red IP Ethernet el estándar es iSCSI. Una excelente forma de arrancar desde un disco iSCSI es con iPXE. Para evitar errores durante el proceso, retiré todos los discos locales del sistema.

No quería ejecutar un servidor TFTP en mi red doméstica ni reconfigurar DHCP para proporcionar configuración TFTP. Afortunadamente, iPXE está disponible como una imagen USB booteable, que cargué y comenzó a intentar obtener configuración de la red.

Presionando ctrl-b como se indica en la pantalla, pude verificar que la funcionalidad básica estaba funcionando.

iPXE 1.21.1+ (e7585fe) -- Open Source Network Boot Firmware -- https://ipxe.org
Features: DNS FTP HTTP HTTPS iSCSI NFS TFTP VLAN SRP AoE EFI Menu
iPXE> dhcp
Configuring (net0 04:20:69:91:C8:DD)…… ok
iPXE> show ${net0/ip}
192.0.2.3

Decidí usar tgt como el demonio de destino iSCSI en mi NAS. En /etc/tgt/targets.conf lo configuré con dos objetivos: uno como el dispositivo de bloque donde quería instalar Windows y el otro siendo la ISO de instalación.

sgml 
    backing-store /dev/zvol/zroot/sans/win-gaming
    params thin-provisioning=1
backing-store /opt/isos/Win1124H2English_x64.iso
    device-type cd
    readonly 1

De vuelta en la PC, le había dicho a iPXE que usara estos discos iSCSI y luego arrancar desde el DVD. Al agregar múltiples discos de red, cada uno debe recibir un ID de disco diferente comenzando desde 0x80.

iPXE> sanhook --drive 0x80 iscsi:nas.example.com:::1:iqn.2025-02.com.example:win-gaming
Registered SAN device 0x80
iPXE> sanhook --drive 0x81 iscsi:nas.example.com:::1:iqn.2025-02.com.example:win11.iso
Registered SAN device 0x81
iPXE> sanboot --drive 0x81
Booting from SAN device 0x81

Después de un minuto del logo de Windows 11 y un spinner, apareció la configuración de Windows 11. En una situación ideal, podría comenzar a instalar de inmediato. Sin embargo, el DVD de Windows 11 no incluye controladores para mi tarjeta de red, y la información de conexión iSCSI que iPXE pasó al sistema no pudo ser utilizada.

Cargando WinPE

Para solucionar esto, necesitaba construir una imagen de Windows PE que incluía mis controladores de red. WinPE es el entorno mínimo utilizado al instalar Windows. Afortunadamente, Microsoft ha hecho que esto sea bastante fácil. Instalé el Kit de Evaluación y Despliegue de Windows y el complemento de Windows PE. Después de ejecutar “Entorno de Herramientas de Implementación e Imágenes” como administrador, pude crear una carpeta que contenga una imagen base de WinPE.

mkdir C:\winpe
  copype amd64 C:\winpe\amd64

Tras montar la imagen, pude integrar los controladores de Intel. Busqué en los archivos INF para encontrar la carpeta que soportaba mi tarjeta de red.

imagex /mountrw C:\winpe\amd64\media\sources\boot.wim C:\winpe\amd64\mount
  dism /image:C:\winpe\amd64\mount /add-driver /driver:C:\temp\intel\PRO1000\Winx64\W11\
  imagex /unmount /commit C:\winpe\amd64\mount

Esta nueva imagen es lo que necesitamos para arrancar e instalar Windows. Ya que mi NAS también está ejecutando un servidor HTTP, copié los archivos relevantes para netbootear en el directorio correspondiente.

Puedo usar iPXE para ejecutar un script obtenido con HTTP, lo cual aproveché para reducir el número de comandos que tendría que escribir en la consola. Guardé el siguiente script como “install.ipxe” en el mismo directorio HTTP.

ipxe

!ipxe

sanhook --drive 0x80 iscsi:nas.example.com:::1:iqn.2025-02.com.example:win-gaming
sanhook --drive 0x81 iscsi:nas.example.com:::1:iqn.2025-02.com.example:win11.iso
kernel wimboot
initrd boot/BCD BCD
initrd boot/boot.sdi boot.sdi
initrd sources/boot.wim boot.wim
boot

Reiniciando de vuelta al aviso de iPXE, pude entonces iniciar usando este script.

iPXE> dhcp
iPXE> chain http://nas.example.com/ipxe/install.ipxe

Después de unos segundos, arranqué en WinPE con un símbolo del sistema. El comando “wpeinit” se ejecutó automáticamente, configurando la tarjeta de red y montando los discos iSCSI. Encontré que el DVD se había montado como unidad “D”, y pude iniciar la instalación de Windows con “D:\setup.exe”.

Sin embargo, después de alcanzar la pantalla de “Buscando Discos”, el instalador se cerró sin ningún error. Esto parece ser un error con la nueva versión de la configuración, ya que reiniciarlo y seleccionar “Versión Anterior de la Configuración” en una página anterior utilizó una versión del instalador que funcionó.

Instalación Completada

La instalación se extendió a través de varios reinicios. Afortunadamente, una vez que se copian los archivos de instalación, solo se requiere la imagen principal del disco, reduciendo lo que necesitaba escribir en la consola de iPXE. Se pudo limpiar el servidor HTTP en este punto.

iPXE> dhcp
iPXE> sanboot iscsi:nas.example.com:::1:iqn.2025-02.com.example:win-gaming

Después de varios minutos y la instalación forzada de un parche de Windows, vi el escritorio de Windows 11, arrancado a través de iSCSI. El Administrador de Tareas incluso reporta que la unidad C es “SDD (iSCSI)”.

Automatizando Arranques

Iniciar desde un stick USB y tipear en un aviso de iPXE cada vez que quiero arrancar en Windows no es una gran experiencia. Afortunadamente, iPXE también está disponible como una aplicación EFI que se puede instalar en la Partición del Sistema EFI. Descubrí que iPXE ejecutará comandos proporcionados en la línea de comandos.

Reinstalé los discos utilizados para Linux, copié ipxe.efi a la Partición del Sistema EFI y añadí una nueva entrada a systemd-boot creando “$ESP/loader/entries/win11.conf”.

title Windows 11 (iPXE)
efi /ipxe/ipxe.efi
options prompt && dhcp && sanboot iscsi:nas.example.com:::1:iqn.2025-02.com.example:win-gaming

Parece haber un error en el que la primera palabra en el campo de opciones es ignorada. Usé un comando válido de iPXE prompt, lo que también proporciona una señal clara en caso de que empiece a ser interpretado en una versión futura.

Después de un poco de configuración adicional (instalar Firefox y cambiar a modo oscuro), pude instalar Steam y el juego. La instalación del juego tardó un poco más debido a la velocidad más lenta del disco a través de mi red, pero no hubo ningún retraso notable durante el juego. No vi ningún tipo de saturación de red o altas latencias en la configuración durante la carga.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí