Dernière modificiation le 13/07/2006
Le site des Hiboux

La console initiale de Linux (initial console)

rechercher sur le site accueil Linux Favoris Linux
 

Le célèbre message « warning: unable to open (an) initial console », apparait souvent lors des débuts sur Linux, quand on ne connais pas encore assez bien le processus de démarrage du noyau, et que l'on ne cerne pas correctement ses dépendances. Cette page vous éclairera enfin sur ce qui se cache derrière ce mystérieux message que même les linuxien(e)s ne savent généralement pas vous expliquer.

Qu'est-ce que la console initiale (initial console)

Sous Linux, la console initiale (initial console) est le premier périphérique d'entrées/sorties créé par le noyau. Cette initialisation est effectuée par le noyau juste aprés le montage du système de fichier racine, et juste avant le lancement du processus initial (souvent nomé init).

Le message « warning: unable to open initial console »

L'existance de cette console se fait parfois durement ressentire, lorsque le noyau ne parviens pas à démarrer le système, et que parmis les messages d'erreur, figure le trop célèbre « warning: unable to open initial console ».

Context d'initialisation

Cette initialisatione est effectuée aprés le montage du système de fichier racine, car pour cela, le noyau Linux a besoin d'accéder au descripteur de périphérique qui se trouve dans le repertoire /dev/.

Cette initialisation est effectuée juste avant le lancement du processus initiale, car c'est ce sont les hanldes de cette console qui lui seront passé.

Rôle et fonction de la console initiale

Les handles (type de donnée en C, permettant d'acceder à un système d'entrée sortie, tel qu'un fichier) de la console initiale, qui sont au nombre de trois, sont passé au processus initial. Celui-ci peut les ignorer et créer ses propres consoles.

Ouverture de la console initiale

Le plus souvent, c'est le périphérique /dev/console ou /dev/tty ou /dev/tty1 qui est employé. Il est possible d'indiquer au noyau d'utiliser un autre périphérique, en employant une option de démarrage du noyau : console=... Par exemple console=/dev/ttyS0, si l'on veut se controler le système par l'intermédiaire d'une console série.

A noter que le système peut démarrer, même si la console initiale n'a pas put être ouverte (raison pour laquelle Linux se contente alors d'un simple message d'avertissement - warning). Souvent, le processus initial créera lui même la ou les consoles nécéssaire à la poursuite des opération, rendant sans conscéquences l'echec de sa création par le noyau.

On pourra être étonné que le processus initial puisse créer un console si le noyau y échoue. C'est possible dans certains cas, l'un d'eux étant celui où un mauvais paramètre console a été passé au noyau.

Le plus souvent, un echec d'ouverture de la console est le signe que la racine du système de fichier initial a été mal montée ou que le repertoire /dev n'y existe pas, ou qu'il n'est pas remplie avec les bons descripteurs. Si la racine du système de fichier initial n'a pas put être monté, alors aucun autre processus n'aura de chance de créer cette console. Si nous sommes dans le deuxième cas, où le /dev n'existe pas ou qu'il est mal remplie (populated), alors le processus initial pourra créer et/ou remplire le repertoire /dev, et créer la console.

Depuis la version 2.4 de noyau, Linux peut créer lui même le contenu du reperoire /dev, et le monter sur une entrée de repertoire /dev qui doit être présente sur le système de fichier monté. Ceci est possible avec le système de fichier devfs. Si le noyau créé lui-même les entrée, et que vous passer à l'option console un chemin de descripteur qui sera créé par le noyau au démarrage, alors la console initiale pourra être initialisée, malgrée un repertoire /dev vide.

Paramètres du noyau concernés

root : de manière indirect, puisqu'il peut heberger le repertoire /dev. Par exemple root=/dev/hda1. rootfstype : de manière indirect, puisque ce paramètre optionel, peut determiner l'echec ou le succés du montage du périphérique spécifié par le paramètre root. Par exemple rootfstype=e2fs. console : le paramètre le plus direct. Par exemple console=/dev/tty.

La suite ...

La suite : Liaison dynamique

Google
 
Index

Installer Linux pour petits et moyens PC

Suite de cette page

Liaison dynamique

Page dont celle-ci est la suite

Le processus permanent Init

Accueil du site

Accueil

Contact

Contact

Lien inactif

Info