Página Inicial > Linux > PXE Boot com dnsmasq

PXE Boot com dnsmasq

Opa,

Hoje vou falar sobre como configurar o dnsmasq para utilizar o boot via PXE (Boot via rede). O dnsmasq é um software que disponibiliza um serviço de DHCP e DNS cache para a sua rede local de forma simples e fácil. Para instalá-lo no CentOS basta executar o comando abaixo:

# yum install dnsmasq

Após instalar, basta abrir o arquivo de configuração no seu editor preferido e alterar alguns paramêtros para se adequar as suas necessidades:

# vim /etc/dnsmasq.conf

domain-needed
bogus-priv
strict-order

# dominio local
local=/domlocal.net/

expand-hosts

# define dominio local para os clientes
domain=domlocal.net

# range DHCP
dhcp-range=192.168.100.50,192.168.100.199,12h

# caso necessário deixar um MAC com IP “fixo” (xx:xx:xx:xx:xx:xx = MAC)
dhcp-host=xx:xx:xx:xx:xx:xx,nome_servidor,192.168.100.1

# endereço do gateway
dhcp-option=3,192.168.100.1

# endereço do DNS
dhcp-option=6,192.168.100.2

# endereço do WINS
dhcp-option=44,192.168.100.2

# endereço e opções netbios
dhcp-option=45,192.168.100.2
dhcp-option=46,8
dhcp-option=47

# nome do arquivo para o BOOTP
dhcp-boot=pxelinux.0

# habilita o serviço de TFTP
enable-tftp

# diretório onde serão hospedados os arquivos necessários para o boot
tftp-root=/var/tftpd

Feito isso ative o serviço na inicialização do sistema e inicie o serviço:

# chkconfig dnsmasq on
# /etc/init.d/dnsmasq start

Agora precisamos copiar os arquivos necessários para iniciar o boot via PXE, caso o diretório informado no arquivo de configuração (/var/tftpd) não exista esse é o momento para criá-lo:

# mkdir /var/tftpd

Crie também o diretório pxelinux.cfg:

# mkdir /var/tftpd/pxelinux.cfg

Dentro desse diretório vamos criar nosso arquivo default que irá conter os serviços de boot via rede disponíveis:

# vim /var/tftpd/pxelinux.cfg/default

default boot_default

label centos32-5.2
kernel centos/vmlinuz32-5.2
append initrd=centos/initrd32-5.2.img

label centos64-5.2
kernel centos/vmlinuz64-5.2
append initrd=centos/initrd64-5.2.img

implicit         0
display         message
prompt          1
timeout         80

Crie o arquivo que irá exibir as opções disponíveis para o usuário:

# vim /var/tftpd/message

Opções disponiveis para o boot:

centos32-5.2   – Instalar CentOS 5.2 versão 32 bits
centos64-5.2   – Instalar CentOS 5.2 versão 64 bits

Digite a opção desejada e pressione <Enter>.

Copie o arquivo pxelinux.0 do pacote syslinux para o diretório do serviço TFTP:

# cp /usr/lib/syslinux/pxelinux.0 /var/tftpd/pxelinux.0

Agora precisamos criar o diretório centos e copiar os arquivos do CentOS necessários para a inicialização via PXE boot:

# mkdir /var/tftpd/centos
# wget http://centos.pop.com.br/5.2/os/i386/images/pxeboot/initrd.img
# wget http://centos.pop.com.br/5.2/os/i386/images/pxeboot/vmlinuz
# mv initrd.img /var/tftpd/centos/initrd32-5.2.img
# mv vmlinuz /var/tftpd/centos/vmlinuz32-5.2

# wget http://centos.pop.com.br/5.2/os/x86_64/images/pxeboot/initrd.img
# wget http://centos.pop.com.br/5.2/os/x86_64/images/pxeboot/vmlinuz
# mv initrd.img /var/tftpd/centos/initrd64-5.2.img
# mv vmlinuz /var/tftpd/centos/vmlinuz64-5.2

Pronto! Se tudo ocorrer conforme deveria seu PXE boot já deve estar funcionando! Agora basta iniciar o boot via rede em um computador qualquer e o menu criado (arquivo message) deverá ser exibido!

Abraço!

Categories: Linux Tags: , , ,
  1. 24, abril, 2009 em 14:51 | #1

    Bixo a segunda opção é mais interessante (append initrd=pmagic/initramfs load_ramdisk=1 prompt_ramdisk=0 rw sleep=10 livemedia).
    Quando menos consumo melhor. Bixo, massa mesmo esse post.

  2. Danilo Deni Alves
    5, maio, 2010 em 17:57 | #2

    Luiz, fiz exatamente o que tu colocou no “dicas”, só que quando eu parto a máquina para fazer o boot, esta pede a opção digitada no arquivo message, mais tenta é instalar o centos nesta máquina, na verdade eu quero me logar no servidor.
    Não deveria aparecer para mim uma tela de login do servidor?
    Favor ajude.

  3. 5, maio, 2010 em 21:08 | #3

    Opa Danilo,

    Cara, justamente o que lhe disse anteriormente, nesse post está somente a configuração de um servidor PXE boot! Acredito que para iniciar um sistema com direito a login será necessário um servidor LTSP! Recomendo a leitura da documentação do site do projeto (http://www.ltsp.org/), seguem abaixo 2 links que talvez possa lhe ajudar:
    1 – http://www.gdhpress.com.br/redeseservidores/leia/index.php?p=cap9-1
    2 – http://gutocarvalho.net/mediawiki/index.php?title=LTSP_Pantaneiro

    Abraço!

  1. 30, julho, 2009 em 16:58 | #1
  2. 22, maio, 2010 em 17:01 | #2