Remplacer le noyau d'un Kimsufi sous Debian


Un nouveau cœur pour sa machine

Ce serveur est hébergé sur un Kimsufi d'OVH. Ces machines viennent avec un noyau personnalisé d'OVH en théorie compilé pour le matériel et embarquant GRSecurity. Problème, la mise à jour est pour le moins fastidieuse, étant donné qu'il faut aller récupérer la version souhaitée sur un FTP OVH (voir ce billet de blog si cela vous intéresse). Afin de profiter d'un noyau récent, mis à jour de manière normale via apt et donc bénéficiant des dernières mises à jour de sécurité, voyons comment enlever le noyau OVH pour installer le noyau standard. Attention, ce genre de manipulations réclament une sauvegarde à jour du système si jamais l'opération échoue et les compétences nécessaires pour le retour arrière en cas d'échec ! Il y a plein de billets expliquant comment faire sur le Web, celui-ci me permet de documenter proprement l'opération pour moi-même.

Vérifier que l'on a tout

Le seul pré-requis au changement de noyau est la présence de GRUB sur la machine. Normalement, il vient par défaut sur les Kimsufi, néanmoins vérifions :

		# apt-cache policy grub2-common
		grub2-common:
			Installé : 2.02-2
			Candidat : 2.02-2
		Table de version :
		*** 2.02-2 500
		500 http://ftp.fr.debian.org/debian testing/main amd64 Packages
		100 /var/lib/dpkg/status

Afin d'être sûr, on vérifie que grub.cfg est bien présent et contient les bonnes infos :

		# grep menuentry /boot/grub/grub.cfg
		...
		menuentry "Debian GNU/Linux, OVH kernel 4.7.9-xxxx-grs-ipv6-64" {
		...

Le numéro de version doit correspondre à ce que donne uname :

		# uname -a
		Linux SHAFT-KS 4.7.9-xxxx-grs-ipv6-64 #1 SMP Fri Oct 21 11:59:57 CEST 2016 x86_64 GNU/Linux

C'est bien ça. Passons à la suite.

Un mv et ça repart

Seulement 2 commandes sont à taper afin de changer le noyau. Tout d'abord, il faut déplacer le script OVH de configuration de GRUB :

		# mv /etc/grub.d/06_OVHkernel /root

Puis installer le noyau en tant que tel. On ne se casse pas la tête et on choisi le méta-paquet :

		# apt-get install linux-image-amd64

Durant l'opération, j'ai un un message d'avertissement de ce type :

		W: initramfs-tools configuration sets RESUME=UUID=l-uuid-de-sda1
		W: but no matching swap device is available.

A priori, le problème ce corrige en donnant le bon UUID de la partition de swap dans le fichier /etc/initramfs-tools/conf.d/resume. Pour cela, on récupère l'UUID de la partition de swap via blkid et on le remplace dans le fichier en question. On relance le script initramfs-tools en indiquant la bonne version de noyau :

		# /etc/kernel/postinst.d/initramfs-tools 4.14.0-2-amd64
		update-initramfs: Generating /boot/initrd.img-4.14.0-2-amd64

Le système ne hurle pas, ça doit être bon. On verra à l'usage. Si cela pose des problèmes, ce billet sera mis à jour.

Dans le doute, reboote

Pas de doute possible ici, il ne reste plus qu'à rebooter la machine. Pendant ce temps, logguez vous sur votre espace OVH et tenez vous prêt à faire un netboot sur le système de récupération au cas où 🙂 Une fois la machine rebootée, on vérifie que nous sommes sur la bonne version du noyau :

		# uname -a
		Linux SHAFT-KS 4.14.0-2-amd64 #1 SMP Debian 4.14.7-1 (2017-12-22) x86_64 GNU/Linux

C'est bon. Reste à nettoyer /boot du vieux noyau OVH :

		# ls /boot
		bzImage-4.7.9-xxxx-grs-ipv6-64  grub                       System.map-4.14.0-2-amd64	vmlinuz-4.14.0-2-amd64
		config-4.14.0-2-amd64           initrd.img-4.14.0-2-amd64  System.map-4.7.9-xxxx-grs-ipv6-64

		# rm bzImage-4.7.9-xxxx-grs-ipv6-64 System.map-4.7.9-xxxx-grs-ipv6-64

Enfin, on met à jour GRUB

		# update-grub2
		Création du fichier de configuration GRUB...
		Image Linux trouvée : /boot/vmlinuz-4.14.0-2-amd64
		Image mémoire initiale trouvée : /boot/initrd.img-4.14.0-2-amd64
		fait

J'ai choisi de faire ce nettoyage après le reboot pour avoir moins d'opérations à faire en cas de soucis. 🙂

Voilà, noyau changé et à jour, ménage fait, la machine va désormais attendre paisiblement son prochain reboot (normalement à la prochaine mise à jour de dbus, du noyau ou de systemd). N’oubliez pas de faire le ménage après un passage sur un nouveau noyau pour faire le ménage sur la machine.