Existe um arquivo conf padrão para construir um kernel para a inicialização do pxe?

0

Resumo:

Estou tentando construir um kernel para o pxe boot do Clonezilla. Eu acho que o que vem com o live CD tem problemas de inicialização via pxe. Então eu preciso construir um kernel e até agora todas as minhas tentativas terminaram em pânico. Eu estava esperando que alguém pudesse compartilhar um conf base que eu poderia tentar construir. Existe tal coisa?

Um pouco mais de contexto para a questão ...

Tentando inicializar o Clonezilla no pxe. Este link link explica o que estou vendo. Mas depois de algumas pesquisas eu não acho que seja o problema. Minha interface não está recebendo o endereço IP. Se eu executá-lo a partir da linha de comando, ele diz selecionando o endereço, mas os nevers configuram a interface. Eu tentei pxelinux.0 (2/9/2009) pxelinux.0 (06/10/2014) e gpxelinux.0 (06/10/2014) e todos mostram o mesmo problema.

Como não há IP, o processo de inicialização não pode continuar porque não é possível extrair o arquivo squashfs.

Quando perguntei em Clonezilla e udchpd não funcionam , sugeriu-se que a questão talvez o kernel, foi quando eu comecei a construir um novo e vi os parâmetros do DHCP.

Acho que isso está relacionado ao meu problema, mas não à minha pergunta. Se obtiver os parâmetros corretos de construção do kernel, poderá corrigir seus problemas ....

Não é possível criar arquivos clonezilla TFTP do servidor TFTP do WDS durante a inicialização PXE

Mesclar um squashFS e um initrd em um único arquivo (inicialização PXE)

    
por Paul 20.07.2017 / 23:56

1 resposta

0

Não, não há configuração de kernel padrão para a inicialização do PXE. É possível compilar um kernel monolítico que tentará obter automaticamente um endereço IP usando BOOTP / DHCP básico, mas não é assim que normalmente é feito.

A abordagem moderna é usar um gerenciador de inicialização (por exemplo, pxelinux ou iPXE) que fará o download de dois arquivos: o kernel e um arquivo initramfs / initrd. O arquivo initramfs / initrd pode conter módulos do kernel (a serem carregados conforme necessário, na detecção de hardware correspondente) e utilitários necessários para a inicialização do hardware crítico, para que a inicialização possa prosseguir. No caso de inicialização a partir da rede, isso inclui a inicialização das interfaces de rede. O que acontece depois disso é determinado pela combinação do código / scripts embutidos no arquivo initramfs / initrd, e as opções de inicialização dadas ao kernel pelo bootloader (mais comumente usando a palavra-chave APPEND).

Não estou muito familiarizado com o udhcpd, mas parece ser um cliente DHCP muito mínimo. Por isso, pode ter as seguintes propriedades: - pode esperar que a interface de rede seja ativada antecipadamente (por exemplo, "ifconfig eth0 up" ou "ip link set eth0 up", dependendo se o antigo comando de configuração "ifconfig" ou o "ip" mais recente estiver disponível) - ele pode não manipular a configuração real da interface depois de receber os parâmetros DHCP: em vez disso, passará para um script, que deverá usar comandos como "ifconfig", "ip" e / ou "route" para configurar a interface de rede de acordo com os parâmetros recebidos.

Eu acho que você pode ter se fixado desnecessariamente na ideia de construir um kernel; é muito improvável que seja a causa raiz do seu problema. Você está se referindo ao link que é agora uma informação de 7 anos. (Nas distribuições Linux com todos os recursos, "ifup -a" é um comando comum de alto nível para inicializar todas as interfaces de rede; em configurações compactas como Clonezilla, o comando ifup geralmente não está presente.)

Você disse que suas tentativas até agora terminaram em pânico. Isso significa que o kernel está falhando ao acessar o sistema de arquivos raiz - e com o Clonezilla, o sistema de arquivos raiz está no arquivo filesystem.squashfs que deve ser baixado pelo initrd assim que a interface de rede for configurada.

Então você sabe exatamente o que deu errado com suas tentativas? Você já monitorou o tráfego de rede com o Wireshark ou similar?

O problema com a solução de problemas de inicialização de rede é que, quando algo dá errado no momento da inicialização, o kernel do Linux e os utilitários associados geralmente emitem tanta informação que as primeiras mensagens de erro são roladas para fora da tela. E geralmente essa primeira mensagem de erro é a mais importante: é muito provável que todos os erros subseqüentes sejam conseqüências dessa primeira falha.

Ao monitorar o tráfego da rede, você pode obter alguns fatos concretos: - o gerenciador de inicialização fará o download do kernel e do arquivo initrd do servidor TFTP? - após o bootloader ter iniciado o kernel, você pode ver outra consulta DHCP? Isso seria udhcpd recebendo os parâmetros da rede. - Depois disso, deve haver uma solicitação TFTP para o arquivo filesystem.squashfs. É bem sucedido ou não? Caso contrário, qual é a solicitação TFTP real enviada e para qual nome de caminho ela está mapeada no sistema de arquivos do servidor TFTP? Esse arquivo está presente no nome do caminho correto e o servidor TFTP tem permissão para enviá-lo?

Já experimentou o Clonezilla Live, uma versão do Clonezilla que se destina explicitamente a ser netbootable para o PXE? link

    
por 20.10.2017 / 17:09