Mise à jour : Debian 9.6
Le noyau linux debian met en œuvre trois éléments principaux :
vmlinuz, le noyau proprement dit
initrd.img, l'image d'un système de fichier utilisé en ram pendant le démarrage du système avant que le système de fichier racine ne soit installé
une bibliothèque de modules, utilisable une fois le système de fichier racine monté
Sommaire
Un noyau linux a pour nom vmlinuz-<release>-<architecture>, où
<release> est le numéro de release du noyau
<architecture> est l'architecture du processeur au quel est destiné à le noyau
Les noyaux sont installés dans la partition /boot par les paquets linux-image-<release>-<architecture>. Dans l'exemple ci-dessous, le noyau vmlinuz-4.9.0-5-amd64 est le seul noyau présent dans la partition de boot,
$ ls /boot |grep vmlinuz
vmlinuz-4.9.0-5-amd64
Il a été installé par le paquet linux-image-4.9.0-5-amd64
$ dpkg -S /boot/vmlinuz-4.9.0-8-686-pae
linux-image-4.9.0-5-amd64: /boot/vmlinuz-4.9.0-5-amd64
Le numéro de release et l'architecture du noyau en cours d'utilisation sont donnés par
$ uname -r
4.9.0-5-amd64
4.9.0-5 est le numéro de release
amd64 est l'architecture
le numéro de release (défini par Debian), que l'on retrouve dans le nom du noyau vmlinuz-<release><architecture> et dans le nom du paquet linux-image-<release><architecture>
et le numéro de version (défini par les développeurs linux) qui indique la version du paquet
$ aptitude show linux-image-5.9.0-4-amd64 |grep -E "Paquet|Version"
Paquet : linux-image-5.9.0-4-amd64
Version : 5.9.11-1
$ aptitude versions linux-image-4.9.0-5-amd64
p A 4.9.65-3+deb9u2 stable 500
i A 4.9.80-2 proposed-updates 500
uname -r fournit directement le numéro de release, dans cet exemple 4.9.0-5
$ uname -r
4.9.0-5-amd64
uname -v fournit directement le le numéro de version, dans cet exemple 4.9.80-2
$ uname -v
#1 SMP Debian 4.9.80-2 (2018-02-09)
La configuration ayant servie à la compilation du noyau est disponible dans le fichier : /boot/config-<release>-<architecture>. Par exemple,
$ cat /boot/config-4.9.0-5-amd64 |head
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.9.80 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
CONFIG_X86=y
CONFIG_INSTRUCTION_DECODER=y
CONFIG_OUTPUT_FORMAT="elf64-x86-64"
CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
Lorsque le noyau est chargé, certains paramètres sont disponibles dans sysfs et affichables avec sysctl :
$ sudo sysctl -a |head
abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
dev.cdrom.autoclose = 1
dev.cdrom.autoeject = 0
dev.cdrom.check_media = 0
dev.cdrom.debug = 0
dev.cdrom.info = CD-ROM information, Id: cdrom.c 3.20 2003/12/17
dev.cdrom.info =
dev.cdrom.info = drive name: sr0
La règle de nommage et d'installation des initrd est identique à celle des noyaux linux-image : lors de sa création, le fichier initrd.img est installé dans le répertoire /boot, sous le nom de initrd.img-<release>-<architecture>
$ ls /boot |grep initrd
initrd.img-4.9.0-5-amd64
Initrd.img est une image compressée dont le contenu est défini par des fichiers de configuration situés dans /etc/initramfs-tools/. Il est possible de régénérer et modifier le contenu de initrd.img : voir initrd.img
L'arborescence de initrd.img est affichable avec lsinitramfs :
$ lsinitramfs /boot/initrd.img-4.8.0-0.bpo.2-amd64
/boot/initrd.img-4.8.0-0.bpo.2-amd64
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
.
conf
conf/initramfs.conf
conf/arch.conf
conf/modules
.....
La bibliothèque de modules externes est installée dans divers sous-dossiers de /lib/modules/<release>-<architecture>
$ ls /lib/modules/4.9.0-5-amd64/kernel
arch crypto drivers fs lib mm net security sound virt
Par exemple, pour afficher la liste des modules contenant wmi.ko dans leur nom :
$ sudo find /lib/modules/4.9.0-5-amd64/ -name *wmi.ko |sort
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/acer-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/alienware-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/asus-nb-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/asus-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/dell-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/eeepc-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/hp-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/msi-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/mxm-wmi.ko
/lib/modules/4.9.0-5-amd64/kernel/drivers/platform/x86/wmi.ko