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.