1.3. Preparando a inicialização do sistema de destino

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.

1.3.1. Configurando um servidor DHCP

A configuração de um servidor DHCP em SUSE Linux é feita editando-se manualmente os arquivos de configuração apropriados. Esta seção aborda a extensão de configuração de um servidor DHCP existente visando fornecer os dados necessários para atender um ambiente TFTP, PXE e WOL.

1.3.1.1. Configuração manual de um servidor DHCP

Tudo o que o servidor DHCP deve fazer, além de fornecer alocação de endereço automática para os seus clientes de rede, é anunciar o endereço IP do servidor TFTP e o arquivo que deve ser extraído pelas rotinas de instalação na máquina de destino.

  1. Efetue login como root na máquina que hospeda o servidor DHCP.

  2. Anexe as linhas seguintes ao arquivo de configuração do seu servidor DHCP localizado em /etc/dhcpd.conf:

     
    group { 
      # PXE related stuff 
      # 
      # "next server" defines the tftp server that will be used 
      next server ip_servidor_tftp: 
      # 
      # "filename" specifies the pxelinux image on the tftp server 
      # the server runs in chroot under /srv/tftpboot 
      filename  "pxelinux.0"; 
    }

    Substitua ip_servidor_tftp pelo endereço IP real do servidor TFTP.

    Para obter mais informações sobre as opções disponíveis em dhcpd.conf, consulte a página de manual sobre dhcpd.conf.

  3. Reinicie o servidor DHCP executando rcdhcpd restart.

Se você planeja usar SSH para controle remoto de uma instalação PXE e Wake on LAN, especifique explicitamente 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 { 
  # PXE related stuff 
  # 
  # "next server" defines the tftp server that will be used 
  next server ip_servidor_tftp: 
  # 
  # "filename" specifiies the pxelinux image on the tftp server 
  # the server runs in chroot under /srv/tftpboot 
  filename "pxelinux.0"; 
  host test { hardware ethernet endereço_mac;  } 
              fixed-address um_endereço_ip; }
       }

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ê precisa conhecer e especificar o endereço de hardware do sistema (MAC). 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.

1.3.2. Configurando um servidor TFTP

Configure um servidor TFTP com YaST ou manualmente em qualquer outro sistema operacional Linux que tenha suporte a xinetd e tftp. O servidor TFTP fornece a imagem de boot para o sistema de destino uma vez que inicializa e envia uma solicitação ao mesmo.

1.3.2.1. Configurando um servidor TFTP usando YaST

  1. Efetue login como Root.

  2. Inicie YaST+Serviços de Rede+Servidor TFTP e instale o pacote solicitado.

  3. Clique em Habilitar para verificar se o servidor foi iniciado e incluído nas rotinas de inicialização. De sua parte, não é necessária nenhuma outra ação de proteção. O xinetd inicia o tftpd no momento de inicialização.

  4. Clique em Abrir Porta no Firewall para abrir a porta adequada no firewall em execução na sua máquina. Se nenhum firewall estiver em execução no seu servidor, esta opção não está disponível.

  5. Clique em Pesquisar para pesquisar o diretório de imagem de inicialização.

    O diretório padrão /tftpboot é criado e selecionado automaticamente.

  6. Clique em Concluir para aplicar as suas configurações e iniciar o servidor.

1.3.2.2. Configuração manual de um servidor TFTP

  1. Efetue login como root e instale os pacotes tftp e xinetd.

  2. Se indisponível, crie os diretórios /srv/tftpboot e /srv/tftpboot/pxelinux.cfg.

  3. Adicione os arquivos adequados para a imagem de boot como descrito na Seção 1.3.3, “Inicialização PXE”.

  4. Modifique a configuração de xinetd localizada em /etc/xinetd.d/ para verificar se o servidor TFTP é iniciado durante a inicialização:

    1. Se não existir, crie um arquivo chamado tftp neste diretório com touch tftp. Em seguida, execute chmod 755 tftp.

    2. Abra o arquivo tftp e adicione as seguintes linhas:

      service tftp 
      { 
              socket_type            = dgram
              protocol               = udp 
              wait                   = yes 
              user                   = root 
              server                 = /usr/sbin/in.tftpd 
              server_args            = -s /tftpboot 
              disable                = no 
      }
      
    3. Grave o arquivo e reinicie xinetd com rcxinetd restart.

1.3.3. Inicialização PXE

Informações técnicas e especificações completas sobre PXE estão disponíveis no documento Preboot Execution Environment (PXE) ftp://download.intel.com/labs/manage/wfm/download/pxespec.pdf).

  1. Vá até o diretório do seu repositório de instalação e copie os arquivos linux, initrd, message e memtest para o diretório /srv/tftpboot digitando o seguinte:

    cp -a boot/loader/linux boot/loader/initrd 
          boot/loader/message boot/loader/memtest /srv/tftpboot
  2. Instale o pacote syslinux diretamente dos seus CDs ou DVDs de instalação com YaST.

  3. Copie o arquivo /usr/share/syslinux/pxelinux.0 para o diretório /srv/tftpboot digitando o seguinte:

    cp -a /usr/share/syslinux/pxelinux.0 /srv/tftpboot
         
  4. Vá até o diretório do seu repositório de instalação e copie o arquivo isolinux.cfg para /srv/tftpboot/pxelinux.cfg/default digitando o seguinte:

    cp -a boot/loader/isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
         
  5. Edite o arquivo /srv/tftpboot/pxelinux.cfg/default e remova as linhas que começam com gfxboot, readinfo e framebuffer.

  6. Insira as seguintes entradas nas linhas anexas dos rótulos padrão failsafe e apic:

    insmod=e100

    Por meio desta entrada, o módulo de kernel para uma placa de rede Intel 100MBit/s é carregado nos clientes PXE. Esta entrada depende do hardware do cliente e deve ser adaptada de acordo. No caso de uma placa de rede Broadcom GigaBit, esta entrada deve indicar insmod=bcm5700.

    netdevice=eth0

    Esta entrada define a interface de rede do cliente que deve ser usada para a instalação da rede. Só será necessária se o cliente possuir várias placas de rede, devendo ser adaptada de acordo. No caso de uma única placa de rede, esta entrada pode ser omitida.

    install=nfs://ip_servidor_inst/caminho_fonte_inst/CD1

    Esta entrada define o servidor NFS e a fonte de instalação para a instalação do cliente. Substitua ip_servidor_inst pelo endereço IP real do seu servidor de instalação. caminho_fonte_inst deve ser substituído pelo caminho real para as fontes de instalação. As fontes HTTP, FTP ou SMB são endereçadas de maneira semelhante, exceto pelo prefixo de protocolo, que deve indicar http, ftp ou smb.

    [Important]Importante

    Se precisar passar outras opções de inicialização para as rotinas de instalação, como parâmetros de inicialização SSH ou VNC, anexe-os à entrada install. Uma visão geral dos parâmetros e alguns exemplos são apresentados na Seção 1.4, “Inicializando o sistema de destino para instalação”.

    A seguir, temos um exemplo de arquivo /srv/tftpboot/pxelinux.cfg/default. Ajuste o prefixo de protocolo para a fonte de instalação para corresponder à configuração da sua rede e especifique o seu método de conexão preferido para o instalador adicionando as opções vnc e vncpassword ou ssh e sshpassword à entrada install. As linhas separadas por \ devem ser digitadas como uma linha contínua sem quebra de linha e sem \.

     
    default linux 
            
    # default 
    label linux 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 insmod=e100 \ 
      install=nfs://ip_servidor_inst/
    caminho_fonte_inst/produto 
    	    
    # failsafe 
    label failsafe 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 ide=nodma apm=off acpi=off \ 
      insmod=e100 install=nfs://ip_servidor_inst/caminho_fonte_inst/produto
    
    # apic 
    label apic 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 apic insmod=e100 \ 
      install=nfs://ip_servidor_inst/caminho_fonte_inst/produto
    
    # manual 
    label manual 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 manual=1 
    
    # rescue 
    label rescue 
      kernel linux 
      append initrd=initrd ramdisk_size=65536 rescue=1 
    
    #  memory test 
    label memtest 
      kernel memtest 
    
    # hard disk 
    label harddisk 
      kernel 
      linux append SLX=0x202 
    
    implicit     0 
    display      message 
    prompt       1 
    timeout      100 
    

    Substitua ip_servidor_inst e caminho_fonte_inst pelos valores usados na sua configuração.

    A seção a seguir serve como breve referência às opções PXELINUX usadas nesta configuração. Mais informações sobre as opções disponíveis são encontradas na documentação do pacote syslinux localizada em /usr/share/doc/packages/syslinux/.

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

DEFAULT opções de kernel...

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 inicialização, exceto a opção auto, que é adicionada automaticamente, indicando uma inicialização automática.

Se nenhum arquivo de configuração ou nenhuma entrada DEFAULT estiver presente no arquivo de configuração, o padrão será o nome de kernel “linux” sem opções.

APPEND opções...

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

LABEL rótulo KERNEL imagem APPEND opções...

Indica que, se rótulo for digitado como kernel de inicialização, PXELINUX deve inicializar imagem, e as opções APPEND especificadas devem ser usadas em vez das que estão especificadas na seção global do arquivo (antes do primeiro comando LABEL). O padrão para imagem é o mesmo de rótulo e, se não for fornecido nenhum APPEND, o padrão será usar a entrada global (se houver). Até 128 entradas LABEL são permitidas.

Observe que GRUB usa a seguinte sintaxe:

 
title meutítulo 
  kernel meu_kernel opções_kernel 
  initrd meuinitrd 

enquanto que PXELINUX usa a seguinte sintaxe:

 
label meurótulo 
  kernel meukernel 
  append minhasopções 
      

Os rótulos são desmembrados como se fossem nomes de arquivo e devem ser exclusivos após o desmembramento. Por exemplo, não seria possível distinguir os dois rótulos “v2.1.30” e “v2.1.31” em PXELINUX, pois ambos são desmembrados em um mesmo nome de arquivo do DOS.

O kernel não tem precisa ser um kernel do Linux; pode ser um setor de inicialização ou um arquivo COMBOOT.

APPEND -

Não anexa nada. APPEND com um único hífen como argumento em uma seção LABEL pode ser usado para anular um APPEND global.

LOCALBOOT tipo

Em PXELINUX, especificar LOCALBOOT 0 em vez de uma opção KERNEL 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 tempo_de_espera

Indica quanto tempo esperar no prompt de inicialização até inicializar automaticamente, em unidades de 1/10 de segundo. O tempo de espera é cancelado tão logo o usuário digite algo no teclado, partindo do princípio de que o usuário conclui o comando iniciado. 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 val_flag for 0, só exibirá o prompt de inicialização se Shift ou Alt estiver pressionado ou Caps Lock ou Scroll Lock estiver definido (que é o padrão). Se val_flag for 1, exibirá sempre o prompt de inicialização.

 
F2  nome_do_arquivo 
F1  nome_do_arquivo 
..etc... 
F9  nome_do_arquivo 
F10 nome_do_arquivo

Exibe o arquivo indicado na tela quando uma tecla de função é pressionada no prompt de inicialização. 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 atualmente não há meio de vincular nomes de arquivo a F11 e F12.

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

[Warning]Atenção

Não coloque a opção PXE na frente da opção de inicialização do disco rígido no BIOS. Caso contrário, este sistema tentará reinstalar-se toda vez que você o inicializar.

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

1.3.7. Wake on LAN

Wake on LAN permite que a máquina seja ligada por um pacote de rede especial que contém o endereço MAC da máquina. Como toda máquina no mundo tem um identificador MAC exclusivo, você não precisa se preocupar em ligar acidentalmente a máquina errada.

[Important]Importante

Se a máquina controladora não estiver localizada no mesmo segmento de rede que o destino de instalação que deve ser desperto, configure as solicitações WOL para serem enviadas como multicasts ou controle remotamente uma máquina naquele segmento de rede para atuar como remetente das solicitações.

1.3.8. Wake on LAN manual

  1. Efetue login como Root.

  2. Inicie YaST+Gerenciamento de Software e instale o pacote netdiag.

  3. Abra um terminal e digite os seguintes comandos como root para despertar o destino:

     
    ether-wake mac_do_destino

    Substitua mac_do_destino pelo endereço MAC real do destino.