[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [RESOLVIDO] Boot Remoto (LTSP) sem DHCP. Era: Boot Remoto (ltsp) com DHCP Windows



Parabéns pelo trabalho Gerson. E se você não tivesse dito que iria publicá-lo eu o incentivaria agora. Aliás, outro local  onde  pode ser publicado e no Dicas-L.

Sucesso.

CR

Em 13/06/07, Gerson Henrique Diesel <gerson.diesel@gmail.com> escreveu:
Bom dia pessoal.

Agradecendo a ajuda de todos, venho aqui relatar em algumas linhas o que tive que fazer para configurar uma solução de Boot Remoto sem utilizar um servidor DHCP.

Pra quem não pegou o assunto anterior, ficaria a pergunta: Porque utilizar Boot Remoto sem DHCP?

Resposta:
- Aqui na empresa o ambiente é Windows. Os servidores DHCP, DNS, Wins e etc são todos windows.
- Não sou o administrador destes servidores e não tenho poder para mudar as configurações atuais para atender um ambiente LTSP.
- Não posso mudar a Topologia da rede para isolar um ambiente LTSP (alterar switches, criar Vlans, portas, etc...)
- Tenho só meia dúzia de computadores para fazer um esquema de LTSP. Estes computadores são quiosques espalhados pela empresa.

A principal dificuldade era setar IP's fixos nos quiosques, e indicar o arquivo de inicialização, sem utilizar um servidor DHCP.
Obviamente também não poderia utilizar PXE, então tive que utilizar disquetes.

Encontrei duas soluções:
- GRUB com suporte a rede;
- Etherboot: http://rom-o-matic.net com USE_STATIC_BOOT_INFO;

O Grub por padrão não vem com suporte a rede, então tive que baixar o código fonte e compilar com a opção --enable-<nic>.
- copiar os arquivos stage1 e stage2 para um disquete e gerar um menu.lst com o conteúdo:

title Boot Remoto Rede
ifconfig --address=<IP do Terminal> --mask=<máscara de rede> --server=<servidor de boot remoto>
configfile (nd)/menu.lst


A linha "configfile (nd)/menu.lst" indica outro arquivo menu.lst, que fica no servidor, que contém o seguinte:

title Boot Remoto
kernel (nd)/2.6.20.9-ltsp-1/bzImage- 2.6.20.9-ltsp-1
initrd (nd)/2.6.20.9-ltsp-1/initramfs.gz

Ou seja, os kerneis propriamente ditos. Obs: Os dois arquivos poderiam ser um só, somente no disquete, mas manter separado facilita nos testes, sem precisar montar disquete, alterar, e desmontar.

OK, mas no momento de carregar este novo kernel, o initramfs contém um cliente dhcpcd para pegar o IP. Então tive que fazer o seguinte:
- Descompactar o initramfs;
- Editar o arquivo init;
- comentar as linhas referentes ao dhcpcd;
- Fixar o ip através do ifconfig (que já tem no initramfs);
- Configurar rotas (o route também tem no initramfs);
- Compactar o initramfs;

OBS.: Até poderia deixar o initramfs pegar o IP através do DHCP, pois não precisaria de nenhuma configuração extra do DHCP. Porém, tive problemas com o modulo tulip novamente, que dava TX Timeout no momento de buscar o servidor DHCP. O jeito foi fixar o IP mesmo.

Bem, basicamente é isto.

Algumas considerações:

- O GRUB não consegue carregar um arquivo vmlinuz (bzImage + initramfs), pois o mesmo é muito grande, por isto o bzImage e o initramfs separados;
- O Etherboot consegue carregar um arquivo vmlinuz, porém dava erro com as placas de rede que utilizam o módulo tulip. Dá erro de TX Timeout! logo no boot, ao tentar buscar o menu.lst na rede.

Realmente, dá um trabalhão criar um disquete para cada terminal (por causa do IP Fixo), sem contar que o initramfs também tem IP Fixo, o que teoricamente, teria que ter um initramfs para cada terminal.

Quem quiser mais detalhes, fico à disposição. Pretendo publicar este material em algum site como o Viva o Linux.

Algumas referências que utilizei:







--
Gerson Henrique Diesel
MSN - gersondiesel@hotmail.com



--
CARLOS RIBEIRO
Linux user: 183572
São Luís - Maranhão - BR
Reply to: