Aviso: Esta tradução não está relacionada com o Projeto de Documentação do Linux LDP) que no Brasil é representada pela LDP-BR em <http://www.dca.fee.unicamp.br/~malheiro/linux/LDP-br.html>, este material é uma tradução técnica e básica somente para auxiliar os colegas com a leitura em português.
Outros documentos você pode obter em: <http://www.microlink.com.br/~buick/>
Este documento descreve como configurar diskless de Linux e o copyright é de Rober Nemkin. A Política de direitos autorais é GLP. Eu tenho que agradecer a Bela Kis <bkis@cartan.math.klte.hu> por ter traduzido este documento para o inglês.
1. Mudanças
· v0.0.3 12 de Setembro de 1996: Um erro secundário arrumado
2. Como configurar um diskless no Linux
Este documento é sobre como configurar um diskless no Linux. Às vezes pode ser necessário rodar o Linux em PC que não tem nenhum disco rígido nem floppy disk. Se numa network, tem outro sistema de Unix com bootp, tftp, e um servidor de NFS, e um queimador de eprom estão disponível é possível para montar e operar o Linux sem discos de hard/floppy.
3. Documentos relacionados
· Mini Howto NFS-root
· Howto Linux NET-2/ por Terry Dawson, 94004531@postoffice.csu.edu.au
· /usr/src/linux/README sobre configurar e compilar novos kernels
4. Hardware
Tudo que é descrito aqui foi inspecionado e configuração dentro de
· Sun-OS 4.1.3 como servidor de boot
· Slackware 2.3 + Linux 1.2.8 + placa de rede wd 8013.
· utilização de uma lan Ethernet
5. Idéias fundamentais
A idéia fundamental é a seguinte: o PC adquirirá o seu endereço de IP
do servidor de boot pelo protocolo de bootp, usando 0.0.0.0 como o
IP inicial que obtem o seu kenrle via o protocolo de tftp.
(--da boot por segmentos (pelo roteador) não é uma simples questão, então
ou ponha ambos o servidor e o diskless no mesmo segmento de lan ou
configura um ajudante de UDP e que envia ao seu roteador o endereço do
servidor.
Refira-se ao seu manual do produto de roteamentol para info adicionais.--)
Para isto siga os passos seguintes.
5.1. Configurando o PC
Adquira o pacote nfsboot (o pacote está disponível no seu site favorito de refleto do linux no diretório de /pub/Linux/system/Linux-boot). Ele contém uma imagem do booteprom para o cartão wd8013 que pode ser diretamente queimado.
Há alguns modos alternativos para preparar o seu PC:
· Se sua máquina não é totalmente um diskless, então você pode usar um pequeno programa de DOS, ou
· usar uma imagem binária em floppy que contem o mesmo pacote. Se você escolha a opção posterior você tem que escrever a imagem num disquete e usar o comando dd.
· Se você está usando o kernel mais recente estável, linux-1.2.13, então você, precisa consertar o kernel com o patchfile inclui no pacote nfsboot (--Refira-se ao patch(1)--)
· Se você tenta usar o kernel mais recente, mas o kernel instável do série linux-1.3.x, então você tem que configurar a opção de nfs-root.
5.2. Configurando o servidor de bootpd
Pode ser obtido o pacote bootpd-2.4.tar.gz (que pode ser obtido em seu site favorito de refletor do Linux no diretório /pub/Linux/system/Network/boot.net). Pegue o pacote, compile e instale. Se seu outro Unix for um Linux Slackware então você pode saltar este passo para a distribuições padrão que contêm um bootpd. O daemon podem ser executado em qualquer lugar ou diretamente emitindo o comando
______________________________________________________________________
bootpd -s
______________________________________________________________________
ou usando o inetd. Neste caso você precisa editar:
· /etc/inetd.conf para remover o comentário desde o começo destas linhas:
______________________________________________________________________
# tftp dgram udp wait root /usr/sbin/in.tftpd tftpd /export
# bootps dgram udp wait root /usr/sbin/in.bootpd bootpd
______________________________________________________________________
· insira ou tire comentário das duas linhas seguintes no /etc/services:
______________________________________________________________________ bootps 67/tcp # BOOTP server tftp 69/udp # TFTP server ______________________________________________________________________
· reinicie o inetd com
______________________________________________________________________
kill -HUP <id do processo do inetd>.
______________________________________________________________________
5.3. Configure o servidor de bootpd.
Em primeiro lugar, o bootpd têm um arquivo de config chamado bootptab que normalmente reside em /etc. Você tem que modificar inserindo os endereços de IP do seu gateway, do servidor de dns, e o endereço(da placa de rede) de sua máquina(s de diskless). Um exemplo de /etc/bootptab:
______________________________________________________________________
global.prof:\
:sm=255.255.255.0:\
:ds=192.168.1.5:\
:gw=192.168.1.19:\
:ht=ethernet:\
:bf=linux:
machine1:hd=/export/root/machine1:tc=global.prof:ha=0000c0863d7a:ip=192.168.1.140:
machine2:hd=/export/root/machine2:tc=global.prof:ha=0800110244e1:ip=192.168.1.141:
machine3:hd=/export/root/machine3:tc=global.prof:ha=0800110244de:ip=192.168.1.142:
______________________________________________________________________
global.prof é um modelo geral para entradas do host onde
· o campo sm contém a máscara da subnet
· o campo ds contém o endereço do Servidor de Nome de Domínio
· o campo gw o endereço default de seu gateway
· o campo ht contém o tipo mídia usada em seu hardware de sua lan
· o campo bf contém o nome do arquivo de boot
Depois disto, toda máquina tem que ter uma linha:
· o primeiro campo contém o nome do host,
· o campo hd contém o diretório do bootfile,
· o modelo global pode ser incluído com o campo de tc,
· ha um campo que contém hardvare para as placas de rede,
· o campo ip contém o endereço de ip nomeado.
5.4. Compreendendo o Tftp
O TFTP (Protocolo de Transferência de Arquivo Trivial) é um protocolo de transferência de arquivo, como ftp, mas é muito mais simples ajudar e codificando em EPROMs. O TFTP pode ser usado de dois modos:
· tftp simples: meios em que o cliente acessa o seu sistema de arquivo por inteiro. É mais simples mas é um grande buraco de segurança (qualquer um pode adquirir o seu arquivo de passwd por tftp).
· tftp seguro: o servidor de tftp usa uma chamada de chroot.2 do sistema para acessar e é no próprio diretório do root. Qualquer coisa fora do diretório do novo root será completamente inacessível. Por causa do dir de chroot torna o dir do novo root, o arquivo de hd no bootptab têm que refletir a nova situação. Por exemplo: quando usamos o tftp inseguro, o campo de hd, contém o caminho completo para o diretório de boot: /export/root/machine1. Quando usamos o tftp seguro temos o /export como dir do root, e então o /export torna se / e o campo de hd deve ser /root/machine1.
Quase toda implementação de Unix contém servidor de tfpt, provavelmente você, não precisa instalar o seu próprio.
5.5. servidor.
Definindo uma configuração de Linux mínima
Isto deve conter os pacotes pacotes a, ap, n, e x da distribuição Slackware. Instalar o resto e OK; porém basta estes pacotes para a finalidade de um terminal diskless de X. Para a instalação você precisa de um sistema de linux funcionando. Ache algum espaço de disco em sua máquina remota e exporta a leitura-escrita. Monte os diretórios de exportação em algum lugar (por exemplo /mnt) no sistema de arquivo do Linux. Comece a configuração do Linux e mude a opção de root no setup de / para /mnt. Então o setup acima dos pacotes como sempre. Se você não quer rodar mais de um diskless Linux de nenhuma mudança então é necessária. No entanto, se você planeja usar mais de uma máquina de diskless então o setup anterior não irá funcionar porque alguns arquivos e diretórios devem ser privaddos para as máquinas. O problema pode ser evitado movendo o /usr (se não contiver nenhum dados privado) e então criar um subdir separado para cada máquina de diskless. Por exemplo, se o /export/linux/machine1 estiver montado então o /mnt olha a estrutura de diretório depois do setup inicial com
______________________________________________________________________
/export/linux/machine1/bin
/export/linux/machine1/sbin
/export/linux/machine1/lib
/export/linux/machine1/etc
/export/linux/machine1/var
/export/linux/machine1/usr
______________________________________________________________________
Depois das mudanças você terá
______________________________________________________________________ /export/linux/machine1/bin /export/linux/machine1/sbin /export/linux/machine1/lib /export/linux/machine1/etc /export/linux/machine1/var /export/linux/usr ______________________________________________________________________
Agora crie o subdirectories para as outras máquinas. Assumimos agora que suas máquinas de diskless são chamadas de machine1, machine2, machine3, etc.; então você pode usar o script bash para o setup dos outros diretórios
______________________________________________________________________
cd /export/linux
for x in machine2 machine3 ; do
mkdir $x; cd $x
(cd ../machine1; tar cf - *) | tar xvf -
done
______________________________________________________________________
Então faça a seguinte exportação:
· somente leitura de /export/linux/usr para todo mundo.
· /export/linux/machine1 só para machine1 com direitos rw,root.
· /export/linux/machine2 só para machine2 com direitos rw,root.
· /export/linux/machine3 só para machine3 com direitors rw,root.
como segue (--o formato deste exemplo segue a sintaxe para exportações de arquivos SunOs 4.1.3--):
______________________________________________________________________
# This file is /etc/export
# for remote linux X terminals by Buci
# this line is only once
/export/root/usr -access=linuxnet
# these lines once for every host
/export/root/machine1 rw=machine1,root=machine1
/export/root/machine2 rw=machine2,root=machine2
/export/root/machine3 rw=machine3,root=machine3
______________________________________________________________________
Não esqueça de rodar exportfs -a.
5.6. Configurando o servidor de tftp
Agora é necessário configurar o servidor de tftp. Se você não precisa de segurança tftp então tudo é bastante simples para os seus clientes que pode ter boot no diretório /export.
Se precisa um tftp seguro então você pode fazer uma estrutura /export/linux completo debaixo de /tftpboot (com um único kernel real e vínculos simbólicos para as outras máquinas), ou deixar o diretório de /export seja o diretório de boot do tftpd seguro. Ou, se você tem um diretório separado de tftpboot então, semelhantemente, você precisa de somente um estrutura de diretório original com um único kernel e vínculos simbólicos para os outros. Você pode acessar esta configuração digitando o seguinte:
______________________________________________________________________
mkdir -p /tftpboot/export/linux/machine1
cd /tftpboot/export/linux/machine1
cp /export/linux/machine1/<nome do kernel> .
______________________________________________________________________
Então digite o seguinte:
______________________________________________________________________
mkdir -p /tftpboot/export/linux/machine2
cd ../machine2
ln -s ../machine2/<name do kernel>
______________________________________________________________________
5.7. Trabalho final
Finalmente, você tem que inserir
______________________________________________________________________
/sbin/mount nfs_server:/export/linux/usr /usr
______________________________________________________________________
como a primeira linha em
______________________________________________________________________
/export/linux/<machinex>/etc/rc.d/rc.S
______________________________________________________________________
onde <machinex> representa machine1, machine2, etc.
6. Memória e exigências de espaço em disco; velocidade
Eu testei isto somente no Slackware 2.3; para outras distribuições/versões onde os números seguintes podem variar.
· Diskspace: 28MB + 6.5MB/máquina
· RAM: Eu estou usando X em 8 MB. Para só 4MB é preciso de swap, eu acho, que pode ser criado --separadamente para cada máquina-- em /tmp. Faça e não esqueça de rodar o mkswap.
· Velocida: Eu não tive nenhum problema em 486 DX2/66 com 8 Megs.
7. Possíveis erros
· eu achei um erro estranho: no sub-diretório /dev o SunOS corrompeu as entradas de dispositivo assim eu precisei re-executar o MAKEDEV e montar o sub-diretório sobre um disco num baseado em um box-linux. (A razão era a diferenças entre o nfs do linux e o nfs da SunOs: ambos uso 32 bit para o número de dispositivo Principal e Secundário, menos o linux que usa 16 bit em campos largos para ambos, SunOs usa 14 bit em campo largo para Principal e 18 bit largo no arquivo para número de dispositivo Secundário.)
· Quando o linux de diskless é bootado, há somente uma rota incluida na tabela de rota ao servidor de tftp, assim você precisa montar as tabelas de rotas corretas. Você tem duas escolhas aqui:
· configura todo o rc.S à mão para toda máquina
· use um pacote de cliente de bootp e escreva um script de setup generalizado
8. Erros e possíveis expansões adicionais deste documento
· citação Correta de documentos relacionados.
· SunOs usa a base BSD. Precise incluir SVR4 (por exemplo Solaris) na base de configuração do servidor.
· Embora Linux seja bastante semelhante a SunOs como servidor de bootp/tftp, um servidor exemplo de linux baseado poderia ser usado perfeitamente.
· Update deste documento para o pacote de etherboot atual.
· Visualização das diferenças entre o root de nfs consertado na versão do kernel 1.2.13 e o 1.3.x kernel mais novo que contêm o nfs-root.
· Acesso para outras placas de redes wd8013
· Inclusão de informação de configuração para o bootpc, um cliente de bootp para o linux para montar as tabelas de rotas corretamente.
· Tips (Dicas) e outros erros: por favor, informe a buci@math.klte.hu Agradeco a você.
![]() |
Copyright © 1997-1998 - Buick. All Rights Reserved. | ![]() |