anterior
Tweet about this on TwitterPin on PinterestShare on LinkedInShare on Google+Email this to someoneShare on Facebook
QR CODE

Instalação Windows ou Linux Via Rede

Boot pela rede com Linux

linux

O boot pela rede é o processo de carregar um sistema operacional pela rede ao invés do disco rígido. Muitos thin clientes (mini computador que depende um servidor central) não tem disco e carregam um sistema operacional básico pela rede.
Também pode ser utilizado para montar rede de clusters (centenas de computadores trabalhando de forma simultânea em uma determinada tarefa), para fazer instalações, fazer manutenções e usar o computador sem depender do sistema que está no HD.

“Bootando” pela rede com o PXE, iPXE e nginx

PXE é um protocolo usado por quase todas as placas de rede. Computadores com placa de rede integrada costumam ter uma opção na BIOS para dar boot pela LAN, ou alguma opção para ativar o tal do PXE, é só fuçar na bios que você acha.

Na hora do boot, o programa iPXE (um carregador de sistemas operacionais) vai ser transferido do servidor para o cliente por TFTP, e então vai apresentar um menu com opções e o sistema a ser transferido por HTTP.
Nem todo sistema operacional ou distribuição Linux pode ser carregada pela rede. Neste exemplo vou configurar um Linux para funcionar como servidor, disponibilizando GParted, para baixar, clique aqui.

Live para boot via rede:

1º: No servidor Linux, como root, criar o diretório /tftproot

2º: Instalar o dnsmasq (servidor tudo em 1: DHCP, TFTP, PXE, DNS), e editar o arquivo /etc/dnsmasq.conf O resto das linhas está comentado – “#” (altere estes IPs pelos utilizados na sua rede):
bogus-priv
filterwin2k
no-resolv
dhcp-range=192.168.0.100,192.168.0.200,12h
pxe-prompt=”Press F8 for menu.”, 60
pxe-service=x86PC, “Boot from local disk”
pxe-service=x86PC, “iPXE – Open Source Boot Firmware”, undionly
enable-tftp
tftp-root=/tftproot
dhcp-authoritative

3º: Instalar o nginx (pode ser Apache ou outro servidor web, estou usando ele porque é leve e fácil de configurar).

Editar ou criar o arquivo /etc/nginx/sites-enabled/default

server {

root /usr/share/nginx/www;
index index.html index.htm;

server_name localhost;

location / {
try_files $uri $uri/ /index.html;
}

location /tftproot/ {
alias /tftproot/;
autoindex on;
}
}

(O importante mesmo são estas últimas linhas em amarelo, as demais não precisam ser alteradas)

4º: Criar o arquivo /tftproot/menu.ipxe (troque o endereço 192.168.0.1 pelo IP do seu servidor):

#!ipxe

set boot-url http://192.168.0.1/tftproot
set menu-url ${boot-url}/menu.ipxe
set menu-timeout 15000
set submenu-timeout ${menu-timeout}

isset ${menu-default} || set menu-default exit

:start
menu iPXE boot

menu item –gap — ————————- Operating systems ——————————
item gparted GParted Live
item –gap — ————————- Advanced options ——————————-
item –key c config Configure settings (c)
item shell Drop to iPXE shell
item –key r reboot Reboot computer (r) item
item –key x exit Exit iPXE and continue BIOS boot (x)

choose –timeout ${menu-timeout} –default ${menu-default} selected || goto cancel
set menu-timeout 0
goto ${selected}

:cancel
echo You cancelled the menu, dropping you to a shell

:shell
echo Type exit to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start

:failed
echo Booting failed, dropping to shell
goto shell

:reboot
reboot

:exit
exit

:config
config
goto start

:back
set submenu-timeout 0
clear submenu-default
goto start

:gparted
kernel ${boot-url}/vmlinuz boot=live config union=aufs noswap noprompt vga=788 fetch=${boot-url}/filesystem.squashfs
initrd ${boot-url}/initrd.img
boot || goto failed
(este é o menu do iPXE para escolher o sistema operacional)

5º: Baixar a ISSO do GParted Live. Montar/Abrir a ISSO, entrar no diretório live e extrair apenas os arquivos filesystem, squashfs, initrd.img e vmlinuz para /tftproot/ no servidor.

6º: Entrar no site http://www.rom-o-matic.eu/ para gerar o seu iPXE personalizado. Escolher a opção “UNDI Only (.Kpxe)”, não alterar as outras opções, colar o script personalizado que está logo abaixo, e clicar no botão para continuar:

#!ipxe
dhcp
chain menu.ipxe
(colar lá na página do rom-o-matic, em “Embedded script”)

Observe: Tenho uma versão pronta do iPXE aqui: (http://rafa.eng.br/arquivos/undionly.rar)

7º: Salvar o arquivo, renomear para undionly.0 e copiar para o servidor em /tftproot/

8º: Reiniciar o dnsmasq e testar se o nginx está funcionando. O dnsmasq é meio chato mesmo, não funciona junto com outros servidores de DHCP no mesmo servidor nem na mesma rede. O nginx não costuma dar problemas, é só abrir um navegador e digitar o endereço IP do servidor para verificar se aparece uma página inicial.

9º: Ligar o Computador a ser “Bootado”. Ele precisa estar na mesma rede física do servidor (conectados por cabo no mesmo switch, ou até um cabo crossover entre os dois), e também precisa estar com a opção de boot pela rede ativada na BIOS. Dá para testar com o VMware também (aperte F12 na tela de boot), a placa de rede virtual precisa estar no modo bridge.

Se estiver tudo funcionando, o Computador vai se comunicar com o servidor e mostrar a opção iPXE – OpenSource Boot Firmware:

INSTALANDO O WINDOWS 7 OU WINDOWS 8 PELA REDE

Se por acaso você está precisando instalar o Windows 7 ou Windows 8 em um computador que não consegue dar boot nem pelo DVD nem por USB, ou você está com preguiça de limpar o seu pendrive lotado, então você veio ao lugar certo!!!

Aproveite toda a configuração feita acima no “boot pela rede” e continue seguindo os passos:

1º Copiar os arquivos de driver da placa de rede do computador que você vai instalar, compatível com o Windows que você vai usar (7 ou 8, x32 ou x64) e salvar em algum diretório temporário no servidor (são os arquivos .cat, .inf e .sys).
A parte chata é que estes drivers precisam ser carregados manualmente para a rede funcionar durante a instalação do Windows.
Neste exemplo vou inserir os drivers da placa de rede dentro da imagem de boot do Windows. Mas você pode copiar os drivers para um pendrive apenas para conectar na rede para continuar a instalação.
Se você usar a ISSO/DVD de instalação do Windows x64, baixe os drivers para x64. Se sua ISSO é para instalar a versão x32 ou é versão “all in one” (x32 e x64), baixe os drivers para x32.

2º Compartilhar o DVD (ou a ISO extraída) no servidor através do Samba. Exemplo de compartilhamento público (/etc/samba/smb.conf)

3º Copiar do DVD (ou ISSO) do Windows os arquivos bootmgr (está na raiz), sources/boot.wim,boot/boot.sdi e boot/bcd, colando em /tftproot/ no servidor. (se for o Windows 8, copie tambémboot/fonts/segmono_boot.ttf, boot/fonts/segoe_slboot.ttf e boot/fonts/wgl4_boot.ttf para /tftproot/).

4º Editar o arquivo /tftproot/menu.ipxe adicionando um novo item:
……
item win7 Boot Windows 7
……
……
:win7
kernel ${boot-url}/wimboot
initrd ${boot-url}/bootmgr bootmgr
initrd ${boot-url}/bcd BCD
initrd ${boot-url}/boot.sdi boot.sdi
initrd ${boot-url}/boot.wim boot.wim
initrd ${boot-url}/segmono_boot.ttf segmono_boot.ttf
initrd ${boot-url}/segoe_slboot.ttf segoe_slboot.ttf
initrd ${boot-url}/wgl4_boot.ttf wgl4_boot.ttf
imgstat boot || goto failed
(as linhas em amarelo são só para o Windows 8)

5º Baixar o wimboot e copiar o arquivo para /tftproot/ no servidor (download alternativo: http://rafa.eng.br/arquivos/wimboot.rar)

6º Inserir os drivers na imagem boot.wim, é necessário instalar o wimlib, geralmente não vem com o Linux então você precisa procurar uma versão para a sua distribuição, ou tentar com a mina versão compilada com bibliotecas estáticas (download: http://rafa.eng.br/arquivos/wimlib-imagex.rar)

Digitar estes comandos no servidor para inserir os arquivos de driver na imagem:

wimlib-imagex update /tftproot/bootwin8.wim 2 –command=”add /tmp/drivers /drivers”
(os arquivos .cat, .inf e .sys estão em /tmp/drivers/ no servidor)

Obs: Dá para adicionar os drivers de outra maneira, com o imagex e dism no Windows, ou então copiar em pendrive

7º Ligar o computador a ser instalado, ativando a opção de boot pela rede na BIOS, e escolher o item “BOOT WINDOWS 7” no menu do iPXE que vai aparecer. A instalação do Windows vai começar, mas não clique em nada

Aperte SHIFT+F10 para aparecer o prompt, siga os comandos:

O comando drvload carrega os drivers da placa de rede. Se você inseriu os drivers no arquivo boot.wim, então é a letra x: mesmo. Se você copiou os drivers para um pendrive, então troque pela letra correspondente. (Digite dir d: ou dir e: (f,g,h…) até encontrar a letra do pendrive).
O comando net use conecta no servidor fazendo login como usuário guest (convidado), e senha em branco. Você pode fazer login como outro usuário.
Pronto, a letra z: está mapeada para o DVD do Windows compartilhado no servidor. É só executar o setup.exe dentro do sources e continuar a instalação.

Veja também este post de como instalar programas do Windows no Linux, clicando aqui.

helder

Helder Bruno
Instrutor Hardware Osasco/SP

Próximo

Postado por

Postagem Relacionada

Linux Samba – INSTALAÇÃO
  Olá! Hoje vou ensinar a instalar o Samba no Linux. O Samba pode ser