(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

71. Problemas

Na construção de discos de inicialização, as primeiras tentativas normalmente gerarão discos com problemas. A abordagem de construção de um disco raiz é montar seus componentes a partir de um sistema já existente e tentar construir um disquete baseado nele que viabilize a carga do sistema até o momento em que mensagens possam ser apresentadas na console. Após esse passo, cabe verificar as mensagens e os erros apresentados, e ir corrigindo um a um, de acordo com o apresentado no console. Caso o sistema simplesmente trave, sem maiores explicações, encontrar a causa será um pouco mais difícil. Para ter-se um sistema que possa chegar ao estágio de enviar mensagens para o console, são requeridos diversos componentes, que devem estar presentes e corretamente configurados. O procedimento recomendado na investigação de um problema onde o sistema não apresente a sua causa é o seguinte:

  • Verificar se o disco raiz contém realmente os diretórios necessários. É comum copiar de níveis errados e ter algo como /discoraiz/bin ao invés de /bin no disquete.
  • Verificar se existe /lib/libc.so com a mesma ligação que aparece no diretório /lib do disco rígido.
  • Verificar se todas as ligações simbólicas no diretório /dev existem no sistema de arquivos raiz do disquete, onde aquelas ligações devem ser para dispositivos que estão inclusos no disco raiz. Em particular, ligações para /dev/console são fundamentais em diversos casos.
  • Verificar se os arquivos /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram e /dev/kmem foram incluídos.
  • Verificar se a configuração do kernel suporta todos os recursos requeridos até o momento de acesso ao sistema e se estão adicionados ao kernel de forma residente e não como módulos. Suporte a discos em memória e ext2 devem estar residentes.
  • Verificar se as configurações do dispositivo raiz e do kernel e o disco em memória estão corretas.

Alguns deste aspectos gerais são melhor detalhados a seguir:

  1. Esteja certo de que init foi incluído como /sbin/init ou /bin/init e que tem permissão de execução.
  2. Execute ldd init para checar as bibliotecas necessárias à execução do init. Normalmente é necessária somente libc.so. Esteja certo de que todas as bibliotecas e carregadores foram incluídos.
  3. Esteja certo de utilizar o carregador correto para as bibliotecas --- ld.so para a.out ou ld-linux.so para ELF.
  4. Verificar se o arquivo /etc/inittab no sistema de arquivos do disquete de inicialização, aponta para o programa getty (ou algum programa similar a getty, como por exemplo agetty, mgetty ou getty_ps). Cheque duplamente esse arquivo comparando-o com o disponível no disco rígido. Verifique as páginas do manual do programa que está sendo utilizado para estar seguro que a configuração está correta. inittab é possivelmente a parte mais repleta de detalhes devido à sua sintaxe e o seu conteúdo depende do programa usado no sistema. A única forma de não correr riscos é ler as páginas de manual do init e inittab e verificar exatamente o que o sistema está fazendo ao ser iniciado. Esteja seguro que /etc/inittab tem uma entrada de inicialização no sistema. Deve haver um comando de execução do programa de inicialização do sistema, o qual deve existir.
  5. Assim como realizado com init, execute ldd em getty para verificar as dependências, esteja certo de que as bibliotecas necessárias e carregadores estão presentes no sistema de arquivos raiz.
  6. Esteja seguro de ter incluído um shell script (por exemplo, bash ou ash), capaz de executar todos os programas rc .
  7. Caso se tenha um arquivo /etc/ld.so.cache no disco de emergência, refaça-o.

Caso init comece, mas seja obtida a seguinte mensagem:

        Id xxx respawning too fast: disabled for 5 minutes

ela é oriunda do init, normalmente indicando que os programas getty ou login estão sendo encerrados imediatamente após o seu início. Verifique os executáveis getty e login e as bibliotecas necessárias. Esteja seguro que as chamadas em /etc/inittab estão corretas. Caso mensagens estranhas apareçam a partir do getty, pode significar que a chamada em /etc/inittab está errada. As opções disponíveis em getty variam bastante; assim como diferentes versões do agetty podem ter incompatibilidades na sintaxe das chamadas.

Caso ao se tentar executar algum programa, tal como df, presente no disco de emergência, e obtêm-se mensagens como: df: não encontrado, deve-se verificar: (1) o diretório que contém o comando está configurado na variável de ambiente PATH, e (2) todas as bibliotecas e carregadores necessários ao programa estão presentes.


Página seguinte Página anterior Índice