Diskless boot simples que de momento é demasiado complicado.
iPXE+iSCSI não tende a funcionar com ISOs feitas para pens USB, apesar de iSCSI emular um block device.
É no carregar do sistema operativo (experimentei ambos Linux e Windows PE) que o SO tenta montar o seu próprio disco (em Linux, o root filesystem), ignorando a interface provida pelo iPXE que a BIOS pôde usar. Sinal de que funciona bem para a BIOS é que o GRUB da ISO (carregado por iSCSI) inicia normalmente. Ambos Linux e Windows têm drivers para discos iSCSI e para usar iBFT, uma ajuda provida pelo iPXE, mas o kernel da maioria das imagens não está configurado (ou não tem os argumentos de cmdline) para fazer discovery de iBFT durante o boot. Esta configuração não é difícil, mas é trabalho manual.
Teriamos que adaptar a imagem ISO existente às nossas necessidades. Distros têm organizações de dados e inits diferentes, (por isso seria uma trabalheira). O netbootxyz faz uma adaptação similar às distros que disponibiliza, tomando o lugar do GRUB. A minha intenção de utilizar iSCSI era a possibilidade de simplificar o boot e evitar ter de fazer o trabalho que o netboot faz.
Parecem existir soluções que emulam block devices perfeitamente:
- https://github.com/garybowers/bootimus
- iVentoy (closed source)
- DRBL (Não tenho a certeza, pode estar limitado a certas distribuições linux, tal como o iPXE precisa que seja extraídos o componentes da ISO)
Troubleshooting
- (Guide from LinusTechTips) https://github.com/jakelmg/windows-diskless-boot
- https://github.com/ipxe/ipxe/discussions/324
- https://serverfault.com/questions/477093/cant-boot-windows-server-2012-from-iscsi?rq=1
- https://serverfault.com/questions/477708/second-nic-not-working-properly-on-diskless-server-2012/478056#478056