sexta-feira, 27 de junho de 2008

Instalando o Debian via rede com boot remoto

Artigo escrito por Alisson Baracho - alisson@usinet.com.br
*O sofreu pequenas modificações permitidas pelo autor.

A fim de resolver o problema de instalação do linux através de medias removíveis, ou mesmo agilizar a instalação em múltiplas máquinas, surge necessidade de instalação por meios alternativos, e a instalação via rede com boot remoto se torna uma excelente solução.

O artigo foi feito baseado na distribuição Debian, mas com as modificações apropriadas se aplica a qualquer distribuição.

Alguns conceitos antes de iniciar o artigo.

PXE (Ambiente de execução Pré-Boot)
Permite o boot usando a interface de rede independente de dispositivo de armazenamento disponível (como por exemplo, disco rígido) ou sistemas operacionais instalados.

DHCPd (Protocolo de configuração dinamica de host)
Daemon para o Protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host e outros parâmetros de configuração para clientes de rede.

TFTP (Protocolo Trival de Transferencia de Arquivos)
Protocolo simples para transferencia de arquivos, com funcionalidades básicas de FTP.


Para começar, instala-se os daemons requeridos.

#apt-get install pxe atftpd dhcp3-server

Edite o /etc/dhcp3/dhcpd.conf alterando os endereços ips para os da sua rede

#----------------BOF---------------------
allow booting;
allow bootp;
ddns-update-style none;
#Seu dominio
option domain-name "linuxadm.com.br";
# Mascara da Rede
option subnet-mask 255.255.255.0;
# Endereço de broadcast da rede
option broadcast-address 192.168.0.255;
# Endereço do gateway padrao para os hosts
option routers 192.168.0.1;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 12.168.0.100 192.168.0.150;
}
group {
filename "pxelinux.0";
host pxemachine {
#Endereço MAC da maquina cliente
hardware ethernet 00:e0:4c:92:fd:51;
#Endereço do servior tftpd e diretório de boot)
option root-path "192.168.0.1:/tftpboot/";
}
}
#----------------EOF---------------------

Agora edite o /etc/pxe.conf

#----------------BOF---------------------
#Interface a ser usada no servidor
interface=eth0
#Endereço do servidor
default_address=192.168.0.1
#Endereço de multicast a escutar
multicast_address=192.168.0.255

# mtftp info
mtftp_address=192.168.0.1
mtftp_client_port=1758
mtftp_server_port=1759

#Porta de escuta
listen_port=4011
#Habiliar Multicast
use_multicast=1
#Habilitar Broadcast
use_broadcast=1
#Mensagem de boot
prompt=Press F8 to view menu.
#Tempo de espera da mensagem
prompt_timeout=10

# Quais serviços serão disponibilizados, e ordem de prioridade
service=X86PC,0,0,local,Local boot
service=X86PC,0,0,pxelinux,PXELinux

#Diretório Base do tftpd
tftpdbase=/tftpboot
#Nome do domínio
domain=linuxadm.com.br
#----------------EOF---------------------

Lembre-se que o diretório /tftpboot deve ter permissao de leitura e execucao.

Por fim, edite o arquivo /etc/default/atftpd

#----------------BOF---------------------
USE_INETD=false
OPTIONS="--daemon --port 69 --tftpd-timeout 300 --retry-timeout 5 --mcast-port 1758 --mcast-addr 192.168.0.0-255 --mcast-ttl 1 --maxthread 100 -- verbose=5 /tftpboot"
#----------------EOF---------------------

obs. Verifique se a linha não está quebrada, o parametro options deve estar em uma única linha.

A configuração dos daemons terminou, baixe os arquivos da distribuição (No nosso caso, Debian Etch)

# mkdir -p /tftpboot
# cd /tftpboot
# wget http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/mini.iso
# wget http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/netboot.tar.gz
# wget http.us.debian.org/debian/dists/etch/main/installer-i386/current/images/netboot/pxelinux.0


Descompacte o boot do Debian Netinstall na pasta /tftpboot

# tar zxvf netboot.tar.gz
# chmod 755 /tftpboot -R


Pronto, agora reiniciando os daemons.

# invoke-rc.d atftpd restart
# invoke-rc.d dhcp3-server restart
# invoke-rc.d pxe restart


Agora, basta entrar no setup da maquina que será instalada e definir o boot pela lan, reinicie o computador e a tela da instalação do debian aparecerá.

Agradeço ao Alisson que gentilmente ofereceu esse excelente tutorial para ser publicado em nosso blog.

Fonte: http://en.wikipedia.org/wiki/Preboot_Execution_Environment
Fonte: http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol

Fonte: http://pt.wikipedia.org/wiki/DHCP

*Outras fontes foram consultadas mas não foram referenciadas pelo autor.

Um comentário:

Anônimo disse...

Amigo, eu segui os passos que você passou, porém não consegui de forma alguma fazer com que a máquina de o boot e inicie a instalação.
Há algo mais a ser feito?

Abraços.