Caso sua máquina esteja conectada a uma rede de área local, é possível 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 DHCP, ou um servidor RARP, ou um servidor BOOTP.
O Reverse Address Resolution Protocol (RARP) é o único método para dizer aos clientes qual endereço IP usar para si mesmo. Outro método é usar o protocolo BOOTP. 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 configurar o RARP, você precisa conhecer o endereço Ethernet (a.k.a. o
endereço MAC) dos computadores clientes que serão instalados. Se não souber
isto, você poderá
pegar as mensagens iniciais de inicialização
do OpenPROM, use o comando .enet-addr
do
OpenBooe ou
iniciar no modo “Rescue” (e.g., a partir do disquete de
recuperação) e use o comando /sbin/ifconfig eth0
.
Em sistemas RARP usando um kernel Linux 2.4 ou 2.6, ou Solaris/SunOS, você
usa o programa rarpd.
Você precisará ter certeza que o endereço de hardware Ethernet do cliente
está listado no banco de dados “ethers” (ou
no arquivo /etc/ethers
ou via NIS/NIS+) e no banco de
dados “hosts”. Então você precisará iniciar o daemon RARP.
Digite o comando (como root): /usr/sbin/rarpd -a
;
na maioria dos sistemas Linux e no SunOS 5 (Solaris 2),
/usr/sbin/in.rarpd -a
em alguns outros sistemas Linux,
ou /usr/etc/rarpd -a
no SunOS 4 (Solaris 1).
Existem dois servidores BOOTP disponíveis para o GNU/Linux. O primeiro é o
CMU bootpd. O outro é, na verdade, um servidor DHCP: ISC
dhcpd. No Debian GNU/Linux eles estão disponíveis nos pacotes
bootp
e dhcp3-server
respectivamente.
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. Apenas para o caso de seu servidor BOOTP
não estar “rodando” Debian, a linha em questão deveria 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.4.5, “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.4.3, “Configurando um servidor DHCP”.
Neste caso, você será provavelmente capaz de adicionar a diretiva
allow bootp
no bloco de configuração de sub-rede
de seu cliente e reiniciar o dhcpd com o comando
/etc/init.d/dhcpd3-server restart
.
Um servidor DHCP livre é o ISC dhcpd. Para o
Debian GNU/Linux, o pacote dhcp3-server
é recomendado.
Aqui está um exemplo de configuração para este pacote (veja
/etc/dhcp3/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; }
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/dhcpd3-server restart
.
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.
Historicamente, servidores TFTP usavam /tftpboot
como
diretório para servir imagens. No entanto, pacotes Debian GNU/Linux podem usar outros
diretórios para serem compatíveis com a Filesystem
Hierarchy Standard (Padrão de Hierarquia de Diretórios). Por exemplo,
tftpd-hpa
por padrão usa
/var/lib/tftpboot
. Você pode ter que ajustar os exemplos
de configuração nesta seção.
Olhe em /etc/inetd.conf
e lembre-se do diretório que foi
usado como argumento do in.tftpd[2]; você precisará disto abaixo.
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. Você pode ter 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 cliente TFTP e não existem padrões rígidos.
Algumas arquiteturas SPARC adicionaram nomes de sub-arquiteturas, tais como
“SUN4M” ou “SUN4C”, ao nome de arquivo. Assim, se a
sub-arquitetura do seu sistema é SUN4C e, seu endereço IP é 192.168.1.3, o
nome do arquivo deverá ser C0A80103.SUN4C
. Contudo,
existem ainda sub-arquiteturas onde o arquivo que o cliente procura é apenas
ip-do-cliente-em-hexa
. Um método fácil de determinar o
código hexadecimal para o endereço IP é executar o seguinte comando no
interpretador de comandos (assumindo que o IP da máquina é 10.0.0.4):
$ printf '%.2x%.2x%.2x%.2x\n' 10 0 0 4
Para obter o nome do arquivo correto, vocé precisará mudar todas as letras para maiúsculo e, se necessário, adicionar o nome da sub-arquitetura.
Se você fez tudo isso corretamente, executando o comando boot
net
a partir do OpenPROM deveria carregar a imagem. Se a
imagem não for encontrada, tente verificar os logs do seu servidor tftp
para ver qual nome de imagem está sendo requisitado.
Você também poderá forçar alguns sistemas sparc a procurar por
nomes de arquivos específicos adicionando-o no final da linha de
comando, por exemplo
boot net my-sparc.image
. Este arquivo também
deverá residir no diretório que o servidor TFTP procura.
[2]
O argumento -l
habilita algumas versões do
in.tftpd a registrar todas as requisições para os
logs do sistema; isto é útil para diagnosticar erros de inicialização.