2009-05-20 9 views
0

Quels sont les coupables possibles des plantages lors de l'initialisation du noyau? Je lance un noyau qui a initramfs, l'inittab est très basique rcS (comme sysinit) et getty (respawn). Pendant le démarrage, je ne reçois aucun message d'erreur, cependant l'init me donne ce message: S0 réapparition trop rapide: désactivé pendant 5 minutes, où S0 est en fait la ligne respawn :: getty (il semble que getty continue de s'écraser), aussi aucun des messages générés par le rcS n'est vu sur la console (je suppose que les commandes de rcS crashe aussi). Si je force le noyau à aller vers/bin/sh (au lieu de/init) je peux appeler rcS manuellement et je ne reçois aucune erreur, même chose pour getty (si j'appelle getty avec les mêmes paramètres d'inittab ça marche bien).problèmes lors de l'initialisation du noyau linux

Je me demande quelle est la différence entre la façon dont init génère les processus et la façon dont/bin/sh fonctionne.

+0

Vous devez fournir le contenu de votre/etc/inittab. Laissez des commentaires et des lignes vides - juste le courage. – camh

Répondre

0

L'initialisation du journal de certains systèmes d'exploitation se répète en wtmp, vous pourriez vouloir vérifier là. Activer votre syslog pourrait également aider. Lorsque vous lancez getty via/bin/sh, reste-t-il en fonctionnement? AFAIK, l'astuce avec init respawn est que le PID qu'il génère est surveillé et s'il baisse il en déclenche un autre.

+0

Non, si je change le respawn à/bin/sh je reçois le même message "Respawn trop rapide: désactivé pendant 5 minutes" La seule façon de l'éviter est d'exécuter/bin/sh au lieu de/init, aussi parce que les syslogs sont montés sur le disque virtuel, je ne vois aucun message. – uzurpatorul

0

Stock/bin/sh n'est pas construit statique, ni getty. Vous devez regarder les dépendances de bibliothèque partagée de/bin/sh et getty que toutes les bibliothèques sont présentes.

Vous pouvez utiliser ldd ou 'readelf -a' pour voir les dépendances de la bibliothèque partagée.

+0

J'ai essayé cela, je reçois une instruction illégale en essayant d'utiliser ldd. Je pense que quelque chose est fondamentalement faux avec ma distribution, je me demande si je dois faire quelque chose de spécial pour DDR2 avec 64 bits dans le noyau Linux, c'est le seul changement au tableau d'évaluation actuel. – uzurpatorul

+0

Si vous soupçonnez votre mémoire, vous devriez essayer memtest à partir du CD d'installation, la plupart des distributions l'offrent dans le menu de démarrage/installation. – codeDr

0

Peut-être que rien ne se met en place /dev/tty1, /dev/tty2, etc, mais des choses est en cours d'exécution sur ok /dev/console (ce qui est la même chose que /dev/tty1). Si vous dépendez d'un répertoire/dev se trouvant dans votre système de fichiers initramfs ou root, vérifiez-les.

Probablement la principale différence entre init =/bin/sh et laissant init spawn stuff est le /dev/console par rapport à /dev/ttyx. Je ne peux pas penser à autre chose qui serait pertinent. Gardez à l'esprit que l'initramfs fonctionne en premier, je pense. Et BTW, vous êtes évidemment passé l'init init du noyau si init (8) ou /bin/sh peut fonctionner.

Questions connexes