PXEBootInstall

Prefácio

instalação utilizando o arranque da rede não deve ser confundido com DebianNetworkInstall. Na instalação de rede, você começa com um CD (ou memória Flash USB ou similar) para instalar um sistema Linux mínimo antes de continuar a baixar pacotes adicionais sobre a rede.

instalação usando inicialização de rede também é diferente de usar a rede para inicializar um sistema já instalado: nesse caso, a máquina cliente continua dependente do servidor estar operacional e funcionando em cada inicialização futura. O Linux Terminal Server Project (LTSP) funciona assim, por exemplo.

esta página descreve a instalação de um novo sistema Debian sem CD, DVD, USB de todo. Ao final do processo de instalação, a nova máquina é capaz de funcionar sem o suporte do servidor. Durante a instalação, você vai precisar de um servidor de inicialização de rede.

Como não existem servidores de inicialização fiduciais na natureza, você precisa configurar o seu próprio. Isto é consideravelmente mais complicado do que instalar o Debian de CD (abreviação para CD ou USB ou…). Normalmente, o arranque de rede só é usado se não houver realmente nenhuma maneira de arrancar do CD. Se o arranque do CD falhar, isto pode ser devido a problemas de BIOS que irão igualmente impedir o arranque da rede (tentativas típicas de solução de problemas incluem desligar o arranque seguro, a mudança de UEFI para o modo de arranque legado, e semelhantes).

na Web, vários artigos podem ser encontrados que descrevem em mais ou menos detalhes como configurar um servidor de inicialização de rede. Todos eles têm a mesma fraqueza.: você é obrigado a executar uma longa lista de instruções sem receber qualquer feedback antes do final do procedimento quando você tentar iniciar. Se funcionar, tudo bem. Se não, debugging vai se tornar muito difícil. Portanto, no seguinte, dividimos o procedimento em etapas que podem ser depuradas separadamente.

http://www.debian.org/releases/stable/amd64/ch04s05 – Guia de instalação Debian-4.5. A preparar os ficheiros para o arranque da rede TFTP

Nota: Se o seu sistema suportar o iPXE, então usando o netboot.xyz é provável que seja muito mais simples.

pré-condições

o computador que você deseja instalar será chamado de cliente.

o computador do qual você instala será chamado de servidor. Nós assumimos que o servidor está executando Debian.

para ser específico, assumimos que o cliente e o servidor fazem parte de uma LAN com os seguintes endereços IP:

Você descobrirá o valor de x mais tarde.

Note que muitos roteadores também fornecem um servidor DHCP: você terá que desligá-lo, uma vez que apenas um servidor DHCP pode executar em uma dada LAN. A menos que você possa configurar o servidor DHCP do seu router para cumprir com a configuração do servidor DHCP ISC abaixo, mas isso está fora do escopo deste documento.

também é possível que o roteador e o servidor sejam a mesma máquina, ou seja, que o seu servidor Debian seja o gateway padrão para esta LAN. Isto vai funcionar bem.

As seguintes instruções foram testadas com Debian 8.2 (Jessie) em setembro de 2015.

activar o arranque PXE

configurar o menu de arranque BIOS do cliente para arrancar a partir da rede. reiniciar. Na maioria dos sistemas, isso produz uma saída que contém o endereço MAC do cliente. Então, ele irá falhar com

 PXE-E53: no boot filename received.

Note o endereço MAC; ele será útil para interpretar mensagens de log.

em muitos servidores, também é possível mudar temporariamente para PXE boot sem alterar permanentemente as configurações de BIOS. Haverá algum tipo de tecla para acertar durante o BIOS POST. Em servidores Dell, F12 fará o truque (ou Esc então @ de uma consola de série ou IPMI).

configure o servidor DHCP

no servidor, precisamos configurar um servidor DHCP.

A melhor prática actual parece ser usar o pacote isc-dhcp-server, que fornece um servidor dhcpd.

seu arquivo de configuração é /etc/dhcp / dhcpd.conf. Modificar esse arquivo para que contenha sobre o seguinte; adaptar IP e endereços MAC para suas necessidades locais:

Depois de cada modificação do acima, reinicie o servidor DHCP com

 # /etc/init.d/isc-dhcp-server restart

ou com o systemd equivalente

 # systemctl restart isc-dhcp-server

Verifique o que realmente está sendo executado:

 # pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q

ou

 # systemctl status isc-dhcp-server

o que dá um pouco mais de informações.

Antes de reiniciar o cliente, poderá gostar de executar

 # journalctl -fu isc-dhcp-server

o que lhe mostra as últimas linhas do registo do servidor DHCP, actualizando depois o ecrã com cada novo registo de Registo. (Se você não quer “seguir” o log, basta deixar de fora o “f”)

 PXE-E32: TFTP open timeout

e, ao mesmo tempo, você verá mensagens de registo no servidor de tela mostrando o DHCP de pedidos e ofertas de saída similar ao abaixo a alternativa comando abaixo

Se você preferir não usar o systemd, ou deseja comparar a tradicional saída de log para fins de diagnóstico, você pode olhar para cima /var/log/syslog, por exemplo, com este comando

 # grep DHCP /var/log/syslog
  • onde você deve ver algo como:

(Note que as versões anteriores do Debian usaram /var/log / daemon.log em vez de syslog)

Se nada aparecer no log com qualquer um dos comandos, verifique as ligações de rede entre o servidor e o cliente. Note que alguns switches de rede podem impor limitações severas ao tráfego DHCP; para os Cisco ones, use ‘portfast’ se possível (ver http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtml).

configure o servidor TFTP

em seguida, precisamos configurar um servidor TFTP no servidor. mais uma vez, existem vários pacotes que fornecem TFTP (FTP trivial, inseguro, para ser usado apenas na LAN). Parece ser uma boa prática usar o pacote tftpd-hpa. Na instalação, algumas perguntas são feitas. A resposta a estas perguntas vai para um arquivo de configuração, /etc/default/tftpd-hpa. Não deverá haver necessidade de modificar o seguinte conteúdo por omissão:

 TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

ignorar os sítios web mais antigos que o instruem a inserir algo como ‘RUN_DAEMON=”sim”.

Depois de cada modificação do arquivo de configuração acima, reinicie o servidor TFTP com

 # /etc/init.d/tftpd-hpa restart

ou

 # systemctl restart tftpd-hpa

Em Jessie, o diretório /srv/tftp será criado automaticamente. Isto significa que os próximos dois passos não são necessários se você usar Jessie.

inicialmente, nas versões pré-Jessie, reiniciar o servidor TFTP pode falhar com uma mensagem como

 Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

Portanto, como root, crie o directório /srv/tftp. Reiniciar o servidor TFTP. Verificar se está realmente a correr:

 # pgrep -lf tftpd 12555 /usr/sbin/in.tftpd

ou

 # systemctl status tftpd-hpa

o que mais uma vez dá algumas linhas de log em vez de apenas o fato de que a tarefa é (não é) execução.

é útil testar o seu servidor de TFTP com um cliente de TFTP; pode simplesmente usar o pacote tftp-hpa para este fim:

 # cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)

também é útil ver quais os itens de registo que obtém quando obtém um ficheiro que existe, e quando tenta obter um que não existe. Ao usar o tftp para testar o seu servidor tftpd, tente seguir as suas experiências com formas antigas e novas do comando log enquanto está a usar o seu cliente TFTP para descarregar ficheiros que existem, bem como ficheiros que não existem.

O comando tradicional em Jessie

 # tail -f /var/log/syslog

(Note novamente que as versões anteriores do Debian usaram/var/log / daemon.log em vez de syslog.)

On systemd

 # journalctl -fu tftpd-hpa

infelizmente, estes parecem dar resultados diferentes, a partir de janeiro de 2017. O comando systemd não mostra pedidos de arquivos para arquivos que não existem.

é bastante útil saber o que o cliente está pedindo, pois ele ajuda você a mover arquivos para o local esperado se você cometer erros mais tarde. Atualmente, provavelmente, vale a pena usar a forma tradicional de rastreamento de log para TFTPD. reinicie o cliente. Você deve ver mensagens de erro no ecrã do cliente Começando com

 PXE-T01: File not found

o que é bastante correto, uma vez que ainda não fornecemos quaisquer arquivos. Na tela do servidor, você verá exatamente o que o cliente pediu.

forneça a imagem de arranque

transferir o netboot / netboot.alcatrao.gz de um espelho Debian (veja http://www.debian.org/distrib/netinst#netboot).

opcional: para verificar a assinatura digital, escreva estes comandos:

descompactar o netboot.alcatrao.gz to / srv/tftp, que deve agora conter

 debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info

pode ser necessário chmod-R A+R * para tornar todos os ficheiros nesta pasta legíveis para o servidor TFTP.

Você também pode ter que editar grub / grub.cfg a fim de definir a sua consola série, se necessário (substituí a secção sobre o terminal gráfico):

serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial

assim como o console serial para o debian-installer, acrescentando que este linha de comando do kernel:

console=ttyS1,115200n8r console=tty1

Reinicie o daemon TFTP, e novamente você pode gostar siga as entradas de log de como eles aparecem

 # tail -f /var/log/syslog

em seguida, reinicie o Cliente. Você deve chegar a uma tela Debian install.

Se procurar no /var/log / syslog, irá ver o que foi transferido do servidor TFTP pelo iniciador PXE e depois pelo SYSLINUX. Você também pode ver algumas respostas de ” NAK ” quando o SYSLINUX pediu arquivos que não existem (ele tenta vários locais para alguns arquivos importantes).

O carregador PXE (o firmware na BIOS ou o controlador de rede do cliente) tenta carregar nesta ordem:

  • pxelinux.0 (ou mais exatamente, o que você disse para baixar no campo ‘Nome de arquivo’ da resposta DHCP)

então SYSLINUX/PXELINUX tentará pesquisar sua configuração em diferentes caminhos, desde o mais específico ao mínimo:

  • pxelinux.cfg/GUID
  • pxelinux.cfg / MAC
  • pxelinux.cfg / default

e se o menu de configuração depende de outros itens de configuração, eles também são baixados. Debian vai pelo menos precisar do ‘bootmenu.ficheiro txt que é o menu principal.

Por omissão, você chega ao ecrã gráfico do menu debian install start. Carregue em’ enter ‘ para iniciar a instalação. Seja paciente: pode demorar mais de um minuto antes da próxima tela (‘Selecionar uma língua’) aparecer.

forma alternativa de obter a imagem de arranque

Se tiver um sistema Debian da mesma versão que deseja instalar, poderá instalar a imagem de arranque com o apt.

agora aponte o servidor tftp para /usr/lib/debian-installer/images/$VERSION/$ARCH/$INTERFACE onde INTERFACE=texto para o instalador de modo de texto ou INTERFACE=gtk para o instalador gráfico. Uma maneira simples de conseguir isso é transformar / srv / tftp em um link simbólico.

outro modo-use Dnsmasq

dnsmasq é um leve, fácil de configurar DNS forwarder E servidor DHCP com a funcionalidade BOOTP/TFTP/PXE. Ou seja, você pode substituir isc-dhcp-server e tftpd-hpa por Dnsmasq.

A seguir é o /etc / dnsmasq.conf fornece a mesma funcionalidade que o método de instalação e configuração do isc-dhcpd-server e tftpd-hpa descrito acima.

Descarregue o netboot.alcatrao.gz e extraí – lo no / srv / tftp como descrição anterior.

problemas potenciais

Se o kernel na imagem do netboot ficar fora de sincronia com os pacotes do módulo do kernel, então os módulos não irão carregar e a instalação irá falhar, os sintomas habituais são que as mensagens sobre “símbolos em falta” aparecem na consola ctrl-alt-f4.

para corrigir isso, atualize o kernel e o initrd no servidor netboot.

provavelmente há uma questão BTS Debian aberta para isso, mas não consigo encontrá-la agora.

Ver também

  • http://www.debian.org/releases/stable/amd64/ch04s05 – Debian Installation Guide-4.5. A preparação dos ficheiros para o arranque da rede TFTP

  • di-netboot-assistant automatiza a maioria dos passos descritos acima: DebianInstaller/NetbootAssistant

  • o instalador Lenny no netboot.alcatrao.o gz não suporta a instalação com a consola série por omissão. Mais informações sobre este problema, e um patch para permitir o acesso serial console, podem ser encontradas em 309223.

  • https://networkboot.org/

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *