MP2L
Cours GNU/Linux
Chapitre 2 : Installation et
configuration d'une
distribution GNU/Linux
1. Introduction :
La mise en œuvre d’un système d’exploitation couvre généralement trois aspects :
a. L’installation, la configuration et la maintenance d’un système : cet aspect est
généralement abordé par des personnes expérimentées dans l’utilisation des
systèmes d’exploitation. Selon les systèmes d’exploitation, cet aspect peut être
plus ou moins complexes et nécessite parfois la présence d’un professionnel.
L’installation, la configuration et la maintenance d’un système constituent des
phases importantes dans le cycle de vie d’un système d’exploitation, car elles ont
un effet sur les performances du système lors de son exploitation par des
utilisateurs.
b. L’aspect externe d’un système : cet aspect concerne essentiellement l’exploitation
du système, du point de vue externe, à travers des interfaces graphiques et/ou à
travers des commandes. Une bonne initiation au langage de commande d’un
système est nécessaire pour permettre une exploitation à la fois rationnelle et aisée
d’un système. La maîtrise de cet aspect passe par une activité intense d’utilisation
du système.
c. L’aspect interne d’un système : cet aspect est généralement réservé aux
administrateurs d’un système ou à des professionnels qui peuvent à la fois analyser
le fonctionnement interne d’un système et y apporter les modifications nécessaires
en cas de besoin.
Dans le cadre du Mastère MP2L, il est important que les participants à ce Mastère puissent
acquérir, en plus de l’aspect exploitation d’un système GNU/Linux, les éléments essentiels
pour l’installation, la configuration et la maintenance d’un tel système. Cet aspect viendra
consolider la formation et donnera plus d’autonomie à chaque participant.
2. Classes d'installation
Les programmes d'installation RedHat, Mandrake et Slackware proposent
des classes d'installation qui influent sur le paramétrage automatique du système et sur la
Yahya SLIMANI/Habib SMEI
- Page 1 -
MP2L
Cours GNU/Linux
suite logicielle installée. Les distributions Suse et Debian n'offrent, quant à elles, qu'un choix
entre diverses présélections de paquetages.
Les termes qui sont le plus couramment utilisés dans une procédure d’installation,
sont :
•
•
•
Station de travail : l'ordinateur cible disposera de l'interface graphique Xwindow,
des programmes liés au multimédia et au moins d'une suite bureautique.
Cette installation comprend également tous les logiciels client de communication
réseau (navigateur Web, client FTP, outil de messagerie, etc.).
Ordinateur personnel / Portable : mêmes hypothèses que pour l'option
précédente, avec en plus des logiciels de communication pour les assistants
personnels (PDA) et les services de gestion d'énergie pour les portables.
Serveur : cette option permet d’installer et de configurer une suite de
services réseau. Elle est notamment utile pour mettre en place rapidement un
serveur Web ou partager des fichiers sur un réseau local ; par contre, elle ne
devrait pas être utilisée pour déployer un serveur réseau sur Internet
• Personnalisée / Expert : c’est l’option choisie par tout administrateur Linux qui
veut sélectionner les
•
paquetages devant être installés et qui tient à optimiser le paramétrage de son
système.
• Recommandée : cette option masque un certain nombre d’éléments lors de la phase
d'installation, comme par exemple le partitionnement des disques. La complexité et
la maîtrise du processus d'installation seront alors fortement amoindries. C’est une
option qui est recommandée pour les non spécialistes.
• Mise à jour : cette option offre la possibilité de mettre à jour la distribution
actuellement installée, avec de nouveaux paquetages ou un changement de version
de distribution.
Dans le reste de ce chapitre, nous allons détailler la la procédure d'installation de la
distribution GNU/Linux Debian.
Yahya SLIMANI/Habib SMEI
- Page 2 -
MP2L
3. Comment récupérer la distribution Debian
Cours GNU/Linux
La distribution Debian GNU/Linux est distribuée librement sur Internet et il est
possible de la télécharger entièrement depuis n'importe lequel des miroirs disponibles.
Si on veut simplement installer Debian, il est possible d’utiliser l’une des options
suivantes :
• Télécharger une petite image amorçable, l'enregistrer sur CD/DVD/clé USB, puis
l'installer en utilisant Internet.
Ces images CD netinst de taille réduite sont rapides à télécharger. Elles vous
permettent de télécharger uniquement les paquets Debian qui seront utilisés, mais
nécessite une connexion à Internet sur la machine à installer.
• Télécharger des images CD et DVD complètes, les enregistrer, sur un support
numérique, puis effectuer l'installation en utilisant exclusivement ce support.
Les images de CD et DVD peuvent être téléchargées en utilisant HTTP/FTP,
BitTorrent, ou Jigdo (conçu principalement pour le téléchargement de fichiers
volumineux de la distribution Debian).
Les images complètes de CD ou DVD donnent la possibilité de disposer d’un
ensemble important de paquets (ou paquetages), ce qui permet de faire une installation
sans recourir à un acccès Internet. Cependant, en téléchargeant un jeu complet de CD
ou DVD, on aura téléchargé un grand nombre de paquets qu'on n'utilisera sans doute
pas.
• Acheter un jeu de CD ou DVD auprès d'un des distributeurs de CD Debian et
installer à partir de ce heu.
4. Démarrage de l'installation
a. Les supports du système d'installation ?
La méthode la plus facile pour installer Debian GNU/Linux est sûrement celle utilisant
les CD officiels. On peut aussi télécharger les images ISO à partir d'un miroir de Debian et
fabriquer ses propres CD, si on dispose d'une connexion rapide et d’un graveur.
Si on dispose de CD alors que la machine ne sait pas amorcer à partir d'un CD, on peut
utiliser un autre support magnétique tel qu’un disque dur, une clé usb. Il est possible aussi de
faire un démarrage sur le réseau, ou bien encore, un chargement manuel du noyau et un
premier démarrage de l'installateur. Les fichiers requis pour ces différents amorçages sont
Yahya SLIMANI/Habib SMEI
- Page 3 -
MP2L
Cours GNU/Linux
aussi sur le CD de la distribution, sachant que l'archive réseau de Debian et l'organisation des
répertoires du CD sont identiques. Ainsi, lorsqu'un chemin d'archive est demandé pour un
fichier particulier requis pour amorcer, il suffit de le chercher dans le même répertoire ou un
sous-répertoire du CD.
Une fois l'installateur amorcé, il est programmé de telle sorte à obtenir, sans
intervention explicite de l’utilisateur, tous les autres fichiers nécessaires à partir du CD.
b. L'invite d'amorçage
Quand l'installateur démarre, une invite d'amorçage, boot: apparaît dans un écran
montrant le logo de la distribution.
Press F1 for help, or ENTER to boot:
On peut maintenant appuyer sur la touche Enter pour lancer l'installateur avec les
options par défaut. On peut également indiquer une méthode spécifique d'installation avec
d'autres paramètres d'amorçage.
Des informations utiles sur les paramètres d'amorçage peuvent être consultées en
pressant les touches F3 à F8. Si on ajoute des paramètres à la ligne de commande, on doit
dans ce cas indiquer la méthode d'amorçage (la valeur par défaut est install) et un espace
Publicité
avant le premier paramètre (par exemple, install fb=false).
c. Étapes du processus d'installation
Voici les étapes qui composent le processus d'installation :
1. Sauvegarder toutes les données du disque dur sur lequel l'installation sera faite ;
2. Rassembler les informations concernant l'ordinateur, ainsi que la documentation
nécessaire ;
3. Préparer de l'espace libre sur le disque dur ;
4. Télécharger l'installateur et tous les pilotes nécessaires (uniquement quand on
n'utilise pas les CD Debian) ;
5. Préparer les bandes, les disquettes ou les clés USB pour l'amorçage ; c’est dans ces
supports que seront installés les fichiers d'amorçage. Il faut noter que les
utilisateurs des CD Debian peuvent amorcer à partir de l'un des CD qui sont à leur
disposition ;
6. Amorcer l'installateur ;
Yahya SLIMANI/Habib SMEI
- Page 4 -
MP2L
7. Choisir une langue ;
Cours GNU/Linux
8. Si nécessaire, mettre en place la connexion réseau ;
9. Créer et monter les partitions sur lesquelles Debian sera installé ;
10. Attendre la fin du processus automatique de téléchargment / installation /
configuration du système de base ;
11. Installer un programme d'amorçage qui puisse démarrer Debian GNU/Linux ou un
autre système ;
12. Charger le nouveau système pour la première fois.
Dans les sections suivantes, nous allons détailler les étapes 9 et 11 qui demandent une
attention particulière.
c.1. Création et montage des partitions
Comme pour tout système d'exploitation, il faut allouer un espace de stockage à GNU/
Linux pour l’installer de façon durable. Aussi, il est nécessaire d'effectuer un partitionnement
des disques présents sur la machine.
a. Principes
Afin d'autoriser la cohabitation de plusieurs systèmes d'exploitation sur la même
machine, un mécanisme de division des disques physiques, en plusieurs zones, existe sur les
ordinateurs à base d'architecture Intel, depuis l'époque des 8086.
De plus, une table de partitions est stockée dans le secteur d'amorçage du disque. Elle autorise
la définition de quatre zones contiguës appelées partitions. Chaque partition peut être soit
primaire, soit étendue, avec la règle qu’il ne peut y avoir qu'une seule partition étendue sur le
même disque.
Une partition primaire est une zone continue de cylindres attribués à un système
d'exploitation.
Avec ce type de partitions, il n'est pas possible d'allouer plus de quatre zones par disque à
cause de la structure même de la table de partitions.
Dans le cas d'une partition étendue, il s'agit aussi d'une zone ininterrompue de
cylindres sur le disque mais cette fois-ci sécable (divisible) en partitions logiques. Ces
partitions logiques n'apparaissant pas dans la table de partitions. Chacune de ces partitions
pointe sur la suivante et leur nombre n'est potentiellement pas limité. En fait, Linux peut gérer
quinze partitions par disque pour un disque SCSI et soixante trois pour un disque IDE.
Ainsi, les partitions logiques, contenues dans la partition étendue, vont pallier au
manque de partitions primaires.
Yahya SLIMANI/Habib SMEI
- Page 5 -
MP2L
Noms des partitions
Cours GNU/Linux
Les noms des partitions correspondent aux noms des fichiers utilisés dans le répertoire
/dev pour accéder aux systèmes de fichiers qu'elles contiennent. Ces noms sont du type : /dev/
xxyz où :
•
•
xx est le type de disque dur (hd pour IDE et sd pour SCSI)
y correspond à la position ou à l'identifiant du lecteur pour le contrôleur de disque.
Dans le cas d’un disque SCSI, une lettre (a, b, c, ...) est attribuée à chaque disque,
dans l'ordre d'apparition dans la chaîne SCSI. Dans le cas d'un disque dur
IDE, les lettres a, b, c et d correspondent au branchement du
périphérique sur les différents contrôleurs IDE de la machine (au nombre de deux
habituellement sur un PC) :
a : disque maître sur le premier contrôleur IDE
b : disque esclave sur le premier contrôleur IDE
c : disque maître sur le second contrôleur IDE
d : disque esclave sur le second contrôleur IDE
z : numéro de la partition créée sur le périphérique ; de 1 à 4 pour les
partitions primaires ou étendues, et au delà de 5 pour les partitions logiques.
Par exemple, une partition identifiée par /dev/hdb7 sera donc la troisième partition logique du
disque dur esclave sur le second contrôleur IDE de la machine.
L’exemple ci-dessous illustre le partitionnement d'un disque ayant une partition
DOS/Windows en première position et quatre partitions pour Linux (swap, /, /var, et /usr)
dont trois logiques. Ce disque dur est maître sur le premier contrôleur IDE de la machine :
hda1
(c:)
hda2
(swap)
hda5
( / )
hda6
(/var)
hda7
(/usr)
Ce disque ne possédant que deux partitions primaires et une partition étendue, il
n'y a pas de partition nommée hda4.
Convention de nommage :
La syntaxe des périphériques utilisée dans le chargeur GRUB est un tout petit peu
différente des autres systèmes d'exploitation, et on doit savoir que c'est de cette manière qu'on
peut désigner un disque ou une partition.
Voici quelques exemples de nommage:
(fd0)
Tout d'abord, GRUB exige que les noms de périphériques se trouvent entre
parenthèses. La partie fd signifie qu'il s'agit d'une disquette. Le chiffre 0
Yahya SLIMANI/Habib SMEI
- Page 6 -
MP2L
Cours GNU/Linux
représente le numéro du lecteur, qui est compté à partir de zéro. Cette expression
veut dire que GRUB utilisera la disquette entière.
(hd0,1)
Ici, hd signifie qu'il s'agit d'un disque dur. Le chiffre 0 indique le numéro du
disque, qui est ici le premier disque, alors que l’entier 1 indique le numéro de
la
partition (ou le numéro de slice dans la terminologie BSD). Rappelons que les
numéros de partitions sont déterminés à partir de zéro, et non à partir de un. Cette
expression désigne la deuxième partition du premier disque dur. Dans ce cas, GRUB
n'utilise qu'une partition du disque à la place du disque entier.
(hd0,4)
Cette notation désigne la première partition étendue du premier disque dur. Notons
que les numéros des partitions étendues sont comptés à partir de 4, sans tenir
compte du nombre réel de partitions primaires sur le disque dur.
(hd1,a)
Cet exemple désigne la partition BSD a du second disque dur. Si on a besoin de
spécifier le numéro de slice PC, il faut utiliser une notation du type: (hd1,0,a). Si
le numéro de slice PC est omis, GRUB recherche le premier slice PC qui a la partition
BSD a.
Évidemment, pour accéder aux disques ou aux partitions avec GRUB, il faut utiliser
Publicité
ces notations dans une commande, comme root (fd0) ou unhide (hd0,2).
Pour s'aider à trouver quelle partition on souhaite, la ligne de commande de GRUB peut être
complétée automatiquement. Cela signifie que, par exemple, on a qu'à entrer root
(suivi de la touche <TAB>), pour que GRUB affiche la liste des disques, des
partitions et des noms de fichiers ; ainsi il devrait être assez facile de déterminer le nom de la
partition voulue.
Il faut noter que GRUB ne distingue pas l'IDE du SCSI. Il compte simplement les
disques depuis zéro, sans faire attention à leur type. Normalement, les numéros des
disques IDE sont inférieurs à ceux des disques SCSI, bien que cela ne soit pas exact si
on change la séquence de démarrage du BIOS en inversant IDE et SCSI.
Maintenant, voyons comment désigner un fichier à travers l’exemple simple suivant:
(hd0,0)/vmlinuz
Cette ligne désigne le fichier nommé vmlinuz qui se trouve sur la première partition
du premier disque dur. Les noms de fichiers peuvent également être complétés
automatiquement.
Yahya SLIMANI/Habib SMEI
- Page 7 -
MP2L
Partitions nécessaires à l'installation
Cours GNU/Linux
Il faut au moins deux partitions pour installer un système Linux : une partition
contenant la racine du système de fichier Linux (appelée aussi partition root) et une partition
offrant un espace de pagination au système (partition swap). En réalité, cette dernière pourrait
être remplacée par un simple fichier d'échange mémoire mais cela est moins efficace.
Le type de partitions (primaire ou logique) sur laquelle sera installé Linux n'a pas
d'importance.
Toutefois, il est généralement conseillé de créer une partition supplémentaire située au
dessous du cylindre 1024 sur le disque et ayant pour point de montage /boot, à cause d'une
limitation du chargeur Linux et du BIOS sur d'anciennes machines. De la sorte, l'image du
noyau ainsi que d'autres fichiers nécessaires au démarrage du système seront accessibles à
l'initialisation de la machine. L'explication à ce problème est l'utilisation de routines
du BIOS, qui ne peuvent adresser des blocs de données, situés au delà du cylindre 1023,
par le programme d'amorce, car le fichier noyau du système n’est pas accessible à cet endroit
du disque.
La taille des fichiers copiés lors de l'installation Linux varie en fonction
des paquetages sélectionnés ainsi que de la distribution. Un espace de 1 à 3 Go suffit
généralement pour mener à bien l'installation du système.
Lors d'une installation conséquente, Linux est généralement réparti sur plusieurs
systèmes de fichiers. L'utilisation du système sera déterminante dans le choix des partitions à
créer ; pour faciliter le choix, voici un tableau récapitulant les répertoires faisant
l'objet d'une partition distincte :
Répertoire
Taille
Description
(estimation)
swap
Jusqu'au double
Il s'agit d'un espace permettant au système de simuler de la mémoire vive
de
la RAM
supplémentaire en cas de besoin. Les recommandations de certaines
présente sur la
distributions étant de donner une taille à cette partition égale au double de
machine
la RAM, on peut se demander si un système qui possède 512 Mo de RAM
doit mettre en œuvre tant de swap. En effet, considérer que 1 Go d'espace
de pagination peut être utilisé par le système implique que l'on accepte
d'avoir un système chargé à 300 % de sa capacité matérielle. Lorsque l'on
sait que la vitesse d'accès à l'information sur un disque dur est de
l'ordre de la milliseconde et que celle de la RAM est de
l'ordre de la nanoseconde, on se rend compte des baisses de performances
Yahya SLIMANI/Habib SMEI
- Page 8 -
MP2L
Cours GNU/Linux
que peut rencontrer un système mal dimensionné en mémoire vive par
rapport au traitement qui lui est affecté. C'est pour cela qu'il est
recommandé généralement d'attribuer uniquement l'équivalent de la RAM
en swap, et ce dans une limite de 256 Mo. En cas d'insuffisance ponctuelle,
il sera toujours possible de créer l'espace manquant dans un fichier. Et dans
le cas d'un manque permanent de mémoire, l'architecture matérielle devra
alors être reconsidérée en fonction de la charge et de l'utilisation du
système.
/boot
5 à 50 Mo
Ce répertoire contient principalement le noyau du système accompagné
de quelques fichiers nécessaires à l'initialisation de GNU/Linux ; la taille du
fichier noyau avoisinant le mégaoctet et celle des autres fichiers quelques
centaines d'octets, on peut se contenter de 5 Mo. Mais il est judicieux de
prévoir plus, si l'on envisage de recompiler et d'installer plusieurs
noyaux sur le même système.
/var
100 Mo à
Ce répertoire contient les données “variables” telles que les fichiers
plusieurs Go
journaux (log), les boîtes aux lettres (mail), les bases de données
ou files (spool) d'impression. Pour les distributions récentes, ce répertoire
contient aussi les données locales servies par le site hébergé sur la machine
(comme les fichiers d'un serveur FTP ou les pages d'un site Web).
Par conséquent, en fonction des services mis en place sur le système, la
taille de ce répertoire peut croître considérablement et risque de saturer le
système de fichiers principal, si celui-ci n'est pas distinct.
La taille dépendra donc des informations traitées par les différents serveurs
configurés.
/tmp
50 à 200 Mo
Les applications ont besoin d'un endroit pour écrire leurs fichiers
temporaires et l'espace des utilisateurs peut être restreint ; c'est pourquoi il
faut attribuer une partition à ce répertoire commun pour assurer
une certaine rapidité d'accès à celui-ci. Cela évitera aussi
d'endommager le système de fichiers principal, en cas de corruption
des données sur ce répertoire.
/usr
500 Mo à 3 Go
C'est le plus gros répertoire du système car il contient les
fichiers des paquetages fournis par les distributions en supplément du
système GNU/Linux de base.
Ce système de fichiers peut être monté en lecture seule, ce qui
permettra d'accroître la sécurité au niveau des fichiers et de partager ces
Yahya SLIMANI/Habib SMEI
- Page 9 -
MP2L
Cours GNU/Linux
données sur le réseau via le protocole NFS (Network File System) par
/home
En fonction du
C'est dans ce répertoire que sont stockés les répertoires personnels des
exemple.
nombre et des
utilisateurs.
besoins des
utilisateurs
/
Publicité
100 à 200 Mo
Tout ce qui n'est pas dans un des répertoires cités précédemment se
trouvera directement sous celui-ci.
Il y aura notamment les répertoires /bin (10 Mo), /dev (500 Ko), /etc (10
Mo), lib (70 Mo), /mnt (0 Mo), /proc (0 Mo) et /sbin (10 Mo). Ils sont
essentiels pour le système au démarrage et contiennent les outils
minimaux de restauration des autres partitions en cas d'incident.
Enfin, le partitionnement peut aussi être considéré comme un moyen de limiter la perte de
données en cas de matériel défaillant. En effet, en cas de panne d'un disque dur, les blocs
défaillants sont généralement contigus et appartiennent donc probablement à la même
partition. Ainsi, si le disque est divisé en plusieurs partitions, il sera toujours possible
d'accéder aux partitions non encore affectées et de sauvegarder les données qu'elles
contiennent sur un autre support.
c.2. Le chargeur de démarrage
Le chargeur (boot loader en Anglais) est le premier logiciel qui s'exécute quand un
ordinateur démarre. C'est lui qui charge et transfère le contrôle au logiciel noyau d'un système
d'exploitation (comme GNU/Linux ou GNU Mach). Le noyau, à son tour, initialise le reste du
système d'exploitation.
GNU GRUB est un chargeur très puissant, qui peut démarrer une grande variété de
systèmes d'exploitation libres, ainsi que des systèmes d'exploitation propriétaires avec la
technique du chain-loading.
GRUB reconnaît les systèmes de fichiers et les formats des noyaux. On peut donc
charger un système d'exploitation arbitraire, sans enregistrer la position physique du noyau
sur le disque.
Ainsi, on peut charger le noyau en spécifiant simplement le nom du fichier et le disque (ainsi
que la partition) où le noyau est enregistré.
Pour faire connaître à GRUB le disque et le nom du fichier, on peut soit les entrer
manuellement via l'interface en ligne de commande, soit utiliser le menu qui permet de
sélectionner facilement quel OS doit être démarré. Pour que l'on puisse personnaliser le menu,
Yahya SLIMANI/Habib SMEI
- Page 10 -
MP2L
Cours GNU/Linux
GRUB lira un fichier de configuration. Il faut noter aussi qu'on peut non seulement utiliser
l'interface en ligne de commande à n'importe quel moment, mais aussi éditer des entrées
spécifiques du menu avant de les utiliser.
Nous allons maintenant présenter le rôle du chargeur :
Le texte qui suit est une citation de Gordon Matzigkeit, un fanatique de GRUB:
« Certaines personnes aiment féliciter le système d'exploitation et le noyau quand ils parlent
de leurs ordinateurs ; ainsi ils peuvent dire qu'ils utilisent "GNU/Linux" ou "GNU/Hurd".
D'autres personnes semblent penser que le noyau est la partie la plus importante du système,
ainsi ils aiment appeler "système Linux" leur système d'exploitation GNU ».
Cette citation, un peu brutale, ne donne pas d’importance au chargeur. Hors ce dernier est,
peut être,le logiciel le plus important de toute distribution.
Convention de nommage :
La syntaxe des périphériques utilisée dans GRUB est un tout petit peu différente de ce qu'on a
pu voir avant avec les systèmes d'exploitation, et on doit savoir que c'est de cette manière
qu'on peut désigner un disque ou une partition.
Examinez les exemples et explications suivants:
(fd0)
Tout d'abord, GRUB exige que les noms de périphériques se trouvent entre ( et ). La partie
fd signifie qu'il s'agit d'une disquette. Le nombre 0 représente le numéro du lecteur, qui est
compté à partir de zéro. Cette expression veut dire que GRUB utilisera la disquette entière.
(hd0,1)
Ici, hd signifie qu'il s'agit d'un disque dur. Le premier nombre 0 indique le numéro du disque,
qui est ici le premier disque, alors que le second entier 1 indique le numéro de la partition (ou
le numéro de slice dans la terminologie BSD). Rappelons que les numéros de partitions sont
déterminés à partir de zéro, et non depuis un. Cette expression désigne la deuxième partition
du premier disque dur. Dans ce cas, GRUB n'utilise qu'une partition du disque à la place du
disque entier.
(hd0,4)
Ceci désigne la première partition étendue du premier disque dur. Notons que les numéros des
partitions étendues sont comptés à partir de 4, sans tenir compte du nombre réel de partitions
primaires sur le disque dur.
(hd1,a)
Cet exemple désigne la partition BSD a du second disque dur. Si on a besoin de spécifier le
numéro de slice PC, il faut utiliser quelque chose comme ceci: (hd1,0,a). Si le numéro de
slice PC est omis, GRUB recherche le premier slice PC qui a la partition BSD a.
Yahya SLIMANI/Habib SMEI
- Page 11 -
MP2L
Cours GNU/Linux
Évidemment, pour accéder aux disques ou aux partitions avec GRUB, il faut utiliser ces
notations dans une commande, comme root (fd0) ou unhide (hd0,2). Pour s'aider à
trouver quelle partition vous voulez, la ligne de commande de GRUB peut être complétée
automatiquement. Cela signifie que, par exemple, on a qu'à entrer root (suivi de la touche
<TAB>), pour que GRUB affiche la liste des disques, des partitions et des noms de fichiers,
ainsi il devrait être assez facile de déterminer le nom de la partition voulue, même avec
seulement une connaissance minimale de la syntaxe.
Il faut noter que que GRUB ne distingue pas l'IDE du SCSI, il compte simplement les disques
depuis zéro, sans faire attention à leur type. Normalement, les numéros des disques IDE sont
inférieurs à ceux des disques SCSI, bien que cela ne soit pas exact si on change la séquence de
démarrage du BIOS en inversant IDE et SCSI.
Maintenant, voyons comment désigner un fichier. voyons cet exemple:
(hd0,0)/vmlinuz
Cette ligne désigne le fichier nommé vmlinuz qui se trouve sur la première partition du
premier disque dur. Les noms de fichiers peuvent également être complétés automatiquement.
5. Processus de démarrage
Pour qu'un système GNU/Linux soit utilisable, il doit d'abord passer par un certain nombre
d'étapes d'initialisation et de lancement de divers programmes.
Pour la plupart, ces étapes dépendent fortement de la distribution GNU/Linux utilisée. Selon
les choix fait par les créateurs des distributions, quelques détails peuvent changer, mais les
principes restent les mêmes.
a. Le chargeur de noyau
Le tout premier programme à être lancé est en réalité le BIOS. Celui-ci va chercher au début
du 1er disque dur afin d'y trouver un chargeur (en réalité l'endroit où rechercher est configuré
dans les paramètres du BIOS). Il s'agit d'un petit programme dont le but sera de lancer le
système d'exploitation complet. Les chargeurs récents sont capables de laisser à l'utilisateur le
choix du système à lancer (on appelle cela un multiboot). Plusieurs peuvent alors cohabiter
sur une même machine.
Les plus utilisés pour lancer un noyau Linux sont LILO et GRUB. Ils partagent de nombreux
points communs comme le fait de pouvoir passer des options au noyau.
b. Le noyau
Son rôle lors du démarrage est principalement d'initialiser les différents composants matériels
présents en utilisant notamment les pilotes de périphérique présents dans le noyau. Ceux qui
ont été compilés sous forme de modules ne sont pas pris en compte à ce moment.
Ces initialisations concernent surtout les composants centraux de la machine comme le
processeur ou les contrôleurs de périphériques. Les périphériques externes ne seront eux
initialisés généralement qu'au moment de leur utilisation. L'écran est toutefois utilisé
rapidement après le lancement du noyau afin de donner des informations à l'utilisateur. Le
noyau configure donc la carte graphique dans un mode standard pouvant être reconnu par une
majorité de cartes. Il est de plus possible de changer cette valeur par une option du noyau
(vga=XXX).
Yahya SLIMANI/Habib SMEI
- Page 12 -
MP2L
Cours GNU/Linux
Il y a deux manières d'influer sur ce que va faire le noyau. On peut le recompiler en changeant
les paramètres accessibles lors de la configuration ou alors lui passer des options.
L'avantage des options est que cela peut être changé d'un démarrage sur un autre. Et les
chargeurs de noyau vus précédemment permettent de faire cela très facilement, y compris de
façon temporaire. Mais on rencontrera certains cas (comme par exemple rajouter le support
d'un matériel particulier) où une recompilation du noyau sera indispensable.
Publicité
Voici quelques exemples d'options fréquentes et utiles. Leur liste complète est en réalité plus
longue mais ne sera pas détaillée ici.
Option
pour le
noyau
vga=XXX
no-scroll
noapic
mem=XXX
init=XXX
Description
Sert à changer la résolution d'écran utilisée pendant le démarrage. Utile si celle par défaut n'est pas
reconnue par la carte graphique.
Permet de désactiver le défilement du texte sur l'écran. A utiliser notamment avec des terminaux
braille pour lesquels le défilement peut poser problème.
L'APIC permet à plusieurs périphériques de partager des ressources communes (les IRQ). Avec cette
option, on peut désactiver ce mécanisme qui peut engendrer des problèmes avec certains matériels.
Permet d'indiquer la valeur de mémoire vive présente sur la machine pour le cas ou l'auto-detection
échouerait. On peut utiliser des lettres pour cette taille. Par exemple 512M désignera 512 Méga-octets
de mémoire.
Permet d'indiquer de manière explicite quel programme doit être lancé après l'initialisation du noyau
(plus de détails dans la section suivante).
c. Le processus init
Une fois que le noyau a fini tout son travail d'initialisation, il va monter le système de fichiers
racine (/) en lecture seule. A partir de ce moment, les programmes indispensables comme
ceux que l'on trouve dans /sbin et /bin sont disponibles.
Le noyeau est alors prêt à lancer le premier processus qui va devenir le père de tous les autres
processus et portera l'identifiant de processus (le PID) 1.
Ce programme s'appelle généralement init. Le noyau va en fait essayer de lancer
successivement les programmes suivants :
•
•
•
•
/sbin/init
/etc/init
/bin/init
/bin/sh
Dès qu'un de ceux-là est lancé avec succès, les autres ne sont même pas testés car le contrôle
est passé au programme.
On voit que le programme init est cherché dans différents répertoires (/sbin, /etc et finalement
/bin) . S'il ne se trouve dans aucun de ceux-là, le noyau tente de lancer un shell afin que
l'utilisateur ait accès au système. Si cela échoue également, le noyau affiche un message
d'erreur et s'arrête.
Pour pouvoir indiquer un autre programme que ceux-là, il faut utiliser l'option du noyau init=
vue précédemment. On lui passe en paramètre le chemin complet de l'exécutable à lancer.
Le comportement d'init se configure à l'aide du fichier /etc/inittab. En voici un exemple
d'extrait :
Yahya SLIMANI/Habib SMEI
- Page 13 -
Cours GNU/Linux
MP2L
id:5:initdefault:
si::sysinit:/etc/rc.sysinit
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
Chaque ligne est construite de la même manière avec les champs suivants :
Position
Nom
Description
1
2
3
4
Identifiant
Niveaux
d'exécution
Action
Programme
Une chaîne de caractère choisie par l'utilisateur et permettant d'identifier la
ligne.
Les niveaux d'exécution pour lesquels cette ligne doit être prise en compte.
Contient une des actions prédéfinies indiquant ce qui doit être fait. Le tableau
suivant les liste.
Le programme qui doit être exécuté lorsque l'on rentre dans les niveaux
indiqués.
Selon l'action choisie, le comportement sera différent et certains champs peuvent être ignorés.
Voici la description des actions le plus souvent utilisées.
Actions pour /etc/inittab
Action
Champs ignorés
Description
initdefault
Programme
sysinit
Niveaux
d'exécution
wait
Aucun
respawn
Aucun
ctrlaltdel
Niveaux
d'exécution
c. Les niveaux d'exécution
Permet d'indiquer le niveau d'exécution à utiliser par défaut. Le champs
Niveaux d'exécution contiendra alors une seule valeur qui sera ce niveau par
défaut.
Le champs Programme contient le chemin vers un exécutable qui sera lancé en
tout premier par init (donc juste après que le noyau ait terminé ses
initialisations).
Lorsque le système passera dans la niveau d'exécution spécifié, init exécutera la
commande indiquée puis attendra qu'elle se termine.
Semblable à wait si ce n'est qu'à chaque fois que le programme se termine, init
le relancera.
Permet d'indiquer une commande devant être exécutée lorsque l'utilisateur
presse la combinaison de touches Ctrl-Alt-Suppr.
Sur les systèmes GNU/Linux, on a plusieurs niveaux d'exécution possibles (appelés aussi
modes d'exécution). Il s'agit en fait de mode de démarrage différents qui différent les uns des
autres par les services qui y sont lancés.
La convention choisie est celle appelée System V init qui définit la manière dont doivent être
gérés les différents niveaux. Dans le fichier inittab donné en exemple dans le chapitre
précédent, on peut voir que c'est le programme /etc/rc.d/rc qui gère cela. Il est lancé avec en
Yahya SLIMANI/Habib SMEI
- Page 14 -
MP2L
Cours GNU/Linux
Publicité
paramètre le num...