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:
/bin
no disquete.
/lib
do disco rígido.
/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.
/dev/tty1, /dev/null, /dev/zero,
/dev/mem, /dev/ram
e /dev/kmem
foram incluídos.
Alguns deste aspectos gerais são melhor detalhados a seguir:
init
foi incluído como /sbin/init ou /bin/init e que tem permissão de execução.
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.
ld.so
para a.out ou ld-linux.so
para ELF.
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.
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.
bash
ou ash
), capaz de executar todos os programas rc .
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.