|
Página seguinte
Página anterior
Índice
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:
- Esteja certo de que
init foi incluído como /sbin/init ou /bin/init e que tem permissão de execução.
- 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.
- Esteja certo de utilizar o carregador correto para as bibliotecas ---
ld.so para a.out ou ld-linux.so para ELF.
- 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.
- 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.
- Esteja seguro de ter incluído um shell script (por exemplo,
bash ou ash ), capaz de executar todos os programas rc .
- 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
|