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

Caso sua máquina esteja conectada a uma rede de área local, você poderá ser capaz de 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 máquinas CATS um servidor BOOTP .

Ao contrário do Open Firmware encontrado em máquinas Sparc e PowerPC, o console SRM não usará RARP para obter seu endereço IP, e então você deverá usar o BOOTP para inicializar via rede em seu Alpha. Você também poderá entrar com a configuração IP de suas interfaces de rede diretamente no console SRM. [3]

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.

4.4.1. Ativando o servidor TFTP

Para ter o servidor TFTP pronto, você terá primeiro que ter certeza que o tftpd está ativado. Ele normalmente é ativado tendo a seguinte linha no seu arquivo /etc/inetd.conf:


tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /tftpboot

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 (para a potato/2.2 e sistemas mais novos use /etc/init.d/inetd reload); em outras máquinas, encontre o ID do processo do inetd e execute o comando kill -HUP inetd-pid.

4.4.2. Mover as imagens TFTp para o Local

Como próximo passo, coloque a imagem de inicialização TFTP que precisa, como encontrada no Secção 4.2.3, “Onde encontrar os arquivos 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.

Freqüentemente, o arquivo que o cliente TFTP irá procurar é client-ip-in-hexclient-architecture. Para computar client-ip-in-hex, pegue cada byte do endereço IP do cliente e transforme-o em notação hexadecimal. Se tiver uma máquina por perto com o programa bc, você poderá usa-lo. Primeiro digite o comando obase=16 para ajustar a base para hex, então entre com componentes individuais do IP do cliente um de cada vez. Como em client-arquitetura, tente alguns valores.

4.4.2.1. Inicialização via TFTP no Alpha

No Alpha, você deverá especificar um nome de arquivo (como um caminho relativo ao diretório da imagem de inicialização) usando o argumento -file ou o comando boot do SRM ou definindo a variável de ambiente BOOT_FILE. Alternativamente, o nome do arquivo deverá ser fornecido via BOOTP (no dhcpd da ISC, use a diretiva filename). Ao contrário da Open Firmware, não existe nome padrão no SRM, assim você deverá especificar um nome de arquivo usando um destes métodos.

4.4.3. Instalação via TFTP em sistemas com pouca memória

Em alguns sistemas, o disco RAM de instalação padrão, combinado com os requerimentos de memória da imagem de inicialização do TFTP, não cabem na memória. Neste caso, você ainda poderá instalar usando o TFTP, você terá que ir através do passo adicional de montagem do sistema de arquivos raíz via NFS pela rede também. Este tipo de configuração também é apropriada para clientes sem discos (diskless) ou sem dados (dataless).

Primeiro, siga todos os passos acima descritos em Secção 4.4, “Preparando os arquivos para inicialização via rede usando TFTP”.

  1. Copie a imagem do kernel do Linux para seu servidor TFTP usando a imagem a.out para a arquitetura que estiver inicializando.

  2. Descompacte o arquivo raíz tar em seu servidor NFS (pode ser o mesmo sistema que seu servidor TFTP):

    
    # cd /tftpboot
    # tar xvzf root.tar.gz
    
    

    Tenha certeza de utilizar o comando tar da GNU (ao invés de outros programas, como o do SunOS, que manipula os dispositivos de forma incorreta como texto plano).

  3. Exporte seu diretório /tftpboot/debian-sparc-root com acesso root para seus clientes. E.g., adicione a seguinte linha ao seu arquivo /etc/exports (sintaxe do GNU/Linux, deverá ser similar no SunOS):

    
    /tftpboot/debian-sparc-root cliente(rw,no_root_squash)
    
    

    NOTA: "cliente" é o nome de estação ou endereço IP reconhecido pelo servidor para o sistema que deseja inicializar.

  4. Crie um link simbólico do endereço IP do seu cliente em notação pontuada para o arquivo debian-sparc-root no diretório /tftpboot directory. Por exemplo, caso o endereço IP do cliente seja 192.168.1.3, faça

    
    # ln -s debian-sparc-root 192.168.1.3
    
    

4.4.4. Instalando com o TFTP e NFS root

A instalação com TFTP e NFS raíz é similar a Secção 4.4.3, “Instalação via TFTP em sistemas com pouca memória” porque você não precisará carregar o disco RAM mais mas inicializará através do seu novo sistema de arquivos NFS criado. Você precisará então substituir o link simbólico para a imagem tftpboot por um link simbólico apontando para uma imagem de kernel (por exemplo, linux-a.out).

O RARP/TFTP requer que todos os daemons estejam sendo executados no mesmo servidor (a estação de trabalho que estiver enviando requisições TFTP de volta para o servidor que respondeu a requisição RARP anterior).



[3] Os sistemas Alpha também podem ser inicializados via rede usando o DECNet MOP (Maintenance Operations Protocol), mas isto nao será discutido aqui. Presumivelmente, seu operador local do OpenVMS estará satisfeito em ajuda-lo se você tiver que esquentar a cabeça para usar o MOP para inicializar o Linux em seu Alpha.