Preboot Execution Environment (Português)

Neste guia, o PXE é usado para inicializar a mídia de instalação com uma opção-rom apropriada que ofereça suporte ao PXE no destino. Isso funciona bem quando você já possui um servidor configurado.

Status de tradução: Esse artigo é uma tradução de Preboot Execution Environment. Data da última tradução: 2020-06-23. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Do Wikipédia:

O Ambiente de Pré-execução (PXE ou "pixie", ambos do inglês: Preboot eXecution Environment) é um ambiente para inicializar computadores usando a interface da placa de rede sem a dependência da disponibilidade de dispositivos de armazenamento (como disco rígidos) ou algum sistema operacional instalado.

Preparação

Obtenha a mídia de instalação oficial mais recente da página de instalação.

Em seguida, monte a imagem:

# mkdir -p /mnt/archiso
# mount -o loop,ro archlinux-data_lançamento-x86_64.iso /mnt/archiso

sendo data_lançamento a data de lançamento no nome do arquivo ISO como, por exemplo, 2020.03.01.

Configuração do servidor

Você precisará configurar um DHCP (para atribuir endereços e anunciar a configuração), TFTP (para transferir pxelinux, kernel e initramfs) e um dos serviços para transferência do sistema de arquivos raiz: servidor HTTP, NFS ou NBD.

No momento, o Arch ISO possui suporte apenas à inicialização PXE no estilo do BIOS. Veja FS#50188 para mais informações.

Arch Netboot possui suporte a inicialização no estilo UEFI se você precisar. Porém, o resto dessa página tem foco na ISO.

Rede

Ative sua interface de rede cabeada e atribua-lhe um endereço adequado para sua rede.

# ip link set eth0 up
# ip addr add 192.168.0.1/24 dev eth0

DHCP + TFTP

Você precisará de um servidor DHCP e TFTP para configurar a rede no destino da instalação e facilitar a transferência de arquivos entre o servidor PXE e o cliente; O dnsmasq faz as duas coisas e é extremamente fácil de configurar.

Instale o pacote dnsmasq.

Configure o dnsmasq:

# /etc/dnsmasq.conf
port=0
interface=eth0
bind-interfaces
dhcp-range=192.168.0.50,192.168.0.150,12h
dhcp-boot=/arch/boot/syslinux/lpxelinux.0
dhcp-option-force=209,boot/syslinux/archiso.cfg
dhcp-option-force=210,/arch/
dhcp-option-force=66,192.168.0.1
enable-tftp
tftp-root=/mnt/archiso

Inicie dnsmasq.service.

Transferindo o sistema de arquivos raiz do archiso

Graças aos ganchos de initcpio , archiso_pxe_nfs e no archiso, é possível inicializar usando HTTP, NFS ou NBD. O tempo de inicialização é aproximadamente o mesmo nos três métodos, mas o método HTTP permite assistir a um estado de download do airootfs.sfs em porcentagens.

HTTP

Entre todas as alternativas, o darkhttpd é de longe o mais trivial de configurar (e o mais leve).

Primeiro, instale o pacote .

Então, inicie o darkhttpd usando como raiz de documentos:

# darkhttpd /mnt/archiso
darkhttpd/1.8, copyright (c) 2003-2011 Emil Mikulic.
listening on: http://0.0.0.0:80/

NFS

Você precisará configurar um servidor NFS com uma exportação na raiz da mídia de instalação montada, que seria caso você tenha seguido #Preparação. Depois de configurar o servidor, adicione a seguinte linha ao seu arquivo /etc/exports:

Se o servidor já estiver em execução, reexporte os sistemas de arquivos com .

As configurações padrão no instalador esperam encontrar o NFS em , então você precisará editar as opções de inicialização. Para fazer isso, pressione Tab na opção apropriada do menu de inicialização e edite a opção de acordo:

archiso_nfs_srv=${pxeserver}:/mnt/archiso

Alternativamente, você pode usar para todo o processo.

Após o carregamento do kernel, a imagem de inicialização do Arch copiará o sistema de arquivos raiz via NFS para o host de inicialização. Isso pode demorar um pouco. Quando isso for concluído, você deverá ter um sistema em execução.

NBD

Instale o pacote e configure-o:

sendo data_lançamento a data de lançamento no nome do arquivo ISO como, por exemplo, 2020.03.01.

Inicie .

Servidor PXE existente

Se você já possui um servidor PXE com uma configuração de sistema PXELINUX (por exemplo, uma combinação de DHCP e TFTP), pode adicionar os seguintes itens de menu ao seu arquivo para inicializar o Arch através do seu método preferido:

LABEL archlinux
        MENU LABEL Arch Linux x86_64
        LINUX ''/caminho/extração/Arch/ISO''/arch/boot/x86_64/vmlinuz
        INITRD ''/caminho/extração/Arch/ISO''/arch/boot/intel_ucode.img,''/caminho/extração/Arch/ISO''/arch/boot/amd_ucode.img,''/caminho/extração/Arch/ISO''/arch/boot/x86_64/archiso.img
        APPEND archisobasedir=arch archiso_http_srv=''http://servidorhttp/caminho/extração/Arch/ISO''/
        SYSAPPEND 3
        TEXT HELP
        Arch Linux 2018.09.01 x86_64
        ENDTEXT

Você pode substituir por para NFS ou para NBD (consulte exemplos de uso no arquivo que resido na ISO do Arch). Seja qual for o método escolhido, você deve passar o parâmetro para instruir o kernel a abrir a interface de rede antes de tentar montar a mídia de instalação na rede. É necessário passar BOOTIF= quando houver várias interfaces com fio no lado do cliente e/ou você desejar que o resolv.conf já esteja configurado no archiso inicializado. Você pode usar máscara de sysappend 3 (que é 1+2) para passar esses parâmetros automaticamente. Para obter os parâmetros de inicialização disponíveis, consulte README.bootparams.

Instalação

Para esta parte, você precisará descobrir como informar o cliente para tentar uma inicialização do PXE; no canto da tela, junto com as mensagens normais de postagem, geralmente haverá alguma dica sobre qual tecla pressionar para tentar inicializar o PXE primeiro. Em um IBM x3650, o exibe um menu de inicialização, cuja primeira opção é Network; em um Dell PE 1950/2950, pressionar entra na inicialização do PXE diretamente.

Inicialização

Examinar journald no servidor PXE fornecerá algumas informações adicionais sobre o que exatamente está acontecendo durante os estágios iniciais do processo de inicialização do PXE:

Depois de carregar o e o via TFTP, esperamos que você seja apresentado a um menu de inicialização syslinux com várias opções, onde é possível selecionar Boot Arch Linux (x86_64) (HTTP).

Em seguida, o kernel e o initramfs (apropriados para a arquitetura que você selecionou) serão transferidos, novamente via TFTP:

dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/x86_64/vmlinuz to 192.168.0.110
dnsmasq-tftp[2544]: sent /mnt/archiso/arch/boot/x86_64/archiso.img to 192.168.0.110

Se tudo correr bem, você deverá ver a atividade no darkhttpd vinda do destino PXE; nesse ponto, o kernel seria carregado no destino PXE e no init:

Após o download do sistema de arquivos raiz via HTTP, você acabará no prompt normal de raiz do sistema ativo zsh.

Pós-inicialização

A menos que você deseje que todo o tráfego seja roteado através do servidor PXE (que não funcionará de qualquer maneira, a menos que você configure corretamente, você pode querer parar dnsmasq.service e obter uma nova concessão no alvo da instalação, conforme apropriado para a disposição da sua rede.

Você também pode matar darkhttpd; o alvo já baixou o sistema de arquivos raiz, portanto, não é mais necessário. Enquanto você está nisso, também pode desmontar a imagem de instalação:

# umount /mnt/archiso

Neste ponto, você pode seguir o guia de instalação.

Sistemas com pouca memória

A opção do initramfs pode ser usada para controlar se o sistema de arquivos raiz deve ser copiado para RAM na sua totalidade na inicialização antecipada.

É altamente recomendável deixar essa opção em branco e só deve ser desativada se for totalmente necessário (sistemas com menos de ~256MB de memória física). Acrescente à sua linha do kernel, se desejar.

Compartilhando internet com clientes PXE

Se sua rede para clientes PXE for privada (por exemplo, 192.168.1.0/24) e você desejar que eles possam acessar a Internet (por exemplo, para instalação de pacotes), configure o mascaragem/NAT de origem corretamente. Seu servidor PXE deve ter uma interface de rede separada conectada à Internet. Você pode usar esse comando para passar pela Internet para os clientes:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

Para tornar essa regra persistente após a reinicialização, execute o seguinte comando:

iptables-save -f /etc/iptables/iptables.rules

e habilite .

Consulte Simple stateful firewall#Setting up a NAT gateway e Internet sharing#Enable NAT para mais informações.

Solução de problemas

Bug ao renomear interface DHCP

faz com que a renomeação previsível da interface de rede padrão falhe e, em seguida, o cliente DHCP falhe por causa disso. Uma solução alternativa é adicionar o parâmetro de inicialização do kernel  para desativar os nomes de interface previsíveis.

VirtualBox não consegue inicializar enquanto a máquina física consegue

Ao usar o VirtualBox para testar sua configuração, a máquina virtual pode ficar travada em:

Probing EDD (edd=off to disable)... ok

Mas a inicialização por PXE com uma máquina real funciona bem. O problema pode ser porque você configurou vários núcleos de CPU para a máquina cliente e definiu o tipo como Other e a versão como Other/Unknown (64 bit). Então, o VirtualBox não sabe qual interface de paravirtualização usar por padrão.

Adicionar o parâmetro do kernel permite que você veja que máquina realmente estava travada em:

[    0.063697] smp: Bringing up secondary CPUs...
[    0.103768] x86: Booting SMP configuration:

Para resolver isso, use um núcleo da CPU ou acesse Máquina > Configurações > Sistema > Aceleração e defina uma das seguintes interfaces de paravirtualização: Mínima, Hyper-V ou KVM.

VirtualBox cai no shell do EFI

Atualmente, o VirtualBox não oferece suporte à inicialização PXE no modo UEFI. Veja isto. Você pode tentar o QEMU. Como alternativa, você pode usar o VMware Workstation 15.0.2 (ele suporta inicialização UEFI PXE) ou apenas um hardware real.

This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.