Arrancar por rede com Linux – PXE

Este artigo aqui está um pouco relacionado com o nosso anterior, na medida em que trata do assunto de arrancar e instalar o Linux utilizando a rede, seja ela local ou não. Desta vez vamos tratar da instalação do Linux sem meios ópticos, disquetes ou outros meios amovíveis, utilizando apenas a LAN. Espera-se que você tenha pelo menos dois computadores na sua rede, e o cliente vai precisar de um NIC e uma BIOS capaz de usar o PXE. Nós o guiaremos do começo ao fim, mas alguns conhecimentos básicos de rede e configuração Linux, além do uso de um editor de sua escolha, são necessários. Você aprenderá o que é PXE, como configurar um servidor DHCP, como configurar um servidor TFTP para que o cliente possa ter acesso aos arquivos, além de muitas coisas interessantes, como sempre.

PXE

PXE (pronuncia-se “pixie”) significa Preboot eXecution Environment e foi introduzido pela Intel e Systemsoft em 1999. Em resumo, é uma capacidade que a maioria das placas de rede e BIOSes modernas possuem que permite que o sistema inicialize a partir da LAN, tal como inicializaria a partir do disco rígido ou CD-ROM. O suporte PXE deve estar presente no firmware do NIC que, se configurado de acordo na BIOS, irá obter um endereço IP do servidor PXE e baixar as imagens de boot necessárias. Para que um endereço IP esteja disponível, o servidor deve oferecer DHCP. Após o aluguer de um endereço IP, o servidor TFTP (que pode ser a mesma caixa que o servidor DHCP) entrega os ficheiros necessários ao cliente, para que este os possa arrancar após o carregamento. É essa a ideia, então chega de conversa, vamos ao trabalho, devemos?

Instalar as ferramentas necessárias e configurar

Antes de começarmos, é importante entender como é feita a configuração da rede em que testamos isto. O servidor é uma máquina Debian com duas placas de rede, e a distribuição que vamos instalar também é Debian, nomeadamente Squeeze, amd64. Você pode usar qualquer outra distribuição, mas provavelmente algumas localizações de arquivos de configuração serão diferentes. Este artigo não trata de como você irá configurar as fontes de software para a instalação real. Nós só o levaremos para um debian-installer funcional e é só isso. Você encontrará muitos tutoriais por aí sobre como configurar um repositório Debian local ou como configurar um gateway no Linux.

Então, a lista de verificação : precisaremos de um servidor DHCP, um servidor TFTP e o initrd e a imagem do kernel para serem transferidos para o cliente. Escolhemos uma abordagem bastante incomum em nossa configuração, e você verá porque.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

Então, o roteador dá endereços DHCP (pequeno, roteador doméstico) na forma de 192.168.0.x . O servidor, que também estará distribuindo endereços DHCP, tem sua conexão externa via eth0 e a conexão interna para o cliente via eth1. O cliente tem a única conexão Ethernet diretamente ao servidor PXE, mas isso não significa que você não possa configurar o servidor como um gateway para netinstall ou adicionar outro NIC ao cliente para acesso externo. Há muitas possibilidades, a questão importante em mãos é a inicialização via PXE. Vamos começar instalando o servidor TFTP.

SUBSCRIBE NEWSLETTER & RSS
Subscrever para RSS e NEWSLETTER e receber as últimas notícias do Linux, trabalhos, conselhos de carreira e tutoriais.

TFTP

TFTP significa Trivial File Transfer Protocol e é a “linguagem” de facto quando se trata de transferir ficheiros para usar com o PXE. No Debian, nós o instalamos assim:

 # aptitude install tftpd-hpa

Agora devemos configurá-lo corretamente. Antes de tudo, no nosso exemplo vamos executar tftpd standalone, o que significa que não vamos usar o xinetd. A configuração será diferente se você planeja usar xinetd, e nós não o recomendamos. Agora só temos de editar o /etc/default/tftpd-hpa :

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Vamo-nos certificar que o directório acima existe e iniciar o daemon:

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Temos de oferecer ao cliente um endereço antes de começarmos a instalação via rede, e isto é feito usando o Protocolo de Configuração Dinâmica de Host. O servidor DHCP tem um pool de endereços a partir do qual oferece IPs quando solicitado. Instala-se a parte do servidor com

 # aptitude install dhcp3-server

Agora temos de definir a informação de rede do eth1, encontrada em /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Reiniciar a rede e estamos quase a terminar:

 # ifdown eth1 # ifup eth1

Configurar PXE

Agora temos de configurar o ficheiro que o cliente vai pedir, um ficheiro em que lhe diremos como encontrar o que precisa. Então, vamos criar o diretório pxelinux.cfg :

 # mkdir /var/lib/tftpboot/pxelinux.cfg 

e criar um arquivo chamado ‘default’ que terá o seguinte conteúdo:

Você verá uma referência ao arquivo boot.txt , então crie-o em /var/lib/tftpboot e adicione a linha “squeeze_amd64_install” a ele.

Agora, para copiar os ficheiros necessários algures para serem encontrados pelo cliente:

Agora, esperando que tudo esteja bem, pode simplesmente arrancar o seu cliente e alterar as suas configurações de BIOS para arranque em rede. Antes de terminarmos, nós lhe devemos uma explicação para esta configuração de rede que escolhemos. Nós poderíamos provavelmente ter feito mais simples, como usar a conexão do nosso ISP diretamente, e poder acessar a rede (Internet) também. A ideia é que o servidor PXE no nosso cenário não consegue obter o seu endereço IP (eth0) a partir do DHCP, pois esta configuração não vai funcionar: se você não vai usar o cenário de dois NIC no servidor, como nós fizemos, você precisa de algum tipo de endereço IP fixo. Então, as possibilidades seriam: ISP conectado diretamente, definir roteador para dar apenas IPs estáticos, fazer o servidor PXE/DHCP/TFTP também um gateway ou criar um repositório local. Escolhemos este último porque se adapta melhor à nossa topologia e propósitos, e envolve apenas a configuração de um servidor web na LAN, na verdade. Se tivéssemos explicado todas as suas escolhas, incluindo iptables para um gateway ou apache para um servidor HTTP, este artigo teria sido enorme. Em vez disso, preferimos manter o título e dar-lhe exactamente isso: Arrancar por rede com Linux.

Lembrar que isto é apenas um exemplo: tal como no NetbootCD, pode adicionar quantas distribuições quiser, desde que tenha o espaço necessário no servidor.

Pensamentos finais

Deixe uma resposta

O seu endereço de email não será publicado.