Capítulo 4. A primeira inicialização

Índice
4.1. Se alguma coisa deu errado
4.2. Login
4.3. Mudar a disposição do teclado
4.4. O comando mais importante
4.5. Mudando a senha do root
4.6. Mudando a shell
4.7. Mudando a hora do sistema
4.8. Configurando o /etc/rc.conf
4.9. Estabelecendo o nome do host
4.10. Reinicializando o sistema

Ao término da instalação procede-se à primeira inicialização do sistema a partir do disco rígido. Se tudo correu bem, nos encontraremos diante de um prompt de login. Quem está habituado a encontrar um sistema pré-configurado ao fim da instalação do sistema operacional poderá sentir-se um pouco deslocado com o NetBSD. Seguindo as intruções deste guia, no entanto, poder-se-á configurar rapidamente o sistema, ao mesmo tempo em que se aprende como funciona.

4.1. Se alguma coisa deu errado

Se alguma coisa deu errado na instalação, pode ocorrer que o sistema não se inicialize. Um dos problemas mais comuns é a instalação incorreta do gerenciador de boot. Nesse caso, inserir o disquete de instalação no drive e reinicializar a máquina. Quando aparece a linha

booting fd0a:netbsd - starting in ...    

pressionar a barra de espaço durante a contagem regressiva de 5 segundos. O boot se interrompe e aparece o prompt. Junto com o ponto de interrogação se visualiza a ajuda.

type "?" or "help" for help.
> ?
commands are:
boot [xdNx:][filename] [-adrs]
     (ex. "sd0a:netbsd.old -s")
ls [path]
dev xd[N[x]]:
help|?
quit
> boot wd0a:netbsd
    

Com o comando precedente indica-se ao sistema para se inicializar a partir do disco rígido ao invés do floppy. Se o sistema inicializa-se normalmente do disco rígido, trata-se apenas de um problema do gerenciador de boot. Caso contrário, provavelmente será necessário repetir a instalação. Para instalar novamente o gerenciador de boot ou modificar a sua configuração, usa-se o comando fdisk com a opção -B (ver Secção 20.4 para uma explicação detalhada).

4.2. Login

Para o primeiro login é preciso utilizar o usuário root (a conta do administrador do sistema), o único definido no sistema ao término da instalação. Se durante a instalação foi definida uma senha para o root, é necessário inserí-la. Do contrário basta pressionar a tecla Enter.

NetBSD/i386 (Amnesiac) (ttyE0)
login: root
password
...
We recommend creating a non-root account and using su(1) for root access.
#
    

4.3. Mudar a disposição do teclado

Até aqui a disposição do teclado permaneceu aquela da instalação, isto é, o teclado americano. Antes de começar a configurar o sistema, convém mudar a disposição para utilizar o teclado italiano executando o comando

# wsconsctl -k -w encoding=it
encoding -> it    

A lista completa das configurações do teclado suportadas encontra-se em /sys/dev/wscons/wsksymdef.h, mas as mais comuns são:

Esta definição durará até a próxima inicialização. Para restabelecê-la automaticamente, inserir o comando acima no fim do arquivo /etc/wscons.conf: uma olhada nos comentários contidos no arquivo deveria ser suficiente para compreender seu mecanismo de funcionamento. Para aprofundar o argumento: wscons.conf(5). Por exemplo, para utilizar o teclado italiano basta acrescentar a seguinte linha ao arquivo /etc/wscons.conf:

encoding it    

Podemos também personalizar algumas teclas, para acrescentar as chaves, o acento til etc., criando o arquivo /etc/itmap.it (o nome nós escolhemos à vontade) com o seguinte conteúdo:

keycode 12 = apostrophe question grave
keycode 13 = igrave asciicircum asciitilde
keycode 8 = 7 slash braceleft
keycode 9 = 8 parenleft bracketleft
keycode 10 = 9 parenright bracketright
keycode 11 = 0 equal braceright    

Enfim, acrescentar a linha que carrega o mapa no habitual arquivo /etc/wscons.conf:

mapfile /etc/itmap.it    

Mais à frente veremos como fazer para que o NetBSD use por default o teclado italiano compilando um novo kernel e, também, como personalizar a disposição do teclado.

4.4. O comando mais importante

Ainda que possa parecer estranho, o comando mais importante nesse momento é o man, que mostra uma página de manual.

Comando man para ter informações sobre um comando e man -k tópico para ter um conjunto de comandos que têm a ver com um 'tópico' (pode-se também usar apropos tópico).

Naturalmente o primeiro comando a acionar é

# man man    

O manual está subdividido em nove seções que não contêm informações apenas sobre comandos, mas também descrições de algumas características do sistema. Por exemplo, podemos consultar a página do hier(7) que descreve detalhadamente a arquitetura do sistema de arquivos do NetBSD

# man hier    

Para quem tenha ficado um pouco perplexo, hier é a abreviação de hierarchy. Outras páginas informativas desse tipo são, por exemplo, release(7) e packages(7). Cada seção do manual tem ademais uma página intro que lhe descreve o conteúdo. Experimentar, por exemplo

# man 8 intro    

Às vezes um argumento está presente em mais de uma seção do manual. Para visualizar o argumento da seção que interessa, é necessário indicar o número da seção no comando man. Por exemplo, time está presente na seção 1 (o comando de usuário time), na seção 3 (a função time na biblioteca C) e na seção 9 (a variável de sistema time). Se nos interessa uma função determinada, devemos especificar

# man 3 time    

Para visualizar todas as seções

# man -a time    

4.5. Mudando a senha do root

Ao término da instalação, o único usuário definido no sistema é o root, o administrador do sistema. Se no decorrer da instalação não foi definida uma senha para o root (o que não era possível nas versões anteriores à 1.5), chegou o momento de fazê-lo usando o comando passwd.

# passwd
Changing local password for root.
New password:
Retype new password:    

As senhas não são vistas sobre a tela quando são escritas. Mais â frente veremos como adicionar outros usuários.

4.6. Mudando a shell

A shell por omissão (default) do root é csh. Se isto não lhe diz nada, convém mantê-la e começar a estudar-lhe o funcionamento (em man csh). Trata-se de uma shell ótima para o uso interativo, ainda se lhe falta a history editing (falta remediada por tcsh, bash, ksh e da própria /bin/sh do NetBSD). Todavia, se a csh não lhe agrada, você pode mudar a shell do usuário root com o comando chsh. No todo, as shells disponíveis no sistema são

A nova shell será utilizada no próximo login. Enquanto isso não acontece convém dar o comando

# set filec    

que habilita o completamento dos nomes na linha de comando (com a tecla Esc).

Naturalmente é possível instalar muitas outras shells (tcsh, bash, zsh, etc.) utilizando o sistema de gerenciamento de pacotes, que veremos mais adiante.

Este é um bom momento para criar/copiar os arquivos de configuração da shell (.cshrc, .login, etc.).

4.7. Mudando a hora do sistema

O NetBSD, como todos os sistemas Unix, utiliza um relógio de sistema ajustado à hora de Greenwich e não à hora local. Infelizmente isso não é possível se usamos uma dupla inicialização com, por exemplo, Windows, que exige que a hora do sistema seja ajustada à hora local. Para resolver este problema é necessário informar o NetBSD, agindo sobre a variável rtc_offset do kernel. Pode-se recompilar o kernel depois de ter modificado o arquivo de configuração ou modificar diretamente o kernel existente (a modificação tornar-se-á efetiva na próxima inicialização) com a operação ilustrada pelo próximo exemplo.

# gdb --write /netbsd
GNU gdb 4.17
Copyright 1998 Free Software Foundation, Inc.
...
This GDB was configured as "i386--netbsd"...(no debugging symbols found)...
(gdb) set rtc_offset=-60
(gdb) quit
    

Note-se que o valor é indicado em minutos (-60) e representa, no caso, um fuso horário a oeste de Greenwich.

Para visualizar o valor corrente da variável:

# sysctl kern.rtc_offset
kern.rtc_offset = -60    

Nesse ponto simplesmente indicamos ao kernel como fazer para converter em UTC a hora do relógio do sistema. Se durante a instalação não foi definido o fuso horário, deve-se fazê-lo agora. Em todo caso convém verificar se a configuração está correta. No Brasil há quatro fusos horários, todos eles a oeste de Greenwich. Para a hora de Brasília, a configuração seria a seguinte (Nota do Tradutor):

# rm -f /etc/localtime
# ln -s /usr/share/zoneinfo/Brasil/East /etc/localtime
    

Uma vez que o sistema estiver configurado corretamente, podem-se mudar a data e a hora com o comando seguinte:

# date [[[[[cc]yy]mm]dd]hh]mm    

4.8. Configurando o /etc/rc.conf

Nos sistemas BSD o arquivo /etc/rc.conf é quem controla o que é executado automaticamente na inicialização do sistema. Em um certo sentido pode-se dizer que ele é o coração da configuração do sistema.

O mecanismo de funcionamento desse arquivo mudou com a versão 1.5 do NetBSD. Nas versões anteriores à 1.5, todos os valores a definir encontravam-se no arquivo /etc/rc.conf. Inicialmente ele continha as configurações por default que o usuário deveria personalizar depois, modificando diretamente o próprio arquivo. A partir da versão 1.5 as configurações por default estão definidas no arquivo /etc/defaults/rc.conf. O /etc/rc.conf contém apenas as opções modificadas pelo usuário com respeito aos defaults. As opções modificadas ficam portanto definidas no /etc/rc.conf, usando-se o /etc/defaults/rc.conf ( que não deve ser modificado) como referência.

Um exame deste arquivo é altamente instrutivo e a leitura da página de manual correspondente, que descreve todas as opções, é enfaticamente aconselhada.

# man rc.conf    

Ao término da instalação o sysinst já deveria ter efetuado as modificações fundamentais no arquivo. Atentar para que estejam presentes as seguintes linhas:

rc_configured=YES
wscons=YES    

Se "rc_configured" não está em YES o sistema entre em modo monousuário no fim do boot. A diretriz "wscons" configura o driver de console. Já que estamos aqui, se se que imprimir, convém inserir a diretriz:

lpd=YES    

para ativar o dæmon de impressão.

4.9. Estabelecendo o nome do host

Chegou o momento de indicar ao sistema o nome do nosso host. Há dois modos simples de fazê-lo. Se a máquina faz parte de uma rede, o nome da rede será obrigatório e o nome do host ser-nos-á provavelmente indicado pelo administrador. Se, ao contrário, se trata de um micro isolado (por exemplo, o computador de casa) pode-se escolher um nome de fantasia. Por exemplo, ape.insetti.net. Para ulteriores aprofundamentos ver o Capítulo 9.

A primeira maneira de se indicar o nome do host é inserindo a seguinte diretiva no arquivo /etc/rc.conf:

hostname=ape.insetti.net    

No lugar de indicar o nome do host diretamente no arquivo de configuração, pode-se escrevê-lo no arquivo /etc/myname. Os dois métodos são inteiramente equivalentes.

# echo ape.insetti.net > /etc/myname    

4.10. Reinicializando o sistema

Nesta primeira seção

Ao término destas primeiras operações é necessário reinicializar o sistema:

# reboot