Un noyau de système d’exploitation (abrégé noyau, ou kernel en anglais), est la partie fondamentale de certains systèmes d’exploitation. Il gère les ressources de l’ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux.
Sous Ubuntu, le noyau pré-installé est linux, il est de type monolithique modulaire.
Pour Ubuntu, plusieurs types de noyaux pré-compilés sont proposés :
uname -r
Au fil des mises à jour plusieurs noyaux se retrouvent installés sur une machine, pour connaître la liste des noyaux installés, taper dans un terminal :
dpkg -l | grep -Ei "linux-headers|linux-image"
Le noyau Linux est en constante évolution. Chaque nouvelle version d'Ubuntu inclut une nouvelle version du noyau Linux par rapport à la précédente. Si cela permet de corriger des bugs et de proposer de nouvelles fonctionnalités, il arrive que cela entraîne des régressions (dans le pire des cas, cela empêche de démarrer Ubuntu). Dans ce cas, vous pouvez être amené à installer d'autres versions du noyau Linux (plus récentes ou plus anciennes).
linux-headers-<version>_<version>_all.deb
linux-headers-<version>-generic_<version>_<votre_architecture>.deb
linux-image-<version>-generic_<version>_<votre_architecture>.deb
linux-image-extra-<version>-generic_<version>_<votre_architecture>.deb
(optionnel, mais généralement requis pour les tests)Une autre possibilité, plus compliquée, est de télécharger les sources du noyau Linux soit depuis les dépôts, soit sur le site kernel.org [en] et de les compiler vous-même. Pour ce faire, de nombreuses options doivent être définies si vous souhaitez avoir un support complet de votre matériel. Plusieurs outils sont disponibles pour vous assister dans cette tache, de même que plusieurs tutoriels :
Si le menu GRUB propose plusieurs versions de noyau, il est possible d'en désinstaller certains. La suppression des anciens noyaux permet de gagner de la place, mais cette manipulation demande de l'attention ! Il est prudent de toujours conserver les deux derniers noyaux car en cas d'impossibilité de démarrer sur le dernier noyau (une incompatibilité des pilotes par exemple), il restera toujours la possibilité d'utiliser le noyau précédent.
La commande sudo apt-get autoremove permet de désinstaller les paquets qui ne sont plus nécessaires. Depuis Ubuntu Trusty 14.04, cette commande prend en charge les anciens noyaux sauf les 2 derniers. Il est donc très facile et sans risque de supprimer les anciens noyaux autres que les 2 derniers en saisissant dans un terminal la commande :
sudo apt-get autoremove --purge
apt-mark showmanual | egrep 'linux-.*[0-9]'
Ceci est probablement un bug (celui-ci ?) mais peut être contourné temporairement lorsque vous souhaitez récupérer de l'espace, en marquant à nouveau tous les paquets relatives au noyau comme installé en automatique :
sudo apt-mark auto $(apt-mark showmanual | egrep 'linux-.*[0-9]')
Ensuite vous pouvez faire un nettoyage automatique comme indiqué précédemment.
Utilisation en lignes de commande depuis un terminal:
uname -r
dpkg -l | grep -Ei "linux-headers|linux-image"
Sur Ubuntu 12.10, en décembre 2012, le résultat de cette commande donne :
linux-headers-3.5.0-18 3.5.0-18.29 linux-headers-3.5.0-18-generic 3.5.0-18.29 linux-headers-3.5.0-19 3.5.0-19.30 linux-headers-3.5.0-19-generic 3.5.0-19.30 linux-headers-3.5.0-20 3.5.0-20.31 linux-headers-3.5.0-20-generic 3.5.0-20.31 linux-headers-3.5.0-21 3.5.0-21.32 linux-headers-3.5.0-21-generic 3.5.0-21.32 linux-headers-generic 3.5.0.21.27 linux-headers-generic-pae 3.5.0.21.27 linux-image-3.5.0-17-generic 3.5.0-17.28 linux-image-3.5.0-18-generic 3.5.0-18.29 linux-image-3.5.0-19-generic 3.5.0-19.30 linux-image-3.5.0-20-generic 3.5.0-20.31 linux-image-3.5.0-21-generic 3.5.0-21.32 linux-image-extra-3.5.0-17-generic 3.5.0-17.28 linux-image-extra-3.5.0-18-generic 3.5.0-18.29 linux-image-extra-3.5.0-19-generic 3.5.0-19.30 linux-image-extra-3.5.0-20-generic 3.5.0-20.31 linux-image-extra-3.5.0-21-generic 3.5.0-21.32 linux-image-generic
On pourrait donc dans cet exemple supprimer les noyaux 3.5.0-17, 3.5.0-18 et 3.5.0-19 (toujours garder les deux derniers noyaux 3.5.0-20 et 3.5.0-21 dans cet exemple).
linux-headers-<version>_<version>_all.deb
linux-headers-<version>-generic_<version>_<votre_architecture>.deb
linux-image-<version>-generic_<version>_<votre_architecture>.deb
linux-image-extra-<version>-generic_<version>_<votre_architecture>.deb
sudo apt-get remove linux-headers-3.5.0-17 linux-headers-3.5.0-17-generic linux-image-3.5.0-17-generic linux-image-extra-3.5.0-17-generic --purge
Installer le package http://hoper.dnsalias.net/tdc/public/kclean.deb
Epurer par la commande sudo kclean -k pour conserver deux noyaux ou sudo kclean pour ne conserver que le noyau courant.
Autre façon de nettoyer pleins de noyaux d'un seul coup. Depuis un terminal, saisir les commandes suivantes :
dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::') | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2
sudo apt-get purge $(dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::') | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2)
Si la commande ci-dessus ne fonctionne pas, essayez celle ci :
dpkg -l | egrep 'linux-(image|headers)-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2
sudo apt-get purge $(dpkg -l | egrep 'linux-(image|headers)-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2)
Il est possible de passer différents paramètres au noyau Linux :
Avec un live-CD ou un live-USB : au démarrage
Un menu apparaît qui offre certaines options (voir tableau ci-dessous). Si celle que vous souhaitez n'est pas dans le menu, appuyez sur la touche “Echap” et écrivez vos options à la fin de la ligne de texte. Elle permet d'ajouter manuellement des options de démarrage les unes à la suite des autres, ou éventuellement en supprimer.
Option | Signification |
---|---|
rescue | Option de sauvetage de base |
irqpoll | Si votre CD-ROM se bloque vers le début de l'installation, essayez ça. (![]() |
acpi=off | « Advanced Configuration and Power Interface ». C'est une gestion de l'énergie avancée, et il se peut que cela pose quelques problèmes durant la phase d'installation. Si vous bloquez en pleine installation sans raisons apparente, essayez ça. |
pnpbios=off | « Plug And Play Bios ». Si vous bloquez en pleine installation sans raisons apparente, essayez ça. |
noapic | cette commande dit au noyau de ne pas utiliser le chip « APIC » (Advanced Programmable Interrupt Controller). Certaines cartes-mère (anciennes) requièrent ce paramètre. |
nolapic | « Local APIC ». |
all_generic_ide | (d'autres variantes semblent exister, cf. Google ou autre !) si vous n'utilisez pas de SCSI ou SATA, et que vous avez un problème de démarrage ou d'emask, essayez ça (n'est pas garanti de marcher à 100 % ). En particulier pour le message d'erreur “unable to find a medium containing a live file system” |
pci=nommconf | Erreur dans le dmesg forcedeth : failed with error -22 On en parle ici |
pci=nomsi | http://forum.ubuntu-fr.org/viewtopic.php?pid=1969900#p1969900 |
nomodeset | (depuis Karmic) désactive le KMS qui cause problème avec certaines cartes graphiques. |
Autres options | La touche « F1 » propose d'autres options. Voir aussi cette liste des paramètres de noyau |
Il suffit de démarrer Boot-Repair, cliquer sur “Options avancées”, puis sur l'onglet “Options de GRUB” :
GRUB_CMDLINE_LINUX_DEFAULT
(par exemple GRUB_CMDLINE_LINUX_DEFAULT=“paramètre1 paramètre2”
).Cliquer sur le bouton “Appliquer” pour prendre en compte les changements.
Attention: ne fonctionne pas depuis un liveCD/liveUSB.
GRUB_CMDLINE_LINUX_DEFAULT
(par exemple GRUB_CMDLINE_LINUX_DEFAULT=“paramètre1 paramètre2”
);sudo update-grub
L'ajout de paramètres peut par exemple :
profile
.Pour connaître les différents paramètres possibles, consultez les pages Doc anglophone et kernel.org.
Si vous avez besoin de vérifier que votre noyau a bien une configuration spécifique, sachant quel noyau vous utilisez, pour l'ensemble des options, tapez (utiliser l'auto-complétion):
cat /boot/config-3.13.0.53-generic
et pour connaître une ou plusieurs options en particulier: par exemple pour connaître les options EXT4, tapez:
cat /boot/config-3.13.0.53-generic | grep CONFIG_EXT4
ou plus simple:
grep CONFIG_EXT4 /boot/config-$(uname -r)
Cela peut-être utile pour vérifier des pré-requis à l'installation d'un service.
La documentation officielle sur le noyau Linux est maintenue sur le site kernel.org. Vous pouvez la consulter en suivant ce lien [en].
Pour plus d'information sur les opérations sur le noyau (compilation, paramétrage …), se reporter aux pages suivantes :
Contributeurs principaux : draco31.fr mydjey. Contributeurs : Cafecho
acpi=off
, nolapic
ou noacpi
pour permettre le boot.