O intuito desde documento é orientar como realizar a instalação do Windows utilizando um sistema Linux.
Para este tutorial, foi utilizado o sistema Debian Bullseye (stable), mas pode funcionar em qualquer distribuição Linux.
IMPORTANTE: Usado apenas para boot no modo legacy. Estou testando e irei documentar como fazer uma imagem híbrida com EFI.
Com base na imagem de instalação do Windows, é necessário criar uma imagem pequena, usada apenas para fazer o carregamento na memória, para à partir desta, realizar a instalação principal do Windows usando um compartilhamento de arquivo samba.
- Imagem do Windows (Seguem os links para download: Windows 10, Windows 11
- Sistema Linux
Usando o gerenciador de pacotes de sua distribuição (Debian like: apt, RedHat like: yum/dnf), instale os pacotes abaixo:
- dnsmasq
- pxelinux
- syslinux-common
- samba
- wimtools
- genisoimage
- Crie o arquivo
/etc/dnsmasq.d/pxeboot.conf
com o conteúdo abaixo:
interface=<interface de rede>
dhcp-range=192.168.0.50,192.168.0.200,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.0.1
pxe-service=x86PC, "Install Linux", pxelinux
enable-tftp
tftp-root=/srv/pxeboot
- Crie o diretório
/srv/pxeboot
- Copie os arquivos do diretório
/usr/lib/syslinux/modules/bios/
para/srv/pxeboot
- Copie o arquivo
/usr/lib/PXELINUX/pxelinux.0
para/srv/pxeboot
- Crie o arquivo
/srv/pxeboot/pxelinux.cfg/default
com o seguinte conteúdo:
UI menu.c32
MENU TITLE Network Boot
TIMEOUT 50
LABEL winpe
MENU LABEL Boot Windows PE from network
KERNEL /memdisk
INITRD winpe.iso
APPEND iso raw
LABEL localboot
MENU LABEL Boot from local disk
LOCALBOOT 0
- Crie o diretório
/srv/pxeboot/winimage
- Extraia o conteúdo da imagem ISO do Windows para o diretório
/srv/pxeboot/winimage
- Crie o arquivo
/srv/pxeboot/winimage/start.cmd
com o conteúdo abaixo:
wpeinit
ping -n 5 192.168.0.1 > nul
net use I: \\192.168.0.1\winimage
I:\setup.exe
cmd
pause
- Crie a imagem de boot inicial do Windows com o comando abaixo:
mkwinpeimg /srv/pxeboot/winpe.iso \
--iso \
--windows-dir /srv/pxeboot/winimage/ \
--start-script /srv/pxeboot/winimage/start.cmd
- Adicione as linhas abaixo no arquivo
/etc/samba/smb.conf
:
[winimage]
path = /srv/pxeboot/winimage/
guest ok = yes
- Inicie os serviços necessários com o comando abaixo:
systemctl start smbd dnsmasq