Se a sua máquina estiver ligada a uma rede local poderá conseguir arrancar pela rede a partir de outra máquina, utilizando TFTP. Se tencionar iniciar a instalação do sistema a partir de outra máquina, os ficheiros de arranque terão de ser colocados numa localização específica dessa máquina, e a máquina terá de ser configurada para suportar o arranque da sua máquina especifica.
Terá de configurar um servidor de TFTP, e para muitas máquinas, um servidor de DHCP, ou um servidor de BOOTP.
BOOTP é um protocolo IP que informa um computador do seu endereço IP e em que local da rede obtém uma imagem de arranque. O DHCP (Dynamic Host Configuration Protocol) é mais flexível, compatível com extensões anteriores do BOOTP. Alguns sistemas apenas podem ser configurados via DHCP.
O Trivial File Transfer Protocol (TFTP) é utilizado para servir a imagem de arranque ao cliente. Teoricamente pode ser utilizado, qualquer servidor, em qualquer plataforma, que implemente estes protocolos. Nos exemplos desta seção, iremos disponibilizar comandos para SunOS 4.x, SunOS 5.x (a.k.a. Solaris), e GNU/Linux.
Nota | |
---|---|
Para um servidor Debian GNU/Linux nós recomendamos o |
O ISC dhcpd é um software livre servidor de DHCP. Para Debian GNU/Linux é recomendado o pacote isc-dhcp-server
. Aqui está um exemplo de ficheiro de configuração (veja /etc/dhcp/dhcpd.conf
):
option domain-name "example.com"; option domain-name-servers ns1.example.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.img"; server-name "servername"; next-server servername; hardware ethernet 01:23:45:67:89:AB; fixed-address 192.168.1.90; }
Neste exemplo, existe um servidor servername
que executa todo o trabalho de servidor DHCP, de servidor TFTP e de gateway de rede. Irá muito provavelmente necessitar de alterar as opções de domain-name, tal como o nome do servidor e o endereço de hardware do cliente. A opção filename
deverá ser o nome do ficheiro obtido por TFTP.
Após ter editado o ficheiro de configuração dhcpd, reinicie-o com /etc/init.d/isc-dhcp-server restart
.
Aqui está outro exemplo para um dhcp.conf
utilizando o método Pre-boot Execution Environment (PXE) de TFTP.
option domain-name "example.com"; default-lease-time 600; max-lease-time 7200; allow booting; allow bootp; # O próximo parágrafo necessita ser alterado para se adequar com o seu caso 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; # O endereço de gateway que pode ser diferente # (acesso à internet por exemplo) option routers 192.168.1.1; # indica o dns que quer utilizar option domain-name-servers 192.168.1.3; } group { next-server 192.168.1.3; host tftpclient { # endereço de hardware do cliente tftp hardware ethernet 00:10:DC:27:6C:15; filename "pxelinux.0"; } }
Note que para um arranque PXE, o ficheiro do cliente com o nome de pxelinux.0
, é o gestor de arranque, não uma imagem de kernel (veja abaixo a Secção 4.5.4, “Mover Imagens TFTP Para o Lugar”).
Se a sua máquina utilizar UEFI para arrancar terá de especificar um gestor de arranque apropriado para máquinas UEFI, por exemplo
group { next-server 192.168.1.3; host tftpclient { # tftp client hardware address hardware ethernet 00:10:DC:27:6C:15; filename "debian-installer/amd64/bootnetx64.efi"; } }
Estão disponíveis dois servidores de BOOTP para GNU/Linux. O primeiro é o CMU bootpd. O outro é na verdade um servidor de DHCP: o ISC dhcpd. Em Debian GNU/Linux estes estão contidos respetivamente nos pacotes bootp
e isc-dhcp-server
.
Para utilizar o CMU bootpd, primeiro tem de retirar (ou adicionar) o comentário da linha relevante em /etc/inetd.conf
. Em Debian GNU/Linux, pode executar update-inetd --enable bootps
, para o fazer. No caso do seu servidor de BOOTP não correr em Debian, a linha em questão deve parecer-se com:
bootps dgram udp wait root /usr/sbin/bootpd bootpd -i -t 120
Agora, terá de criar um ficheiro /etc/bootptab
. Este tem o mesmo tipo de formato familiar e críptico dos ficheiros de printcap
, termcap
, e disktab
do bom velho BSD. Para mais informações veja a página do manual de bootptab
. Para o CMU bootpd, irá necessitar saber o endereço de hardware MAC) do cliente. Aqui está um exemplo de/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:
Tem de alterar pelo menos a opção “ha”, que especifica o endereço de hardware do cliente. A opção “bf” especifica o ficheiro que o cliente deve obter via TFTP; para mais detalhes veja a Secção 4.5.4, “Mover Imagens TFTP Para o Lugar”.
Por contraste, configurar BOOTP com ISC dhcpd é bastante fácil, pois trata os clientes de BOOTP como casos moderadamente especiais de clientes de DHCP. Algumas arquiteturas necessitam duma configuração complexa para arrancarem os clientes por BOOTP. Se for um desses casos, leia a Secção 4.5.1, “Configurar um servidor DHCP”. Caso contrário poderá ser capaz de o conseguir simplesmente acrescentando a diretiva allow bootp
ao bloco de configuração para a subnet que contém o cliente em /etc/dhcp/dhcpd.conf
, e reiniciar o dhcpd com /etc/init.d/isc-dhcp-server restart
.
Para ter o servidor de TFTP pronto, primeiro deve assegurar-se que o tftpd está ativo.
No caso do tftpd-hpa
o serviço pode ser corrido de duas formas. Pode ser iniciado a pedido pelo daemon inet
do sistema, ou pode ser configurado para correr como um daemon independente. O método a utilizar é escolhido quando o pacote é instalado e pode ser alterado reconfigurando o pacote.
Nota | |
---|---|
Historicamente, os servidores TFTP utilizavam o diretório |
Todas as alternativas do in.tftpd disponíveis em Debian devem registar, por predefinição, os pedidos TFTP no registo do sistema. Algumas suportam um argumento -v
para aumentar o detalhe. É recomendado verificar essas mensagens de registo no caso de ocorrerem problemas de arranque já que são um bom ponto de partida para diagnosticar a causa dos erros.
Em seguida, coloque a imagem de arranque do TFTP de que necessita, conforme se encontra na Secção 4.2.1, “Onde Encontrar Ficheiros de Instalação”, no diretório de imagem de arranque tftpd. Terá de fazer um link a partir desse ficheiro para o ficheiro que o tftpd irá utilizar para iniciar um cliente em particular. Infelizmente, o nome do ficheiro é determinado pelo cliente TFTP, e não existem standards sólidos.
Para arranque PXE, tudo o que deve precisar configurar está no tarball netboot/netboot.tar.gz
. Simplesmente extraia este tarball para o diretório da imagens de arranque tftpd. Certifique-se que o servidor de dhcp está configurado para passar /pxelinux.0
ao tftpd como o nome do ficheiro para arrancar. Para máquinas UEFI, tem de passar um nome de imagem de arranque EFI (tal como /debian-installer/amd64/bootnetx64.efi
).