O primeiro boot já é história passada e a configuração básica do sistema já está completa. Nesta seção descreveremos, sem uma ordem muito rígida, algumas operações comuns e alguns comandos úteis.
Durante a inicialização do sistema o kernel escreve no vídeo uma longa série de mensagens relativas às operações executadas e aos periféricos reconhecidos. Estas mensagens são fundamentais seja para diagnosticar eventuais problemas, seja para determinar os nomes dos dispositivos de driver associados aos periféricos. O comando dmesg reapresenta as mensagens explicitadas pelo kernel durante a inicialização do sistema, permitindo examiná-las com toda a calma. Em particular, quando se solicita a assistência de umas das mailing lists do NetBSD porque algum periférico não funciona a contento, sempre se deve anexar a mensagem de output do dmesg (ou pelo menos a parte relativa ao periférico em questão).
# dmesg | more
Se alguma coisa no sistema não funciona como deveria e você decide recorrer à ajuda de uma das mailing lists do NetBSD, lembre-se de anexar à sua mensagem o output do dmesg relevante para o seu problema. Estas informações serão úteis para que outros diagnostiquem o seu problema.
Uma das questões que reaparecem com maior freqüência nas mailing lists é "como se faz para montar o CD-ROM?". Vejamos agora o procedimento a adotar. O dispositivo correspondente ao CD-ROM pode-se identificar através do já citado comando dmesg. Suponhamos, por exemplo, que o dmesg torne visíveis as seguintes informações:
# dmesg | grep ^cd cd0 at atapibus0 drive 1: <ASUS CD-S400/A, , V2.1H> type 5 cdrom removable
Neste caso o CD-ROM poderá ser montado com
# mkdir /mnt/cdrom # mount -t cd9660 -o ro /dev/cd0a /mnt/cdrom
Para evitar a repetição destes comandos toda vez, convém inserir uma linha no /etc/fstab.
/dev/cd0a /mnt/cdrom cd9660 ro,noauto 0 0
A essa altura, sem necessidade de reinicializar, para montar o CD-ROM basta dar o comando
# mount /mnt/cdrom
Se o CD-ROM está montado não é possível ejetá-lo manualmente (isto é, pressionando o botãozinho do driver). É necessário que antes seja dado o comando
# umount /mnt/cdrom
Alternativamente pode-se ejetá-lo via software (mesmo se estiver montado) com o comando
# eject cd0
Para usar o floppy disk pode-se utilizar um mecanismo similar ao do CD-ROM. Em primeiro lugar cria-se o ponto de montagem. Por exemplo:
# mkdir /mnt/floppy
Para ler e escrever um disquete em formato MSDOS pode-se agora executar o comando:
# mount -t msdos /dev/fd0a /mnt/floppy
Se muitos disquetes em formato MSDOS são usados, a minha sugestão é que se instale o pacote "mtools", que acessa diretamente o disquete (e também uma partição DOS) de modo muito cômodo.
Se o NetBSD compartilha o disco rígido com o MS-DOS ou com Windows, é possível tornar visíveis as partições de cada sistema modificando o disklabel. A primeira coisa a fazer é determinar a geometria da partição DOS. Por exemplo, com o comando fdisk.
# fdisk wd0 NetBSD disklabel disk geometry: cylinders: 6232 heads: 16 sectors/track: 63 (1008 sectors/cylinder) ... Partition table: 0: sysid 6 (Primary 'big' DOS, 16-bit FAT (> 32MB)) start 63, size 2088516 (1019 MB), flag 0x80 beg: cylinder 0, head 1, sector 1 end: cylinder 259, head 0, sector 4 1: sysid 169 (NetBSD) start 2088579, size 4193277 (2047 MB), flag 0x0 beg: cylinder 259, head 0, sector 4 end: cylinder 779, head 0, sector 1 2: <UNUSED> 3: <UNUSED>
Nota: neste exemplo foi usado o disco wd0. Cada um deve substituir a identificação correta para seu próprio disco (por exemplo, sd0, etc.)
O exame do output do fdisk mostra que a partição DOS inicia-se no setor 63 e tem o tamanho de 2088516. A partição NetBSD inicia-se no setor 2088579 (note-se que 2088579 = 2088516 + 63). Esses dados servem para modificar o disklabel BSD, usando o editor especificado pela variável do ambiente $EDITOR. É necessário acrescentar uma linha ao disklabel, especificando-se os dados da partição MS-DOS que acabamos de descobrir, usando a primeira letra livre como identificador da partição.
# disklabel -e wd0 ... # size offset fstype [fsize bsize cpg] ... e: 3450624 2831232 4.2BSD 1024 8192 16 # (Cyl. 2808* - 6231) f: 2088516 63 MSDOS
As partições de "a" a "e" estavam ocupadas e, portanto, o identificador escolhido para a linha foi "f". Os campos "size" e "offset" foram preenchidos com os dados encontrados antes. Agora se cria o ponto de montagem, por exemplo:
# mkdir /msdos
enfim, acrescenta-se a linha seguinte em /etc/fstab
/dev/wd0f /msdos msdos rw,noauto 1 3
Para acessar a partição MS-DOS basta executar o comando:
# mount /msdos
Com o método descrito acima podem-se ler partições FAT e FAT32. Se queremos que a partição MS-DOS seja montada automaticamente na inicialização, basta eliminar a opção "noauto", da seguinte maneira:
/dev/wd0f /msdos msdos rw 1 3
O gerenciamento dos usuários e dos grupos realiza-se por meio dos programas useradd(8) e groupadd(8). Por exemplo, para acrescentarmos um novo usuário carlo designando-o para um grupo com seu próprio nome, criemos em primeiro lugar o grupo com:
# groupadd carlo
depois criemos o novo usuário:
# useradd -G wheel -g carlo -m -s /bin/ksh carlo
Com o comando acima fizemos várias operações de uma vez só:
indica o adicionamento do usuário ao grupo "wheel" (o grupo do root), o que permitirá a execução do comando su.
especifica o grupo a que pertence o usuário. No caso, o grupo precedentemente criado.
ordena a criação do diretório home para o usuário.
escolhe a shell ksh para o usuário.
o nome do usuário a adicionar.
Neste exemplo escolhemos manualmente a shell ksh, mas os valores utilizados por default pelo useradd podem ser configurados. Ver a página de manual useradd(8). O comando
# useradd -Dmostra os valores correntes por default.
O comando:
# useradd -D -s /bin/kshestabelece a ksh como shell por default do comando useradd.
Nota: o instrumento a se utilizar para acrescentar ou modificar os usuário manualmente é o vipw, que permite modificar de modo seguro o arquivo das senhas.
As shadow password são o default para o NetBSD, e não podem ser desabilitadas. Todas as senhas de /etc/passwd contêm um '*'. As senhas criptografadas estão contidas em um arquivo separado, /etc/master.passwd, que pode ser lido somente pelo root. Quando se lança o vipw para editar o arquivo das senhas, o programa abre uma cópia do /etc/passwd. Quando é encerrado, vipw verifica a validade da cópia, gera /etc/passwd e instala o novo /etc/master.passwd. Por fim, executa pwd_mkdb que cria os arquivos /etc/pwd.db e /etc/spwd.db, que são bancos de dados equivalentes a /etc/passwd e /etc/master.passwd, permitindo um acesso mais veloz.
A conseqüência de tudo isso é que as shadow password são geridas de modo automático (transparente, para usar um termo que está em moda hoje) pelo NetBSD. Enquanto for usado o vipw para se editar o arquivo das senhas, não é necessária qualquer mudança nos procedimentos padrão de administração do sistema.
É importante lambrar que a administração das contas deve sempre ser efetuada usando-se o vipw (ou chfn, chsh, chpass, passwd). Não é necessário jamais modificar diretamente o /etc/master.passwd.
A localização é um setor em que o NetBSD infelizmente ainda está um tanto débil. Seu suporte ainda é carente, embora venha a ser estendido nas próximas edições do sistema, já que o código necessário já está presente na versão current. Nesse meio tempo podemos dar um jeito. Para os usuários europeus, a primeira coisa a fazer é obter o tarball locale.tgz no site do NetBSD e instalá-lo com os comandos:
# cd / # gunzip < /path/to/locale.tgz | tar xvf -
Subseqüentemente acrescentemos as instruções seguintes aos arquivos de configuração da shell (por exemplo /etc/profile):
LANG=it export LANG LC_CTYPE=iso_8859_1 export LC_CTYPE
Estas configurações permitem a utilização das letras acentuadas e os menus em italiano em alguns programas (por exemplo o mutt).
O comando a usar é shutdown. Por exemplo:
# shutdown -h now # shutdown -r now
Como alternativa podem-se usar os comandos:
# halt # reboot
halt/reboot e shutdown não são sinônimos. Este último permite programar o encerramento do sistema, notificar os usuários, etc. Para os detalhes, consultar a página do manual respectiva.