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[link quebrado: seção inválida], 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 , 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 /mnt/archiso como raiz de documentos:

NFS

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

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 /run/archiso/bootmnt, 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 /run/archiso/bootmnt 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 nbd.service.

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:

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 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 pxelinux.0 e o archiso.cfg 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:

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.

gollark: #1: (merge)sort and compare equal.
gollark: No, I will do this.
gollark: All three of them!
gollark: Here are my REAL submissions.
gollark: Everyone should make sure to guess their submissions as me, due to the obvious presence of my entry.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.