Capítulo 5. Operações subseqüentes

Índice
5.1. dmesg
5.2. Montando o cdrom
5.3. Montando o disquete
5.4. Acessando uma partição MS-DOS/Windows
5.5. Acrescentar um novo usuário
5.6. Shadow password
5.7. Localização
5.8. Encerrando e reinicializando o sistema

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.

5.1. dmesg

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.

5.2. Montando o cdrom

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    

5.3. Montando o disquete

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.

5.4. Acessando uma partição MS-DOS/Windows

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>    

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    

5.5. Acrescentar um novo usuário

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ó:

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 -D      
mostra os valores correntes por default.

O comando:

# useradd -D -s /bin/ksh      
estabelece 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.

5.6. Shadow password

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.

5.7. Localização

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).

5.8. Encerrando e reinicializando o sistema

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.