Archive for the ‘Unix’ category

Instalando um novo disco rígido no NetBSD

outubro 22nd, 2008

Em primeiro lugar é necessário particioná-lo com o comando “disklabel”:

# disklabel -i -I sd1

O “-i” faz o “disklabel” entrar no modo interativo e o “-I” faz com que se o “disklabel” não consiga ler informações diretamente no dispositivo, busque no “kernel”. A seguir é criada a partição “e” utilizando todo o espaço:

partition> e
Filesystem type [?] [4.2BSD]: 4.2BSD
Start offset ('x' to start after partition 'x') [0c, 0s, 0M]: 0s
Partition size ('$' for all remaining) [26316.9c, 71687370s, 35003.6M]: $
partition> W
Label disk [n]? y
Label written
partition> P
#       size offset   fstype   [fsize bsize cpg/sgs]
 e: 71687370      0   4.2BSD        0     0     0   # (Cyl. 0 - 26316*)
partition> Q

O modo interativo do disklabel dispõe do comando “?” para ajuda.

Agora pode-se dar um formato à esta partição, criando um “sistema de arquivos” com o comando “newfs”:

# newfs /dev/rsd1e
/dev/rsd1e: 35003.6MB (71687368 sectors) block size 16384, fragment size 2048
        using 190 cylinder groups of 184.23MB, 11791 blks, 23296 inodes.
super-block backups (for fsck_ffs -b #) at:
32, 377344, 754656, 1131968, 1509280, 1886592, 2263904, 2641216, 3018528, 3395840, 3773152,
...............................................................................................

A partição está pronta para ser utilizada no sistema. Adicione-a na tabela de partições, editando o arquivo “/etc/fstab”:

# vi /etc/fstab
# NetBSD /etc/fstab
# See /usr/share/examples/fstab/ for more examples.
/dev/sd0a               /               ffs     rw               1 1
/dev/sd0b               none            swap    sw               0 0
/dev/sd0d               /var            ffs     rw               1 2
/dev/sd0e               /home           ffs     rw               1 2
/dev/sd0g               /usr            ffs     rw               1 2
/dev/sd0b               /tmp            mfs     rw,-s=525760
/dev/sd1e               /home/share     ffs     rw               1 2
kernfs          /kern   kernfs          rw
procfs          /proc   procfs          rw,noauto
~
~
~
~
~
:wq

Neste caso a partição “sd1e” será montada no diretório “/home/shared”. Este diretório deve ser criado manualmente. Isto feito, pode-se montar a partição:
# mount -a

Para certificar-se de que tudo está funcionando use o comando “df”:

# df -h
Filesystem    Size      Used     Avail Capacity  Mounted on
/dev/sd0a     124M       26M       92M    22%    /
/dev/sd0d     3.0G       13M      2.8G     0%    /var
/dev/sd0g     3.0G      497M      2.3G    17%    /usr
/dev/sd0e     1.3G       24K      1.3G     0%    /home
mfs:305       249M      1.0K      236M     0%    /tmp
/dev/sd1e      34G       14K       32G     0%    /home/share
kernfs        1.0K      1.0K        0B   100%    /kern

O novo disco está disponível e pronto para receber dados.

Minha fonte de informações foi o site do NetBSD: www.netbsd.org

Configurando o NetBSD para conectar-se usando DHCP.

setembro 29th, 2008

Edite o arquivo /etc/rc.conf:

# vi /etc/rc.conf
Adicione as linhas:
hostname="sun4u_nodeB"
dhclient=YES
dhclient_flags="hme0"

Onde “hostname” é o nome da maquina na rede e “dhclient_flags” é a identificação da placa de rede que receberá o IP via DHCP. Para saber a identificação da placa de rede use o comando dmesg. O dhclient será ativado na reinicialização, para ativá-lo imediatamente use o comando:

# /etc/rc.d/dhclient start

O equipamento está na rede.

Notas sobre a instalação e configuração do NetBSD

setembro 29th, 2008

A instalação foi feita em um equipamento Sun Ultra 1 usando processador Ultra Sparc II de 143 Mhz, 512 Mb de RAM e dois discos rígidos (8.9 GB e 4.7 Gb SCSI 10.000 RPM). Após a instalação do NetBSD é preciso configurar praticamente tudo manualmente. Diferente de outros BSD’s o Net é pouco amigável. Não existem interfaces, a instalação é crua, limpa e rápida, mesmo porque, ele não trás absolutamente nada além do básico para operar o sistema, compilar pacotes e ou instalar pacotes binários.

O NetBSD é um sistema fantástico, levíssimo e robusto. Ele tornou uma antiga estação Sun em um poderoso servidor DNS e Apache (com Mod_Perl/PHP/MySQL).

Liberando espaço no “/var” do Solaris

agosto 3rd, 2008

O diretório ou partição, “/var” no Solaris incha facilmente. Isto acontece devido aos diretórios abaixo de “/var/sadm” serem constantemente alimentados com informações de pacotes e atualizações. Quando se tem um bom espaço físico disponível para o “/var”, esta característica não é um problema, pelo contrário; o sistema, silenciosa e providencialmente, mantém cópias de segurança nos diretórios “/var/sadm/pkg/*/save”, isto para que, caso algum update ou patch não funcione adequadamente, o administrador tem a possibilidade de restaurar o ambiente do jeito que estava antes destes terem sido aplicados. Porém, quando se tem o Solaris instalado em máquinas mais antigas (como é o caso da minha Ultra Sparc 10) com o espaço para a partição/diretório “/var” limitado, esta característica atrapalha. Uma forma de contornar este esgotamento constante do recurso em questão é dar uma “limpada” nestas pastas:

  1. Verifique a pasta “/var/sadm/spool”; ali estão os patchs que devem ser aplicados manualmente e os arquivos ali contidos podem e devem ser eliminados após a instalação.  Isto já libera um montante considerável de espaço.
  2. Limpe as pastas “/var/sadm/pkg/*/save” apagando os arquivos “undo.Z” e “obsolete.Z”, da seguinte forma:
root@sun4u_nodeF:~# find /var/sadm/pkg -name obsolete.Z -exec rm {} \;
root@sun4u_nodeF:~# find /var/sadm/pkg -name undo.Z -mtime +90 -exec rm {} \;

No primeiro comando busquei arquivos obsolete.Z que é um backup do backup undo.Z. Este arquivo é gerado quando um patch ou update já tenha sido feito anteriormente; portanto, é dispensável. No segundo “find” busquei os arquivos undo.Z que são as cópias de segurança das quais falei há pouco. Busquei os arquivos que foram gerados há noventa dias ou mais e os eliminei. Se em noventa dias não houve problemas, muito provavelmente o path/update é estável.

Pode-se colocar estes comandos no “cron” e executá-los mensalmente, assim constantemente haverá espaço disponível para novas atualizações.

Bom, estas foram duas soluções que eu encontrei fuçando na net para um problema chato que estava tendo, caso queira utilizar, faça-o por sua conta e risco. Infelizmente as informações sobre estes arquivos mencionados “obsolete.Z” e “undo.Z”, estão disponíveis somente para usuários que pagam suporte técnico para a Sun; eu na qualidade de usuário doméstico do Solaris não tenho/tive acesso à informações mais precisas.

Manual installation of patches on Solaris

fevereiro 29th, 2008

Muitos patchs/atualizações baixadas pelo update manager do Solaris precisam ser aplicados e ou instalados manualmente. A ferramenta informará quando isto for necessário. Segue um exemplo de como executar a tarefa:

root@sun4u_nodeF:~# cd /var/sadm/spool/
root@sun4u_nodeF:spool# jar xvf 121430-22.jar
root@sun4u_nodeF:spool# cd 121430-22

Verifique se os arquivos : prepatch ou postpatch existem.  Se existir um dos dois ou os dois, eles precisam ter permissão de execução.

root@sun4u_nodeF:121430-22# chmod 755 prepatch

E/Ou:

root@sun4u_nodeF:121430-22# chmod 755 postpatch

Agora é só aplicar o patch:

root@sun4u_nodeF:121430-22# patchadd /var/sadm/spool/121430-22

Host “unknown” in Solaris with DHCP

fevereiro 25th, 2008

Dica rápida:

Quando se configura o Solaris para obter o IP de um servidor DHCP que não fornece o nome de host; como é o caso do meu roteador LinkSys (e da maioria dos roteadores de pequeno porte), o sistema fica nominado como “unknown” ou “desconhecido” (em bom português). Há uma solução simples para isto, que é forçar um nome de host criando/editando o arquivo “/etc/nodename” e deixando-o com o nome que se deseja utilizar, exemplo:

root@sun4u_nodeF:~# vi /etc/nodename
sun4u_nodeF
~
~
~
~
:wq
root@sun4u_nodeF:~#

Durante a recarga do sistema, já será mostrado o nome de host setado corretamente. É necessário informar ao DHCPAGENT que você tem um hostname para esta placa e que ele deve informar isto ao servidor DHCP:

root@sun4u_nodeF:~# vi /etc/defaults/dhcpagent

Altere a seguinte linha:

#REQUEST_HOSTNAME=no

Para:

REQUEST_HOSTNAME=yes

Edite os arquivos /etc/hostname.<interface> e coloque o seguinte:

root@sun4u_nodeF:~# vi /etc/hostname.hme0
inet sun4u_nodeF
~
~
~
~
:wq
root@sun4u_nodeF:~# reboot

Isto informará ao DHCP o hostname corretamente e o sistema está corretamente nomeado.