15 Preparando o ambiente de boot de rede #
Este capítulo descreve como configurar um servidor DHCP e TFTP que fornecem a infraestrutura necessária para inicialização com PXE.
É possível instalar o SUSE® Linux Enterprise Server por meio de um PXE (Preboot Execution Environment). O hardware do cliente precisa suportar a inicialização via PXE. A rede precisa ter um servidor DHCP e um servidor TFTP para fornecer os dados necessários aos clientes. Este capítulo guiará você pela configuração dos servidores necessários.
O PXE inicializa apenas um kernel e um initrd. Ele pode ser usado para inicialização em um ambiente de instalação ou em sistemas ativos. Para configurar as fontes de instalação, consulte o Capítulo 14, Configurando uma fonte de instalação de rede.
Esta seção aborda as tarefas de configuração necessárias em cenários complexos de inicialização. Contém exemplos de configurações prontas para aplicar referentes a DHCP, inicialização PXE, TFTP e Wake on LAN.
Nos exemplos, assumimos que os servidores DHCP, TFTP e NFS residem na mesma máquina com o IP 192.168.1.1
. Todos os serviços podem residir em máquinas diferentes sem problemas. Mude os endereços IP conforme necessário.
15.1 Configurando um servidor DHCP #
Além de fornecer alocação automática de endereços aos clientes de rede, o servidor DHCP anuncia o endereço IP do servidor TFTP e os caminhos para os arquivos do Kernel e do Initrd. O arquivo que precisa ser carregado depende da arquitetura da máquina de destino e se o boot de BIOS ou UEFI legado foi utilizado. Os clientes transmitem o tipo de arquitetura na solicitação DHCP. Com base nessas informações, o servidor DHCP pode decidir de quais arquivos o cliente deve fazer download para inicialização.
Efetue login como
root
na máquina que hospeda o servidor DHCP.Habilite o servidor DHCP executando
systemctl enable dhcpd
.Anexe as linhas seguintes a uma configuração de sub-rede do arquivo de configuração de seu servidor DHCP localizado em
/etc/dhcpd.conf
:# The following lines are optional option domain-name "my.lab"; option domain-name-servers 192.168.1.1; option routers 192.168.1.1; option ntp-servers 192.168.1.1; ddns-update-style none; default-lease-time 3600; # The following lines are required option arch code 93 = unsigned integer 16; # RFC4578 subnet 192.168.1.0 netmask 255.255.255.0 { next-server 192.168.1.1; range 192.168.1.100 192.168.1.199; default-lease-time 3600; max-lease-time 3600; if option arch = 00:07 or option arch = 00:09 { filename "/EFI/x86/grub.efi"; } else if option arch = 00:0b { filename "/EFI/aarch64/bootaa64.efi"; } else { filename "/BIOS/x86/pxelinux.0"; } }
Este exemplo de configuração usa a sub-rede
192.168.1.0/24
com o DHCP, o DNS e o gateway no servidor com o IP192.168.1.1
. Verifique se todos os endereços IP usados mudam de acordo com o layout da rede. Para obter mais informações sobre as opções disponíveis emdhcpd.conf
, consulte a página de manual sobredhcpd.conf
.Reinicie o servidor DHCP executando
systemctl restart dhcpd
.
Se você planeja usar SSH para controle remoto de uma instalação PXE e Wake on LAN, especifique o endereço IP que o DHCP deve fornecer ao destino de instalação. Para isso, modifique a configuração DHCP mencionada acima de acordo com o exemplo a seguir:
group { host test { hardware ethernet MAC_ADDRESS; fixed-address IP_ADDRESS; } }
A declaração de host apresenta o nome de host do destino de instalação. Para vincular o nome de host e o endereço IP a um host específico, você deve saber e especificar o endereço de hardware (MAC) do sistema. Substitua todas as variáveis usadas neste exemplo pelos valores reais que correspondem ao seu ambiente.
Após a reinicialização do servidor DHCP, ele fornece um IP estático para o host especificado, habilitando-o a conectar-se ao sistema por SSH.
15.2 Configurando um servidor TFTP #
Os procedimentos a seguir descrevem como preparar o servidor para máquinas de destino com UEFI e BIOS em arquiteturas x86 de 32 e 64 bits. A estrutura preparada já dispõe também de um local para os sistemas AArch64.
15.2.1 Instalando o servidor TFTP #
Para instalar um servidor TFTP, siga o procedimento abaixo:
Instale o pacote
tftp
.tux >
sudo
zypper in tftp
Revise a configuração do
tftpd
em/etc/sysconfig/tftp
e adicione ou mude as opções conforme necessário. Consulte oman 8 tftpd
para obter mais detalhes. O daemon do TFTP funciona sem mudar a configuração. O diretório raiz padrão para os arquivos é/srv/tftpboot
.Verifique se o
tftpd
foi iniciado no momento da inicialização e reinicie-o para ler a nova configuração.tux >
sudo
systemctl enable tftp.socket
tux >
sudo
systemctl restart tftp.socket
15.2.2 Instalando arquivos para inicialização #
O SUSE Linux Enterprise Server fornece os arquivos necessários para inicialização via PXE nas máquinas BIOS ou UEFI em um RPM. Instale os arquivos na máquina que executa o servidor TFTP:
tux >
sudo
zypper in tftpboot-installation-SLES-OS_VERSION-ARCHITECTURE
Substitua VERSÃO_DO_OS pela versão da instalação do SUSE Linux Enterprise Server. Por exemplo, 15
e ARQUITETURA pela arquitetura do seu sistema, como x86_64
. Você pode usar zypper se tftpboot
para pesquisar todas as arquiteturas e versões disponíveis.
Os arquivos serão instalados em /srv/tftpboot/SLES-VERSÃO_DO_OS-ARQUITETURA
. Você também pode copiar os arquivos de outras versões e arquiteturas do SUSE Linux Enterprise Server para o diretório /srv/tftpboot
.
/srv/tftpboot/
existente
Se o diretório /srv/tftpboot/
já existir na máquina, todos os arquivos serão instalados em /usr/share/tftpboot-installation/
. Esse é o caso do upgrade do servidor PXE de uma versão anterior do SLES.
Para corrigir esse problema, copie os arquivos manualmente de /usr/share/tftpboot-installation/
para /srv/tftpboot/
. Você também pode remover o /srv/tftpboot/
e reinstalar o pacote
tftpboot-installation-SLES-VERSÃO_DO_OS-ARQUITETURA
.
15.2.3 Configurando o PXELINUX #
Abra o arquivo /srv/tftpboot/SLES-VERSÃO_DO_OS-ARQUITETURA/net/pxelinux.cfg/default
em um editor. Substitua o caminho para o parâmetro install
de acordo com a sua configuração, conforme descrito no Capítulo 14, Configurando uma fonte de instalação de rede. Substitua também SERVIDOR_TFTP pelo endereço IP do servidor TFTP. Para obter uma visão geral das opções de configuração PXELINUX, consulte a Seção 15.3, “Opções de configuração PXELINUX”.
default linux # install label linux ipappend 2 kernel boot/ARCHITECTURE/loader/linux append initrd=boot/x86_64/ARCHITECTURE/initrd instsys=tftp://TFTP_SERVER/SLES-OS_VERSION-ARCHITECTURE/boot/ARCHITECTURE/root install=PROTOCOL://SERVER_IP:/PATH display message implicit 1 prompt 1 timeout 50
Para obter detalhes sobre os parâmetros de boot que são usados na linha append
, consulte a Seção 7.3, “Lista de parâmetros de boot importantes”.
Se necessário, edite o /srv/tftpboot/SLES-VERSÃO_DO_OS-ARQUITETURA/net/pxelinux.cfg/message
para exibir uma mensagem no menu de boot.
15.2.4 Preparando o boot PXE para EFI com GRUB2 #
Não é necessário mudar os arquivos de configuração do GRUB 2. No entanto, nas configurações padrão, não é fornecida nenhuma fonte de rede para o sistema de instalação. Para instalar completamente o SUSE Linux Enterprise Server pela rede, adicione o parâmetro install
às linhas linuxefi
no arquivo /srv/tftpboot/SLES-VERSÃO_DO_OS-ARQUITETURA/EFI/BOOT/grub.cfg
. Defina o parâmetro install
de acordo com a sua configuração, conforme descrito no Capítulo 14, Configurando uma fonte de instalação de rede. Para obter detalhes sobre outros parâmetros de boot que são usados nas linhas efilinux
, consulte a Seção 7.3, “Lista de parâmetros de boot importantes”.
15.3 Opções de configuração PXELINUX #
As opções relacionadas aqui são um subconjunto de todas as opções disponíveis para o arquivo de configuração PXELINUX.
APPEND OPTIONS
Adiciona uma ou mais opções à linha de comando do kernel. São adicionadas para inicializações manuais e automáticas. As opções são adicionadas no início da linha de comando do kernel, normalmente permitindo que as opções de kernel digitadas explicitamente as substituam.
APPEND -
Não anexa nada.
APPEND
com um único hífen como argumento em uma seçãoLABEL
pode ser usado para anular umAPPEND
global.DEFAULT KERNEL_OPTIONS...
Configura a linha de comando padrão do kernel. Se PXELINUX é inicializado automaticamente, atua como se as entradas após DEFAULT tivessem sido digitadas no prompt de boot, exceto a opção auto, que é adicionada automaticamente, indicando uma inicialização automática.
Se não houver nenhum arquivo de configuração ou nenhuma entrada DEFAULT definida no arquivo de configuração, o padrão será o nome do kernel “linux” sem opções.
IFAPPEND FLAG
Adiciona uma opção específica à linha de comando do kernel de acordo com o valor FLAG. A opção
IFAPPEND
está disponível apenas no PXELINUX. FLAG espera um valor, descrito em Tabela 15.1, “Opções de linha de comando do kernel geradas e adicionadas doIFAPPEND
”:Tabela 15.1: Opções de linha de comando do kernel geradas e adicionadas doIFAPPEND
#Argumento
Linha de Comando do Kernel Gerada/Descrição
1
ip=CLIENT_IP:BOOT_SERVER_IP:GW_IP:NETMASK
Os marcadores são substituídos de acordo com a entrada do servidor DHCP/BOOTP ou boot PXE.
Observe que essa opção não substitui a execução de um cliente DHCP no sistema inicializado. Sem as renovações regulares, o aluguel adquirido pelo BIOS PXE vai expirar, disponibilizando o endereço IP para reutilização do servidor DHCP.
2
BOOTIF=MAC_ADDRESS_OF_BOOT_INTERFACE
Essa opção é útil para evitar tempos de espera quando o servidor de instalação investiga uma interface LAN em seguida da outra, até obter uma resposta de um servidor DHCP. Essa opção permite que um programa initrd determine de qual interface o sistema foi inicializado. O linuxrc lê essa opção e utiliza essa interface de rede.
4
SYSUUID=SYSTEM_UUID
Adiciona UUIDs como hexadecimais em minúsculas, consulte
/usr/share/doc/packages/syslinux/pxelinux.txt
LABEL LABEL KERNEL IMAGE APPEND OPTIONS...
Se LABEL foi inserido como o kernel de boot, indica que o PXELINUX deve inicializar a IMAGE e que as opções
APPEND
especificadas devem ser usadas. Elas substituem as que foram especificadas na seção global do arquivo, antes do primeiro comandoLABEL
. O padrão para IMAGE é o mesmo de LABEL e, se não for fornecido nenhumAPPEND
, o padrão será usar a entrada global (se houver). Até 128 entradasLABEL
são permitidas.E PXELINUX usa a seguinte sintaxe:
label MYLABEL kernel MYKERNEL append MYOPTIONS
Os rótulos são desmembrados como se fossem nomes de arquivo e deverão ser exclusivos após o desmembramento. Por exemplo, não seria possível distinguir os dois rótulos “v2.6.30” e “v2.6.31” em PXELINUX, pois ambos são desmembrados em um mesmo nome de arquivo do DOS.
O kernel não precisa ser do Linux. Ele também pode ser um setor de boot ou um arquivo COMBOOT.
LOCALBOOT TYPE
Em PXELINUX, especificar
LOCALBOOT 0
em vez de uma opçãoKERNEL
significa chamar este rótulo específico e causa uma inicialização de disco local em vez de uma inicialização de kernel.Argumento
Descrição
0
Executa uma inicialização normal
4
Executa uma inicialização local com o driver UNDI (Universal Network Driver Interface) ainda residente na memória
5
Realiza uma inicialização local com toda a pilha PXE, incluindo o driver UNDI, ainda residente na memória
Todos os outros valores são indefinidos. Se você não sabe quais são as pilhas UNDI ou PXE, especifique
0
.TIMEOUT TIME-OUT
Indica quanto tempo esperar no prompt de boot até inicializar automaticamente, em unidades de 1/10 de segundo. O tempo de espera é cancelado quando o usuário digita algo no teclado, considerando que ele concluirá o comando que começou. O tempo de espera zero desabilita completamente o tempo de espera (que é também o padrão). O valor do tempo de espera máximo possível é 35996 (pouco menos de uma hora).
PROMPT val_flag
Se
flag_val
for 0, o prompt de boot apenas será exibido se a tecla Shift ou Alt for pressionada ou se Caps Lock ou Scroll Lock estiver ativado (padrão). Seval_flag
for 1, exibirá sempre o prompt de boot.F2 FILENAME F1 FILENAME ..etc... F9 FILENAME F10 FILENAME
Exibe o arquivo indicado na tela quando uma tecla de função é pressionada no prompt de boot. Isso pode ser usado para implementar a ajuda online de pré-inicialização (supostamente para as opções de linha do comando do kernel). Para compatibilidade com versões anteriores, F10 também pode ser digitado como
F0
. Observe que ainda não há um meio de vincular nomes de arquivo a F11 e F12.
15.4 Preparando o sistema de destino para inicialização PXE #
Prepare o BIOS do sistema para a inicialização PXE incluindo a opção PXE na ordem de inicialização do BIOS.
Não coloque a opção PXE na frente do parâmetro de boot do disco rígido no BIOS. Do contrário, o sistema tentaria se reinstalar sempre que fosse inicializado.
15.5 Preparando o sistema de destino para Wake on LAN #
Wake on LAN (WOL) requer que a opção de BIOS adequada seja habilitada antes da instalação. Além disso, anote o endereço MAC do sistema de destino. Esses dados são necessários para iniciar o Wake on LAN.
15.6 Ativação na LAN #
Wake on LAN permite que a máquina seja ativada por um pacote de rede especial contendo o endereço MAC da máquina. Como toda máquina no mundo tem um identificador MAC exclusivo, não se preocupe caso ligue acidentalmente a máquina errada.
Se a máquina de controle não estiver localizada no mesmo segmento de rede que o destino do comando WOL, você terá 2 opções. Configure as solicitações WOL para serem enviadas como multicasts ou controle remotamente uma máquina nesse segmento de rede para atuar como remetente das solicitações.
Os usuários do SUSE Linux Enterprise Server podem utilizar um módulo do YaST chamado WOL para configurar facilmente o Wake on LAN. Os usuários de outras versões de sistemas operacionais baseados no SUSE Linux podem usar uma ferramenta de linha de comando.
15.7 Wake on LAN com o YaST #
Use esse procedimento para configurar Wake on LAN com YaST.
Efetue login como
root
.Inicie
› › .Clique em
e digite o nome de host e o endereço MAC do sistema de destino.Para ativar essa máquina, selecione a entrada apropriada e clique em
.
15.8 Inicializando da unidade de CD ou USB, em vez do PXE #
Você também pode usar uma unidade de CD, DVD ou USB com uma pequena imagem do sistema em vez de inicializar por PXE. Os arquivos necessários serão buscados por NFS quando o kernel e o initrd forem carregados. É possível criar uma imagem inicializável com mksusecd
. Isso poderá ser útil se a máquina de destino não suportar boot PXE.
Faça a instalação com o comando sudo zypper in mksusecd
. Use o seguinte comando para criar uma imagem ISO inicializável:
tux >
mksusecd
--create image.iso \ --net=nfs://192.168.1.1:/srv/install/ARCH/OS_VERSION/SP_VERSION/cd1 \ /srv/tftpboot/EFI/ARCH/boot
Substitua ARCH pelo diretório correspondente à arquitetura do sistema de destino. Substitua também versão_OS e versão_SP de acordo com os seus caminhos na Seção 15.2, “Configurando um servidor TFTP”.
Em vez de usar um servidor NFS para a opção --net
, também é possível usar um repositório HTTP. Por exemplo, o repositório openSUSE:
tux >
mksusecd
--create image.iso \ --net=http://download.opensuse.org/tumbleweed/repo/oss/suse \ /srv/tftpboot/EFI/ARCH/boot
É possível gravar image.iso
em um DVD ou CD ou usar o comando dd
em um pendrive USB:
root #
dd
if=image.iso of=/dev/USB_DEVICE
Substitua DISPOSITIVO_USB pelo nome do pendrive USB. Verifique o nome completo do dispositivo para garantir que você não destrua acidentalmente os dados em outra unidade.