Inicialização PXE - kernel não encontrado no servidor TFTP

4

Eu segui o seguinte link para a inicialização do PXE, link

e eu consegui fazer o ping do cliente no servidor e também quando inicializei o cliente. Ele está obtendo o endereço IP do servidor.

Mais tarde, recebi este erro

PXELinux 3.82 2009-06-09
. . . [other informations]
!PXE Entry point found (we hope) at 9D3B:0109 via plan A
UNDI code segment at 9D3B len 16C2
UNDI data segment at 933B len A000
Getting cached packet 01 02 03
. . . [other informations]
TFTP prefix:
Trying to load: pxelinux.cfg/ec5db4c0-74fe-d511-b9e7-3d9235afe5a1
Trying to load: pxelinux.cfg/01-00-17-31-b6-5e-a8
Trying to load: pxelinux.cfg/0A64491E
Trying to load: pxelinux.cfg/0A64491
Trying to load: pxelinux.cfg/0A6449
Trying to load: pxelinux.cfg/0A644
Trying to load: pxelinux.cfg/0A64
Trying to load: pxelinux.cfg/0A6
Trying to load: pxelinux.cfg/0A
Trying to load: pxelinux.cfg/0
Trying to load: pxelinux.cfg/default
Unable to locate configuration file
Boot failed: press a key to retry or wait for reset

Eu coloquei todos os arquivos mencionados no link no tftpboot. Alguém pode explicar qual poderia ser o problema?

    
por user70523 20.02.2011 / 09:47

4 respostas

2

Você pode tentar executar o tcpdump (ou wireshark) no servidor de inicialização e ver o que o cliente está solicitando. Pessoalmente, eu gosto de ver o que está acontecendo no ar, já que é verdade, verdade total e apenas verdade;) e isso me ajuda a determinar o que realmente está acontecendo.

Falando em permissões - lembre-se também das permissões do diretório. O processo tem que ter permissão de execução (x) no diretório para poder entrar no diretório (think: cd / path / x) e ler (r) a permissão para ler seu conteúdo (pense: ls / path / x). O bit de execução é uma obrigação, e a permissão de leitura para o usuário que o daemon tftpd executa também não deve prejudicar.

A seguir, você pode adicionar -vvvv às opções dentro do arquivo /etc/default/tftpd-hpa e reiniciar o servidor. Isso aumentará o nível de log do daemon tftpd-hpa e poderá lhe dar dicas extras quanto à raiz do problema (dê uma olhada em /var/log/messages ).

Outra idéia: tente obter o arquivo que seu cliente deseja por tftp (você obterá o que o cliente deseja ouvindo o que é executado na conexão) a partir do servidor tftp. Se você pode baixar o arquivo, então tem certeza de que o seu servidor tftp funciona, os arquivos estão lá, os caminhos estão corretos e as permissões estão corretas. Se houver algum outro problema, eles estão no lado do cliente (ou incompatibilidade de protocolo cliente-servidor).

Última coisa: eu não gosto da recomendação do HOWTO de tornar o diretório / tftpboot mundial gravável. Depois de obter a configuração de trabalho, remova a permissão de gravação do diretório. Um cliente invasor pode facilmente preencher o sistema de arquivos no qual seu diretório / tftpboot reside - não há autenticação embutida no protocolo (portanto, ftp "trivial").

Espero que a parede do texto ajude;)

    
por 21.02.2011 / 10:38
0

Pode haver mais informações registradas no arquivo /var/log/messages . Você já olhou lá? Isso soa como um problema de permissão. Certifique-se de que o usuário que o tftpd-hpa está executando possa ler o arquivo /tftpboot/pxelinux.cfg/default . Além disso, certifique-se de que o arquivo não possa ser gravado por outros usuários. Você pode verificar as permissões com ls; o início da saída deve se parecer com

$ ls -l /tftpboot/pxelinux.cfg/default
-rw-rw-r--
    
por 21.02.2011 / 06:49
0

Você precisa criar um link para um arquivo pxeconfig em /tftpboot/pxelinux.cfg. O link flexível deve ser denominado 0A64491E. O link macio deve apontar para um arquivo e no caso de nosso datacenter ele aponta para ../profiles (não importa onde o arquivo de configuração é)

Um exemplo de um arquivo de instalação simples para o nosso centos6 pxeconfig é

DEFAULT INSTALL
LABEL INSTALL
KERNEL centos6/x86_64/vmlinuz
APPEND utf8 load_ramdisk=1 root=/dev/ram nofb ks=http://servername/mrepo/kickstarts/centos6.ks ksdevice=eth0 initrd=centos6
/x86_64/initrd.img console=ttyS1,115200

Alguns bits importantes aqui são garantir que você esteja enviando para a sessão de console correta. Se você não fizer isso corretamente, você só receberá um cursor piscando ou apenas um.

Além disso, definir a taxa de transmissão (ou seja, 115200 no caso acima) ajuda a ficar correta se você estiver usando o console para se conectar ao servidor através de uma rede de gerenciamento.

    
por 15.03.2012 / 16:54
0

Eu estava tendo o mesmo problema, e a desativação do SELinux resolveu isso. Estou executando o CentOS 6.5 e usando o DRBL / Clonezilla.

Etapas:

  1. Abrir /etc/selinux/config
  2. Alterar SELINUX=enforcing para SELINUX=disabled
  3. Reinicializar
por 03.01.2014 / 15:32