Copyright © 1996 Jerry Kendall
28-December-1996
FreeBSD is a registered trademark of the FreeBSD Foundation.
3Com and HomeConnect are registered trademarks of 3Com Corporation.
Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
Sun, Sun Microsystems, Java, Java Virtual Machine, JavaServer Pages, JDK, JRE, JSP, JVM, Netra, Solaris, StarOffice, Sun Blade, Sun Enterprise, Sun Fire, SunOS, and Ultra are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the " or the ® symbol.
Com a ajuda de alguns amigos da lista FreeBSD-hackers, eu pude criar um terminal X diskless. A criação do terminal X necessitou incialmente da criação de um sistema diskless com utilitários minimos montados via NFS. Estes mesmos passos foram utilizados para criar 2 sistemas diskless distintos. O primeiro é o altair.example.com. Um terminal X diskless o qual eu executo no meu velho 386DX-40. Ele possui um HD de 340 Mb, mas eu não quiz mudá-lo. Assim, ele da boot a partir do antares.example.com através da rede Ethernet. O segundo sistema é um 486DX2-66. Eu o configurei um FreeBSD Diskless, o qual não utiliza o disco local. O servidor neste caso é uma SUN 670MP executando SunOS" 4.1.3. O mesmo procedimento de configuração foi necessário em ambos.
Tenho certeza de que existem itens que precisam ser adicionados a este tutorial. Por favor enviem-me qualquer comentário.
Uma vez que os carregadores de boot via rede podem não funcionar corretamente com alguns dos TSRs (programas residentes em memória) que o MS-DOS® utiliza, é melhor criar um disco de boot dedicado ou, se você puder, crie um menu MS-DOS (através dos arquivos config.sys/autoexec.bat) o qual irá perguntar qual configuração carregar quando o sistema iniciar. Este último é o método que eu utilizo e ele funciona muito bem. O meu menu MS-DOS (6.x) está abaixo.
Compile os programas de net-boot os quais estão localizados no diretório /usr/src/sys/i386/boot/netboot. Você deve ler os comentários no topo do arquivo Makefile. Ajuste-o como necessário. Faça backup do original para o caso de algo sair errado. Quando a compilação terminar, deverá haver 2 executáveis MS-DOS, nb8390.com e nb3c509.com no diretório. Um destes 2 arquivos será o que você vai necessitar para executar na estação Diskless. Ele irá carregar o kernel a partir do servidor de boot. Neste momento, copie ambos os programas para o diskete de boot MS-DOS criado anteriormente.
Se você sabe qual o chipset da sua placa de rede ethernet, isto é fácil. Se você possui um chipset NS8390 ou um chipset baseado no chipset NS8390, utilize o nb8390.com. Se possui um chipset baseado no 3Com® 509, utilize o programa de boot nb3C509.com. Se você não estiver certo sobre qual você possui, tente um deles, se ele exibir a mensagem No adapter found, tente o outro. Beyond that, you are pretty much on your own.
De boot no sistema diskless sem utilizar o arquivo config.sys e o autoexec.bat. Tente executar o programa de boot para o sua placa de rede.
A minha placa de rede é uma WD8013 mode 16 bit, logo eu utilizo o arquivo nb8390.com
C:> cd \netboot C:> nb8390 Boot from Network (Y/N) ? Y BOOTP/TFTP/NFS bootstrap loader ESC for menu Searching for adapter.. WD8013EBT base 0x0300, memory 0x000D8000, addr 00:40:01:43:26:66 Searching for server...
Neste momento, o meu sistema diskless está tentando encontrar uma maquina para atuar como um servidor de boot. Observe a linha de endereço (addr) acima, você vai precisar deste núumero mais tarde. Resete o sistema diskless e modifique os seus arquivos config.sys e autoexec.bat para que eles executem estes passos automaticamente para você. Talvez em um menu. Se você tiver que executar o nb3c509.com ao invés do nb8390.com o output será o mesmo que o mostrado acima. Se você receber a mensagem No adapter found como retorno após a mensagem Searching for adapter..., verifique se você ajustou corretamente as definições de tempo de compilação no arquivo Makefile.
Certifique-se que o arquivo /etc/inetd.conf Possui as entradas para os serviços de tftp e bootps. As minhas entradas estão listadas abaixo:
tftp dgram udp wait nobody /usr/libexec/tftpd tftpd /tftpboot bootps dgram udp wait root /usr/libexec/bootpd bootpd /etc/bootptab
Se você precisou alterar o arquivo /etc/inetd.conf envie um sinal de HUP para o inetd(8). Para fazer isso, obtenha o número de processo do inetd com o comando ps -ax | grep inetd | grep -v grep. Uma vez que você saiba qual é o número do processo, envie o sinal de HUP Faça isso através do comando kill -HUP <pid>. Isto irá forçar o inetd a reler o seu arquivo de configuração.
Você se lembrou de anotar a linha de endereço do output do boot loader no sistema diskless? Se não, descubra qual é, pois você vai precisar dele agora.
Adicione uma entrada ao arquivo /etc/bootptab ( Você pode precisar criar o arquivo). Ele deve ser idêntico a este:
altair:\
:ht=ether:\
:ha=004001432666:\
:sm=255.255.255.0:\
:hn:\
:ds=199.246.76.1:\
:ip=199.246.76.2:\
:gw=199.246.76.1:\
:vm=rfc1048:
O significado das linhas é o seguintes:
| altair | O nome do sistema diskless sem o nome de domíinio. | |
| ht=ether | Especifica o tipo de hardware como ethernet. | |
| ha=004001432666 | O endereço de hardware da placa de rede (MAC Address). | |
| sm=255.255.255.0 | A mascara de rede. | |
| hn | Diz ao servidor para enviar o hostname do cliente para o cliente. | |
| ds=199.246.76.1 | Diz ao cliente quem é o servidor de domíinio. | |
| ip=199.246.76.2 | Diz ao cliente qual é o seu endereço IP. | |
| gw=199.246.76.1 | Diz ao cliente qual é o seu gateway padrão. | |
| vm=rfc1048 | Apenas deixe ele aqui, não se preocupe com ele agora |
Nota: Certifique-se de configurar o seu endereço IP corretamente, o endereço acima é o meu ;) .
Crie o diretório /tftpboot no servidor que irá conter os arquivos de configuração do sistema diskless ao qual o servidor irá servir. Estes arquivos serão nomeados cfg.ip onde ip é o endereço IP do sistema diskless. O arquivo de configuração para o host altair é o /tftpboot/cfg.199.246.76.2. E o seu conteúdo é o seguinte:
rootfs 199.246.76.1:/DiskLess/rootfs/altair hostname altair.example.com
A linha hostname altair.example.com simplesmente instrui o sistema diskless sobre qual é o seu nome de domíinio completo.
A linha rootfs 199.246.76.1:/DiskLess/rootfs/altair instrui o sistema diskless sobre onde o seu sistema de arquivos raiz montável via NFS está localizado.
Nota: O sistema de arquivo raiz, montado via NFS, será montado em modo de apenas leitura.
Se for preciso a hierarquia de diretórios do sistema diskless pode ser re-montada permitindo operações de leitura e escrita.
Eu utilizo o meu 386DX-40 reserva como um terminal X dedicado.
A hierarquia para o host altair é:
/
/bin
/etc
/tmp
/sbin
/dev
/dev/fd
/usr
/var
/var/run
A lista atual de arquivos é seguinte:
-r-xr-xr-x 1 root wheel 779984 Dec 11 23:44 ./kernel -r-xr-xr-x 1 root bin 299008 Dec 12 00:22 ./bin/sh -rw-r--r-- 1 root wheel 499 Dec 15 15:54 ./etc/rc -rw-r--r-- 1 root wheel 1411 Dec 11 23:19 ./etc/ttys -rw-r--r-- 1 root wheel 157 Dec 15 15:42 ./etc/hosts -rw-r--r-- 1 root bin 1569 Dec 15 15:26 ./etc/XF86Config.altair -r-x------ 1 bin bin 151552 Jun 10 1995 ./sbin/init -r-xr-xr-x 1 bin bin 176128 Jun 10 1995 ./sbin/ifconfig -r-xr-xr-x 1 bin bin 110592 Jun 10 1995 ./sbin/mount_nfs -r-xr-xr-x 1 bin bin 135168 Jun 10 1995 ./sbin/reboot -r-xr-xr-x 1 root bin 73728 Dec 13 22:38 ./sbin/mount -r-xr-xr-x 1 root wheel 1992 Jun 10 1995 ./dev/MAKEDEV.local -r-xr-xr-x 1 root wheel 24419 Jun 10 1995 ./dev/MAKEDEV
Se você não estiver utilizando o devfs(5) (o que é default no FreeBSD 5.X), você não deve se esquecer de de executar o comando MAKEDEV all dentro do diretório dev.
O meu arquivo /etc/rc no host altair é o que se segue:
#!/bin/sh # PATH=/bin:/ export PATH # # configura o localhost /sbin/ifconfig lo0 127.0.0.1 # # configura a placa de rede /sbin/ifconfig ed0 199.246.76.2 netmask 0xffffff00 # # monta o sistema de arquivos raiz via NFS /sbin/mount antares:/DiskLess/rootfs/altair / # # monta o sistema de arquivos /usr via NFS /sbin/mount antares:/DiskLess/usr /usr # /usr/X11R6/bin/XF86_SVGA -query antares -xf86config /etc/XF86Config.altair > /dev/null 2>&1 # # Reboota depois que sair do X /sbin/reboot # # Finaliza o script exit 1
Qualquer comentário e todas as perguntas são bem vindas.
Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.