# Preparando os arquivos para inicialização via rede usando TFTP

Caso sua máquina esteja conectada a uma rede local, é possível iniciá-la através da rede a partir de outra máquina usando o servidor TFTP. Se você tem a intenção de iniciar o sistema de instalação a partir de outra máquina, os arquivos de inicialização precisarão ser colocados em locais específicos naquela máquina, que precisará ser configurada para oferecer suporte à inicialização da 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 Protocolo de Resolução Reversa de Endereços (RARP — Reverse Address Resolution Protocol) é o único método para dizer aos seus clientes qual endereço IP usar. Outro método é usar o protocolo BOOTP. O BOOTP é um protocolo IP que informa a um computador 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 e retrocompatível do BOOTP. Alguns sistemas só podem ser configurados via DHCP.

Para o PowerPC, se tiver uma máquina Power Macintosh NewWorld, é uma boa ideia de usar o DHCP ao invés do BOOTP. Algumas das últimas máquinas são incapazes de inicializar usando o BOOTP.

Algumas máquinas HPPA antigas (e.g. 715/75) usam o RBOOTD ao invés do BOOTP. Há um pacote `rbootd` disponível no &debian;.

O protocolo de Transferência Trivial de Arquivo (TFTP — Trivial File Transfer Protocol) é usado para servir uma imagem de inicialização ao cliente. Teoricamente, qualquer servidor, em qualquer plataforma que implementa estes protocolos, poderá ser usado. Nos exemplos desta seção, nós mostraremos comandos para o SunOS 4.x, SunOS 5.x (também conhecido como Solaris) e para o GNU/Linux.

Para um servidor &debian-gnu; nós recomendados o pacote `tftpd-hpa`. Ele é escrito pelo mesmo autor do carregador de inicialização `syslinux` e portanto é menos provável que cause problemas. Uma boa alternativa é o pacote `atftpd`.

&tftp-rarp.xml; &tftp-dhcp.xml; &tftp-bootp.xml;

## Habilitando o servidor TFTP

Para ter um servidor TFTP funcionando, primeiro você deverá certificar-se de que o `tftpd` está habilitado.

No caso do `tftpd-hpa` há duas formas de executar o serviço. Uma é iniciá-lo sob demanda através do daemon `inetd` do sistema, a outra é configurá-lo para ser executado como um daemon independente. Qual dos dois métodos será usado é definido quando o pacote é instalado e pode ser modificado reconfigurando-o.

Historicamente, servidores TFTP usavam `/tftpboot` como diretório para servir imagens. No entanto, pacotes &debian-gnu; podem usar outros diretórios para serem compatíveis com o Filesystem Hierarchy Standard (Padrão de Hierarquia de Sistemas de Arquivos). Por exemplo, o `tftpd-hpa` por padrão usa `/srv/tftp`. Você pode ter que ajustar os exemplos de configuração apresentados nesta seção.

Todas as alternativas `in.tftpd` disponíveis no &debian; deveriam, por padrão, registrar nos logs do sistema todas as requisições TFTP. Algumas delas dão suporte ao argumento `-v` para aumentar o nível de detalhes (verbose). É recomendado verificar estas mensagens de log em caso de problemas de inicialização pois elas são um bom ponto de partida para diagnosticar a causa dos erros.

Se tiver a intenção de instalar o &debian; em uma máquina SGI e seu servidor TFTP é uma máquina GNU/Linux executando o kernel Linux 2.4, você precisará configurar o seguinte em seu servidor:

    # echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

para desligar a descoberta de caminho MTU (Path MTU discovery), caso contrário o PROM do SGI não poderá baixar o kernel. Além disso, tenha certeza que os pacotes TFTP são enviados de uma porta de origem que não seja maior que 32767 ou o download parará após o primeiro pacote. Novamente, é o Linux 2.4.x causando bugs na PROM e você pode evitar isto fazendo

    # echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

para ajustar a faixa de portas de origem que o servidor TFTP do Linux usa.

## Movendo as imagens TFTP para o local

Como próximo passo, coloque a imagem de inicialização TFTP que você precisa, como encontrada no where-files 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 um cliente em particular. Infelizmente, o nome do arquivo é determinado pelo cliente TFTP e não existem padrões rígidos.

Em máquinas Power Macintosh NewWorld, você precisará configurar o gerenciador de inicialização `yaboot` como a imagem de inicialização do TFTP. O `Yaboot` copiará as imagens de kernel e disco RAM via TFTP. Você terá que baixar os arquivos a seguir do diretório `netboot/`:

- `vmlinux`

- `initrd.gz`

- `yaboot`

- `yaboot.conf`

- `boot.msg`

Para a inicialização usando o PXE, tudo que você precisa já está configurado no arquivo `netboot/netboot.tar.gz`. Simplesmente descompacte este arquivo no diretório de imagem de inicialização do `tftpd`. Certifique-se de que seu servidor DHCP está configurado para passar o arquivo `pxelinux.0` para o `tftpd` como o nome de arquivo para inicialização.

Para inicialização através do PXE, tudo que você precisa já está configurado no arquivo `netboot/netboot.tar.gz`. Simplesmente descompacte este arquivo no diretório de imagem de inicialização do `tftpd`. Certifique-se de que seu servidor DHCP está configurado para passar o arquivo `/debian-installer/ia64/elilo.efi` para o `tftpd` como o nome de arquivo para inicialização.

### Inicialização através de TFTP em SPARC

Algumas arquiteturas SPARC adicionaram nomes de subarquiteturas, tais como SUN4M ou SUN4C, ao nome de arquivo. Assim, se a subarquitetura do seu sistema é SUN4C e, seu endereço IP é 192.168.1.3, o nome do arquivo deverá ser `C0A80103.SUN4C`. Contudo, ainda existem subarquiteturas cujo 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 shell (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 subarquitetura.

Se você fez tudo isso corretamente, executar o comando `boot net` a partir do OpenPROM deverá 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 minha-sparc.imagem`. Este arquivo também deverá residir no diretório que o servidor TFTP consulta.

### Inicialização através de TFTP em SGI

Nas máquinas SGI você poderá usar o `bootpd` para fornecer o nome do arquivo TFTP. Ele poderá ser fornecido na forma `bf=` no `/etc/bootptab` ou como opção `filename=` no arquivo `/etc/dhcpd.conf`.