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