Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Linux
  3. Noyau Linux
Extrait - Linux Administration avancée - Maintenance et exploitation de vos serveurs (3e édition)
Extraits du livre
Linux Administration avancée - Maintenance et exploitation de vos serveurs (3e édition) Revenir à la page d'achat du livre

Noyau Linux

Introduction

Le chapitre Architecture du système GNU/Linux explique le rôle du noyau Linux au sein du système ainsi que ses caractéristiques.

L’objectif de ce chapitre est d’aborder la conception d’un noyau adapté à nos besoins.

1. Pourquoi compiler un noyau ?

Avant toute chose, la première question qu’il faut se poser : « Est-ce que c’est vraiment nécessaire et utile ? ».

Voici les principales raisons qui peuvent vous amener à compiler un noyau :

  • Comprendre le fonctionnement du noyau Linux.

  • Faire fonctionner un matériel qui n’est pas pris en charge par le noyau actuel. 

  • Appliquer un ou des correctifs.

  • Optimiser le noyau pour des raisons d’optimisation ou bien de sécurité.

Il est à noter que vous êtes seul devant votre ordinateur tandis qu’un éditeur de logiciel a une équipe structurée pour mettre au point un noyau. Donc, dans la plupart des cas, le noyau fourni dans une distribution devrait suffire à vos besoins. Certes ce n’est pas, bien souvent, la dernière version stable. En production, il est préférable de prendre une version stable prouvée et éprouvée plutôt que de courir sans cesse après la toute dernière version stable. Cette dernière n’a probablement pas de support...

Compiler et installer un noyau

Nous disposons de deux méthodes :

  • la compilation classique ;

  • la compilation façon Debian.

1. Effectuer une compilation classique

Cette méthode est utilisable sur toutes les distributions GNU/Linux, y compris Debian.

a. Prérequis

Assurez-vous que le système soit bien mis à jour.

Concernant la distribution Debian, il faut installer les paquets nécessaires à la compilation :

  • build-essential

  • module-init-tools

  • fakeroot

Pour la distribution Red Hat, les paquets à ajouter sont :

  • Les outils de développement (Development Tools), et les bibliothèques de développement (Development Libraries).

Ces derniers paquets sont suffisants pour les outils en ligne de commandes (CLI). Cependant, si vous envisagez d’utiliser des outils dans un environnement texte (text-based user interface ou TUI), il faudra ajouter :

  • La bibliothèque ncurses (ncurses-devel) pour menuconfig ou nconfig.

Et si vous envisagez d’utiliser un environnement graphique (graphical user interface ou GUI), les bibliothèques suivantes seront nécessaires :

  • qt-devel pour xconfig.

  • gtk2-devel et libglade2 pour gconfig.

D’autres paquets peuvent s’ajouter à la liste ci-dessus en fonction des besoins ou des dépendances.

Au sein du système, l’emplacement pour construire le noyau doit disposer d’un espace disque suffisant. Prévoyez au minimum 10 Gio.

b. Télécharger le code source du noyau

Le téléchargement du code source du noyau Linux s’effectue depuis le site web http://www.kernel.org. La commande wget permet d’effectuer cette opération en ligne de commandes. Vous pouvez aussi utiliser un navigateur web pour effectuer cette opération.

La version du noyau stable au moment de l’écriture de cet ouvrage est la 4.19. Le nom du fichier est linux-4.19.11.tar.xz.

Vous devrez modifier le nom du fichier archive en fonction de la version du noyau : linux-a.b.c.tar.xz

Syntaxe

wget <URL> 

Tapez dans un terminal :

[root@system2 ~]# wget https://cdn.kernel.org/pub/linux/kernel/v4.x/
linux-4.19.11.tar.xz 
--2018-12-09 11:17:49-- https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.11.tar.xz 
Résolution de cdn.kernel.org (cdn.kernel.org)... 151.101.1.176, 
151.101.65.176, 151.101.129.176, ... 
Connexion...

Désinstaller un noyau

Un noyau s’installe comme un programme quelconque. Il ne remplace pas le précédent noyau mais il s’ajoute dans le système. Le menu de GRUB permet lors du démarrage de votre ordinateur de choisir quel noyau utiliser.

Il est conseillé de garder en plus du noyau utilisé en production, un second noyau considéré stable et fiable au cas où le premier ne pourrait plus démarrer.

Les autres noyaux n’étant pas nécessaires sont à désinstaller.

1. Debian

a. Lister les noyaux installés

La commande dpkg avec le commutateur -l peut lister les paquets installés. grep filtre les paquets répondant au motif linux-image* et awk formate l’affichage du résultat :

root@system1:~# dpkg -l |grep -i "linux-image*" | awk '{print $2}' 
linux-image-4.9.0-4-amd64 
linux-image-4.19.11-20181125 

b. Désinstaller

La désinstallation d’un noyau s’effectue comme un programme puisque c’est un paquet Debian. L’opération peut s’effectuer avec apt-get purge :

root@system1:~# apt-get purge "linux-image-4.19.11-20181125" 
Lecture des listes de paquets... Fait 
Construction de l'arbre des dépendances 
Lecture des informations d'état... Fait 
*** Sortie tronquée *** 

2. Red Hat/CentOS

a. Lister les noyaux installés

La commande rpm (Red Hat Package Manager) utilisée avec le commutateur -q (--query) permet de lister les paquets des noyaux installés :

[root@system2 ~]# rpm -q kernel 
kernel-3.10.0-693.el7 (x86_64) 
kernel-3.10.0-862.14.4.el7 (x86_64) 
kernel-3.10.0-957.1.3.el7 (x86_64) 

b. Désinstaller

La commande yum (Yellowdog Updater Modified) est une surcouche de rpm gérant l’installation...

Choisir un noyau au démarrage

Au démarrage de l’ordinateur, une interception par une touche du clavier demande à GRUB d’afficher dans un menu la liste des noyaux disponibles à charger. Chaque noyau propose deux modes de démarrage :

  • le mode normal qui est l’usage courant ;

  • le mode de dépannage pour effectuer une intervention.

1. Debian

L’appui de la touche [Shift] ou [Verr maj] affiche le menu de GRUB version 2 si besoin. Il peut aussi s’afficher avec un délai de quelques secondes.

images/03EI05-NEW.png

2. Red Hat/CentOS

Au démarrage de l’ordinateur, un délai de 5 secondes permet à l’utilisateur d’intercepter GRUB par une touche du clavier quelconque.

images/03EI07N.png

3. Délai pour choisir le noyau à exécuter

Au bout des 5 secondes, le système va s’exécuter avec le noyau par défaut. Ces paramètres sont définis avec la variable GRUB_TIMEOUT dans le fichier /etc/default/grub :

[root@system2 ~]# cat /boot/grub/grub.conf   
GRUB_TIMEOUT=5 
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" 
GRUB_DEFAULT=saved 
GRUB_DISABLE_SUBMENU=true 
GRUB_TERMINAL_OUTPUT="console" 
GRUB_CMDLINE_LINUX="vconsole.keymap=fr rd.lvm.lv=sysVG/swap  
vconsole.font=latarcyrheb-sun16 crashkernel=auto 
rd.lvm.lv=sysVG/root  
rhgb quiet net.ifnames=0" ...

Kernel panic

Le kernel panic est une erreur du noyau qui peut intervenir dans de diverses circonstances. 

Il existe deux catégories de kernel panic :

  • Matériel (connu sous le nom de Aieee!) : un composant matériel est défaillant, ou mal pris en charge par le noyau...

  • Logiciel (connu sous le nom de Oops!), à savoir des erreurs dans le code du noyau, des modifications erronées, une compilation ou une installation du noyau incorrectes, etc.

Un kernel panic peut survenir à différents moments et provoque une indisponibilité de l’ordinateur. Un message d’erreur peut apparaître éventuellement à l’écran. Les LED du clavier peuvent aussi clignoter... Vous pouvez considérer que le niveau de gravité est élevé.

1. Caractérisation

Si le fonctionnement normal du système GNU/Linux est perturbé alors :

  • Vous pouvez tenter de démarrer le système d’exploitation avec un autre noyau qui serait installé.

  • Le dépannage se fait depuis un CD, un DVD ou une clé USB contenant un système « live » GNU/Linux.

Vous devez déterminer si :

  • Le problème survient au premier démarrage du noyau après son installation. Il faut le désinstaller et sans doute le recompiler avec les bonnes options puis effectuer une nouvelle installation.

  • Le noyau ne fonctionne pas systématiquement ou de temps en temps lors du démarrage de l’ordinateur.

  • Le noyau se fige systématiquement sur un événement précis ou de façon aléatoire pendant le fonctionnement du système d’exploitation.

2. Fréquence du problème

Voici un ensemble de questions à se poser :

  • Depuis combien de temps avez-vous ce problème ?

  • Est-ce la première fois ? Sinon, est-ce un plantage récurrent ? À quelle fréquence ?

  • Pouvez-vous reproduire le problème ?

  • Le système est-il complètement immobilisé ?

  • Avez-vous changé quelque chose juste avant l’apparition du problème ? Si oui, quoi ?

  • Avez-vous une trace écrite des interventions sur cet ordinateur ?

3. Analyse de la source du problème

Pour déterminer facilement la source du problème...

Exercice

Vous allez utiliser la distribution de votre choix.

1. Ouvrez une session en tant que root et soyez en ligne de commande.

2. Téléchargez le dernier noyau Linux dans le répertoire /root.

3. Décompressez l’archive et entrez dans le répertoire Linux.

4. Assurez-vous de disposer de tous les prérequis logiciels.

5. Reprenez le fichier de configuration du noyau actif.

6. Compilez le noyau (méthode classique) puis installez-le.

7. Redémarrez votre système avec le nouveau noyau.