Caso sua máquina esteja conectada a uma rede de área local, é possivel inicia-la através da rede a partir de outra máquina usando o servidor TFTP. Se tem a intenção de iniciar o sistema de instalação para outra arquitetura, os arquivos de inicialização precisarão ser colocados em localizações específicas da máquina e a máquina configurada para suportar inicialização em sua máquina específica.
Você precisará configurar um servidor TFTP e para muitas máquinas um servidor BOOTP , ou um servidor DHCP.
O BOOTP é um protocolo IP que informa um computador de seu endereço IP e onde na rede será obtida a imagem de inicialização. O DHCP (Dynamic Host Configuration Protocol) é uma extensão mais flexível, compatível com versões mais antigas do BOOTP. Alguns sistemas somente podem ser configurados via DHCP.
O protocolo Trivial File Transfer Protocol (TFTP) é usado para servidor uma imagem de inicialização ao cliente. Teoricamente, qualquer servidor, em qualquer plataforma que implementa estes protocolos poderá ser usados. Nos exemplos desta seção, nós mostraremos comando para o SunOS 4.x, SunOS 5.x (a.k.a. Solaris), e para o GNU/Linux.
Para utilizar o método Pre-boot Execution Environment (PXE) de inicialização
através de TFTP, você precisará configurar um servidor TFTP coom suporte a
tsize
. Em um servidor Debian GNU/Linux os pacotes
atftpd
e tftpd-hpa
se
qualificam; nós recomendamos o pacote tftpd-hpa
.
Existem dois servidores BOOTP disponíveis para o GNU/Linux: o
CMU bootpd e o outro atualmente é o
servidor DHCP, ISC dhcpd, que estão disponíveis
nos pacotes bootp
e dhcp
no Debian GNU/Linux.
Para usar o CMU bootpd você deverá primeiro
descomentar (ou adicionar) a linha relevante em
/etc/inetd.conf
.
No Debian GNU/Linux, você poderá executar update-inetd --enable
bootps
então o comando /etc/init.d/inetd
reload
para fazer isto. Em todo caso, a linha em questão
deverá se parecer com:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Agora, você deverá criar um arquivo /etc/bootptab
.
Este terá a mesma quantidade de formato críptico e familiar como o
bom e antigo printcap
do BSD,
termcap
, e
disktab
. Veja a página de manual do
bootptab
para mais informações. Para o
CMU bootpd você precisará conhecer o endereço de
hardware (MAC) do cliente. Aqui está um exemplo de arquivo
/etc/bootptab
:
client:\ hd=/tftpboot:\ bf=tftpboot.img:\ ip=192.168.1.90:\ sm=255.255.255.0:\ sa=192.168.1.1:\ ha=0123456789AB:
Você pelo menos precisará mudar a opção “ha”, que especifica o endereço de hardware do cliente. A opção “bf” especifica o arquivo que o cliente deverá baixar via TFTP; veja Seção 4.6.4, “Movendo as imagens TFTP para o Local” para mais detalhes.
Em contraste, a configuração de um BOOTP com o ISC dhcpd
é realmente fácil, por causa que ele trata clientes BOOTP de uma
forma especial como clientes DHCP. Algumas arquiteturas requerem uma
configuração complexa para a inicialização dos clientes via
BOOTP. Caso a sua seja uma destas, leia a seção Seção 4.6.2, “Configurando um servidor DHCP”.
Caso contrário, você será provavelmente capaz de adicionar a diretiva
allow bootp
no bloco de configuraçào de sub-rede
de seu cliente e reiniciar o servidor dhcp
dhcpd com o comando /etc/init.d/dhcpd
restart
.
Um servidor DHCP livre é o ISC dhcpd. Na
Debian GNU/Linux, ele está disponível no pacote dhcp
.
Aqui está um modelo de configuração deste pacote (normalmente
/etc/dhcpd.conf
):
option domain-name "exemplo.com"; option domain-name-servers ns1.exemplo.com; option subnet-mask 255.255.255.0; default-lease-time 600; max-lease-time 7200; server-name "servername"; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option routers 192.168.1.1; } host clientname { filename "/tftpboot/tftpboot.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
Nota: O novo (e preferido) pacote dhcp3
utiliza o
arquivo de configuração /etc/dhcp3/dhcpd.conf
.
Neste exemplo, existe somente um servidor
servername
que faz todo o trabalho
do servidor DHCP, servidor TFTP e gateway de rede. Você precisará
modificar as opções domain-name assim como o nome do servidor e
endereço de hardware do cliente. A opção filename
deve ter o nome do arquivo que será baixado via TFTP.
Após editar o arquivo de configuração dhcpd,
reinice-o com /etc/init.d/dhcpd restart
.
Aqui está outro exemplo para o dhcp.conf
usando o
método Pre-boot Execution Environment (PXE) do TFTP.
option domain-name "exemplo.com"; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; # The next paragraph needs to be modified to fit your case subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.200 192.168.1.253; option broadcast-address 192.168.1.255; # the gateway address which can be different # (access to the internet for instance) option routers 192.168.1.1; # indicate the dns you want to use option domain-name-servers 192.168.1.3; } group { next-server 192.168.1.3; host tftpclient { # tftp client hardware address hardware ethernet 00:10:DC:27:6C:15; filename "/tftpboot/pxelinux.0"; } }
Note que para a inicialização via PXE, o nome do arquivo do
cliente pxelinux.0
é o gerenciador de partida,
e não a imagem do kernel (veja Seção 4.6.4, “Movendo as imagens TFTP para o Local” abaixo).
Para ter um servidor TFTP funcionando, primeiro deverá ter certeza
que o tftpd está ativado. Ele normalmente é ativado
através da seguinte linha no seu arquivo /etc/inetd.conf
:
tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot
Os pacotes da Debian geralmente configurarão isto corretamente por padrão quando forem instalados.
Olhe neste arquivo e lembre-se do diretório que é usado como
argumento para o in.tftpd; você irá precisa dele
mais abaixo. O argumento -l
permite que
alguns tipos de versões do in.tftpd registrem
todas as requisições para os logs do sistema; isto é mais útil para
diagnosticar erros de inicialização. Se você tiver que mudar o
/etc/inetd.conf
, você terá que notificar o
processo em execução inetd de que o arquivo foi
modificado.
Em máquinas Debian, execute /etc/init.d/inetd
reload
; em outras máquinas,
encontre o ID do processo do inetd e execute o
comando kill -HUP
.
inetd-pid
Como próximo passo, coloque a imagem de inicialização TFTP
que precisa, como encontrada no
Seção 4.2.1, “Aonde achar as imagens de instalação” no diretório de imagens de inicialização
do tftpd. Geralmente este diretório será
/tftpboot
. Você tera que fazer um link
deste arquivo para o arquivo que o tftpd usará
para inicializar em cliente em particular. Infelizmente, o nome do
arquivo é determinado pelo client e TFTP e não existem padrões
rígidos.
Para a inicialização usando o PXE, tudo que precisa fazer já está feito no
arquivo tar netboot/netboot.tar.gz
. Simplesmente
descompacte este arquivo no diretório de imagem de inicialização do
tftpd. Tenha certeza que seu servidor DHCP está configurado
para passar o arquivo /pxelinux.0
através do
tftpd para inicializar através dele.