UEFI iPXE inicializa em resultados debian em shell grub

2

Para um pouco de contexto, sou um estudante de administração de sistemas, tentando expandir meu conhecimento de rede, já que não é meu ponto mais strong.

Atualmente, estou experimentando com o PXE. Há alguns dias, configurei algumas máquinas virtuais ESXi, uma delas sendo um servidor DHCP e TFTP, e as outras duas sendo clientes BIOS e UEFI. Eu consegui inicializar um debian através do PXE, em máquinas BIOS e UEFI.

Eu ouvi sobre o iPXE e as possibilidades que ele traz (como inicializar em HTTP, iSCSI, ...) e decidi tentar. Por enquanto, ainda estou tentando inicializar meu instalador debian netboot local, achei que testaria os arquivos remotos depois de ter certeza de que a instalação estava correta.

Neste ponto, é assim que meu conf DHCP se parece (menos qualquer coisa que não seja realmente de interesse):

option arch code 93 = unsigned integer 16;
class "pxe-clients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    option tftp-server-name "192.168.0.5";
    next-server 192.168.0.5;
    if option arch = 00:00 {
        if exists user-class and option user-class = "iPXE" {
            filename = "pxelinux.0";
        } else {
            filename = "undionly.kpxe";
        }
    } elsif option arch = 00:02 or option arch = 00:06 or option arch = 00:07 or option arch = 00:08 or option arch = 00:09 {
        if exists user-class and option user-class = "iPXE" {
            filename = "bootnetx64.efi";
        } else {
            filename = "ipxe.efi";
        }
    } else {
        filename = "UNKNOWN_VCI";
    }
}

192.168.0.5 é o IP da LAN do servidor DHCP / TFTP.

Quanto ao diretório raiz do meu servidor TFTP:

root@vmpxe:/srv/tftp# ls -l
total 968
lrwxrwxrwx 1 root root   37 Sep 22 14:01 bootnetx64.efi -> debian-installer/amd64/bootnetx64.efi
drwxrwxr-x 3 root root 4.0K Sep 22 00:21 debian-installer
-rw-r--r-- 1 root root 896K Sep 22 16:00 ipxe.efi
lrwxrwxrwx 1 root root   47 Sep 22 00:21 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
lrwxrwxrwx 1 root root   33 Sep 22 00:21 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root   35 Sep 22 00:21 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
-rw-r--r-- 1 root root  64K Sep 22 16:00 undionly.kpxe
-rw-rw-r-- 1 root root   64 Sep 22 00:21 version.info

Mais uma vez, insisto no fato de que, antes do iPXE, tudo funcionava bem em ambas as arquiteturas. As únicas alterações que fiz foram baixar os arquivos undionly.kpxe e ipxe.efi do site do iPXE e editar o conf DHCP para agrupar as configurações do nome do arquivo nas condições if exists user-class and option user-class = "iPXE" {...} else {...} .

Agora, a máquina da BIOS faz o PXE - > iPXE - > O instalador do netboot do Debian. Tudo funciona bem.

No entanto, a máquina UEFI faz o PXE - > iPXE - > casca de larva.

Eu tentei tcpdump o processo, mas que não deu em nada: todo o tráfego parece normal e esperado. Não difere muito do que eu tinha antes do iPXE.

Alguma ideia do que pode estar acontecendo aqui?

EDIT: Outros testes do tcpdump mostram que sem o iPXE, minha máquina EFI envia pacotes RRQ para o carregador de inicialização e um monte de outros arquivos que, eu suponho, são referenciados pelo próprio bootloader. No entanto, com o iPXE, somente o bootloader eu só vejo o bootloader.

Então eu acho que a pergunta correta é: o que acontece com o iPXE para não recuperar todos os arquivos que foram baixados corretamente por um PXE padrão?

    
por kRYOoX 22.09.2016 / 18:22

1 resposta

1

não relacionado ao seu problema, mas

para inicializar o EFI64

} elsif option arch = 00:02 or option arch = 00:06 or option arch = 00:07 or option arch = 00:08 or option arch = 00:09 {

deve ser alterado para

} elsif option arch = 00:07 or option arch = 00:09 {

Em relação à sua pergunta, se você inicializar bootnetx64.efi , é isso que você recebe; uma tela do Grub.

veja aqui: link

EDITAR: Quando você carrega pxelinux.0 dependendo de sua versão, ele recupera componentes dinâmicos mais a definição de menu pxelinux.0. quando você carrega o iPXE, você não tem esses arquivos extras carregados.

    
por 23.09.2016 / 12:06