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.
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.
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.