Le kernel : comment en garder plusieurs, etc

Bonjour,

Le titre est pas super explicite, et mon problème n’en est pas vraiment un, c’est plutot quelques questions générales, donc je m’explique :

Voila, j’ai mon joli kernel 2.6.32-3-amd64 (la classe :smiley: ), qui correspond donc au paquet linux-image-2.6.32-3-amd64, qui est installé, et qui n’est manifestement plus dans les dépots, d’après mon apt-cache policy, et qui a semble-t-il été remplacé par le 2.6.32-5, mais qui n’est pas installé :

root@imrryr laurent # apt-cache policy linux-image-2.6.32-3-amd64 linux-image-2.6.32-3-amd64: Installed: 2.6.32-9 Candidate: 2.6.32-9 Version table: *** 2.6.32-9 0 100 /var/lib/dpkg/status linux-image-2.6.32-5-amd64: Installed: (none) Candidate: 2.6.32-27 Version table: 2.6.32-27 0 910 ftp://ftp.ca.debian.org/debian/ sid/main amd64 Packages 810 ftp://ftp.ca.debian.org/debian/ squeeze/main amd64 Packages

D’un autre coté, j’ai aussi le package linux-image-amd64 de dispo, non installé :

root@imrryr laurent # apt-cache policy linux-image-amd64 linux-image-amd64: Installed: (none) Candidate: 2.6.32+28 Version table: 2.6.32+28 0 910 ftp://ftp.ca.debian.org/debian/ sid/main amd64 Packages 810 ftp://ftp.ca.debian.org/debian/ squeeze/main amd64 Packages 2.6.26+17+lenny1 0 710 ftp://ftp.ca.debian.org/debian/ lenny/main amd64 Packages

Donc la je me pose plusieurs questions, à savoir :

  • À quoi sert le paquet linux-image-amd64, c’est un méta paquet, mais il sert à quoi ?

  • Comment le système choisi quel kernel installer ? Ce qui m’amène à :

  • Pourquoi je ne suis pas en 2.6.32-5, et toujours en 2.6.32-3 ?

  • Et pour finir, comment je peux voir la liste de tous les kernels installés sur ma machine ?

  • Et comment faire pour que l’OS me garde les deux plus récents kernels (j’avais l’habitude d’avoir ça sur une de mes précédentes install, je sais plus si c’était de l’ubuntu ou mon autre debian, mais je sais que ça m’avait sauvé plus d’une fois), parce que j’ai l’impression que la je n’ai que le dernier.

Voila, c’est un peu vaste, mais je prends toutes les réponses qui passent, merci !

C’est un paquet qui t’installeraa toujours le dernier kernel disponible lors de tes mises à jour. Perso je n’aime pas cette fonction, je préfère upgrader mes kernels lorsque nécessaire uniquement.
Si tu veux plusieurs kernels, il suffit d’en installer plusieurs!
Lorsque tu en installes un, le précèdent n’est pas effacé, et grub te demande au boot sur quel kernel tu veux démarrer (par défaut, c’est le plus récent).
Il est préférable d’en avoir un en secours, sage précaution si tu tortures ton système un peu trop!

D’accord pour le méta paquet, mais sinon je touche à rien niveau kernel, je lance mes update upgrade et dist-upgrade, je laisse faire, le kernel se met à jour tout seul, mais me vire toujours l’ancien d’après ce que je vois.
Sauf la, ou un nouveau est récent, mais il ne se met pas à jour. C’est la que je comprends pas vraiment.

Et pour avoir deux kernels, si je m’en réfère aux paquets dispos, il me faut prendre un 2.6.32-5 et un 2.6.30-2 (les deux plus récents dispo), or j’aimerais plutot avoir le 2.6.32-5 et celui que j’ai actuellement. En gros, garder deux versions effectivement successives, pas deux version successives dans les dépots (je sais pas si je m’exprime correctement).

Installe 2.6.32-5, il ne t’enlèvera pas 2.6.32-3, tu auras les deux au choix dans grub.

Aptitude ou synaptic t’indiqueront quels noyaux sont installés.
Les paquets de noyaux à la compilations maison “kernel-package” sont considérés comme des paquets locaux. Tu n’es pas concerné par cette dernière précision , tu ne procèdes pas de la sorte.
On peut aussi transplanter un noyau sans l’installer ni le compiler :
en recopiant d’une autre installation les fichiers vmlinuz-2.6.32-5 config-2.6.32-5 initrd.img-2.6.32-5 dans /boot
et le contenu de /lib/modules/2.6.32-5 puis en mettant à jour grub.
Ce noyau ne sera pas pris en compte par aptitude. Tu pourrais procéder de même en sauvegardant les fichiers attachés à 2.6.32-3 et en les remettant à la main.

Salut,

Non, le fait d’installer par apt-get ou aptitude un nouveau kernel ne vire pas le précédent ni aucun autre d’ailleurs.
Il faut provoquer un remove ou purge pour les enlever. En garder un est une bonne précaution si tu as la place nécessaire, au moins jusqu’au moment où tu as constaté que le suivant fonctionne correctement.

Salut,

Une réponse en passant, tu vois tous les kernels présents sur la machine au lancement de grub, tu peux donc choisir avec les flèches haut et bas celui que tu veux utiliser. si tu ne veux que les deux plus récents, ce qui est une bonne méthode, tu relèves le nom de celui que tu veux supprimer, et plus tard en console :

aptitude search ~nlinux-image-2.6.30-2 (exemple pour vérifier que c’est bien celui que tu veux enlever)

aptitude purge ~nlinux-image-2.6.30-2

Sinon pour connaitre le kernel en service
$ uname -r ou uname -a
ou encore
$ cd /boot
$ ls -l qui te donne plus d’informations

Dans mon expérience avec grub l’ancien (aka grub-legacy), le noyau par défaut est le premier de la liste (default 0), et la liste générée automatiquement par update-grub lors de l’installation ou de la suppression d’un noyau est ordonnée par “versions” décroissantes. En tout cas ce n’est pas forcément le noyau installé le plus récemment.

Il n’est pas impossible qu’un ancien noyau installé automatiquement par dépendance du méta-paquet linux-image-2.6 soit supprimé automatiquement lorsque la dépendance change puisqu’il n’est plus nécessaire.

Note : ce n’est pas forcément recommandé de garder un vieux noyau retiré de l’archive, il peut contenir des failles de sécurité connues.

[quote]On peut aussi transplanter un noyau sans l’installer ni le compiler :
en recopiant d’une autre installation les fichiers vmlinuz-2.6.32-5 config-2.6.32-5 initrd.img-2.6.32-5 dans /boot
et le contenu de /lib/modules/2.6.32-5[/quote]
Dans la mesure où l’initramfs est généré spécifiquement pour le système cible, je ne recommande pas de le recopier mais de le regénérer avec update-initramfs une fois le noyau transplanté.

Merci pour toutes les infos.

Alors @etxeberrizahar : je compte pas faire de transplantation de noyau, mais je vais peut-êre tenter de compiler mon kernel un de ces jours, c’est en partie pourquoi je veux du kernel de secours.

@ggoodluck47 : c’est la deuxième raison pour laquelle je veux garder un second kernel fonctionnel, il m’est arrivé plus d’une fois de faire un upgrade et de me retrouver avec un système qui ne boote pas sur le nouveau kernel, mais concernant la suppression d’ancien, ben je suis certain que l’OS m’a viré tous mes anciens pour ne me laisser que celui la, alors que je ne lui ai jamais demandé, et j’ai pas souvenir d’avoir vu apt-get me prévenir d’une suppression de kernel.

@eggregor : oui je sais, et justement, je n’ai que deux entrées : le 2.6.32-3 en normal et recovery, aucun autre, alors que je suis sur d’en avoir eu d’autres.

@PascalHambourg : j’ai grub2, mais je ne pense pas que ça joue, et les meta paquets linux-image-amd64 et linux-image-2.6-amd64 ne sont pas installés.

Sinon je viens d’installer le 2.6.32-5, le 2.6.32-2 est toujours la, le grub.cfg a été régénéré et a les quatres entrées (deux par kernel). Je vais attendre la prochaine maj du kernel et surveiller tout ça.