Depurando problemas de inicialização do PXE com o GRUB

1

Quero inicializar o atual Antergos Live CD por meio de pxe netboot . Para fazer isso, eu fiz o download do ISO, montei e copiei o conteúdo em /tftp/antergos/ .

Depois, eu configuro dnsmasq para oferecer tftp e usado

grub-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi \
                  --fonts="unicode" -o bootx64.efi grub/grub.cfg

para gerar um gerenciador de carga em /tftp/antergos/arch/boot/ a partir do seguinte grub.cfg :

set timeout=5

menuentry 'Antergos x86_64' {
     insmod net
     insmod tftp
     insmod efi_gop
     set net_default_server=192.168.0.1
     net_add_addr eno0 efinet0 192.168.0.150

        linux   (tftp)/antergos/arch/boot/vmlinuz archisobasedir=arch archisolabel=ANTERGOS modules-load=loop rd.modules-load=loop udev.log-priority=crit rd.udev.log-priority=crit quiet splash
        initrd  (tftp)/antergos/arch/boot/archiso.img
}

O dnsmasq está configurado para fornecer bootx64.efi :

enable-tftp
tftp-root=/tftp
dhcp-option=option:Bootfile-name,"/antergos/arch/boot/bootx64.efi"
dhcp-boot=/antergos/arch/boot/bootx64.efi
dhcp-option-force=210,/antergos/
dhcp-option-force=66,192.168.0.1
dhcp-option=3,192.168.0.101

No entanto, quando seleciono pxe (IPv4) inicializando na minha máquina , recebe o bootx64.efi e depois vai direto para o shell grub . No shell, posso cat (memdisk)/grub/grub.cfg e obter o conteúdo acima de grub.cfg , portanto, suponho que o shell seja proveniente de bootx64.efi e não de minha instalação local existente.

Como faço para diagnosticar o que está errado aqui?

    
por Nobody 11.12.2016 / 21:28

1 resposta

2

O problema foi que o grub parece por padrão por grub.cfg em (memdisk)/boot/grub . O memdisk criado pelo comando na pergunta ( grub-mkstandalone [...] -o bootx64.efi grub/grub.cfg ) ficou assim:

- boot
- grub
 - grub.cfg

Então o grub não encontraria o grub.cfg e não faria nada.

A solução era chamar grub-mkstandalone de fora da pasta boot e passá-la como parte do caminho grub.cfg da seguinte forma:

grub-mkstandalone -d /usr/lib/grub/x86_64-efi/   -O x86_64-efi  --fonts="unicode"  \
                  -o boot/bootx64.efi boot/grub/grub.cfg

que gera os seguintes (memdisk) contents:

- boot
 - grub
  - grub.cfg
    
por 18.12.2016 / 14:42