Kernel panic

Bonjour,

J’ai fait une mise à jour sur une debian lenny hier soir. Elle comprenait un nouveau kernel.
En rebootant je me tape un kernel panic (il ne détecte plus mon disque dure donc il peut pas monter la partition ROOT).
Donc pas de panic :smiley: dans ce cas là on prends un livecd et modifie de lilo.conf avec l’ancien noyau. Le fameux vmlinux.old qui est créer normalement après chaque mise à jour d’un kernel.
Mais là c’est le drame aucun ancien noyau. Il ne reste que le nouveau.
Donc là je me dis c’est pas grave je vais le déinstaller puis ré-installer l’ancien.
Mais comment fait-on dans “apt” pour dire que l’on veux installer un version particulière d’un paquet ?
Une solution ?

Personne .?

Personne n’a d’idée ?

edit: ce qui est écrit après l’edit fonctionne avec grub mais pas lilo Tu as grub ou lilo?
Avec lilo il te faudra booter avec un livecd
modifier le fichier de boot de lilo (je ne sais plus où il se trouve) pour indiquer le bon noyau
chrooter sur la partition de ta distribution et /sbin/lilo pour confirmer

ou alors boote ta distribution avec le livecd supergrub pour faire les modifs sans avoir besoin de chrooter
fin de l’edit.

tu ne dois pas avoir le noyau

trois solutions
-> bootes avec un livecd regarde les noyaux disponibles dans /lapartition/boot et indique le bon noyau initrd dans le fichier de boot /lapartition/boot/grub/menu.list

ou
-> booter ta distribution en modifiant l’entrée de grub
Quand tu as le menu de grub:
e (pour editer)
modifie les entrées en te servant de la tabulation

kernel /boot/vmlinuz-2.6.2 (tabulation)
tu dois alors avoir la liste des kernels
esc pour remonter et tu modifies idem pour l’initrd

b (pour booter)
penser une fois booté de faire les modifications du fichier /lapartition/boot/grub/menu.list

ou
-> booter ta distribution en utilisant le livecd supergrub puis une fois booté n’oublie pas de faire les modifications du fichier /lapartition/boot/grub/menu.list

Salut,

Merci pour ta réponse.
J’ai installé “lilo” pour gérer mon “boot”.
J’ai effectivement fait la méthode que tu as décrite pour “lilo”. (/etc/lilo.conf)
Mais je n’ai plus l’ancien noyau à mon grand regret. Il a été effacé par la mise à jour.
Je n’ai que le nouveau noyau.
Donc mon problème est comment faire pour revenir à l’ancien ?
Peut-on interdire la version d’un package ?

Revenir à l’ancien ça suppose remettre ton système en état de marche et pour ce faire la première des choses à faire c’est mettre un noyau adapté à ta machine.

les fichiers /vmlinuz et /initrd.img ne sont que des liens symboliques vers
le noyau en présence . Rien ne t’empêche de le faire toi même

ln -s /boot/vmlinuz-2.6.29.4 /vmlinuz

ln -s /boot/initrd.img-2.6.29.4 /initrd.img

A condition d’avoir gardé quelque part un noyau fonctionnel , sauvegarde ou sur une etch toujours pas effacée peu importe le numéro de version pourvu qu’elle marche sur ta machine.

Si tu n’as pas de sauvegarde ni d’autre debian qui traîne installe une version minimale sur une clé usb ou une partition libre et récopie le noyau de /boot et son pendant en /lib/modules.
la leçon à en tirer : lors du changement de noyau ne pas effacer l’ancien
avant de s’assurer que le nouveau fonctionne

Je te remercie pour ta réponse.
J’y ai pensé à cette solution mais c’est une solution de dernier secours.
J’aurais aimé le faire avec “apt”. Savoir comment on blacklist une version de package, comment on bloque la mise à jour d’un paquet, comment on installe une version instable juste pour un paquet etc …
Mais bon je trouve pas comment faire … donc bon je pense que je vais finir par effectuer cette méthode.

[quote]la leçon à en tirer : lors du changement de noyau ne pas effacer l’ancien
avant de s’assurer que le nouveau fonctionne[/quote]

J’ai pas trop eu le choix la mise à jour me l’a imposé :slightly_smiling:.

Tu as de toute facon un nouveau noyau alors boot déjà ta distribution avec le livecd supergrub. supergrubdisk.org/

ensuite une fois booté modifie ton fichier de boot lilo et si ca marche pas

apt-get remove --purge lilo
apt-get install grub
ou apt-get install lilo si tu y tiens mais pour ce genre de mésaventure grub est parfait pour réparer.

Avant de foncer tête baissée comme je l’ai fait en te suggérant de remettre un noyau il conviendrait de diagnostiquer plus finement ton problème.

Si tu n’as pas trace de l’ancien noyau c’est que tu as installé à nouveau la même version que celle qui était en présence . Autant dire que tu n’as rien changé.

Soit c’est un problème d’option de noyau
Par problème d’option de noyau j’entend un noyau personnalisé aux options hasardeuses,fs exotique non géré , SATA non géré sur une installation en SATA ou autres joyeusetés empêchant le démarrage .
Lors de personnalisation de noyau , on s’applique la fameuse “leçon” :
" ne pas effacer l’ancien avant de s’assurer que le nouveau fonctionne"

Vu que tu as mis à jour un noyau générique, la piste des options manquantes dans un noyau personnalisé est à écarter.

Je pencherai pour un problème de définition de root dans grub / lilo comme te le suggère limax.
Jette un oeil sur /boot/grub/menu.list ou /etc/lilo.conf

[quote]J’aurais aimé le faire avec “apt”. Savoir comment on blacklist une version de package, comment on bloque la mise à jour d’un paquet, comment on installe une version instable juste pour un paquet etc …
Mais bon je trouve pas comment faire …
[/quote]
Pour le faire avec apt il t’aurait fallu démarrer un autre système et appliquer la procédure en chroot sur ton installation récalcitrante. Remettre un noyau en le recopiant est nettement plus facile .
Pour en revenir à apt, tu disposes de plusieurs versions de debian entre la stable lenny et les expérimentales, dernièrement traité dans pause café la lecture de “pour ou contre pinning” pourrait t’éclairer
Pour ma part après m’être brûlé les ailes à ce jeu, avant de faire de debian un grand meccano de pièces détachées, je ne saurai que te conseiller de sauvegarde ton système, tu retomberas toujours sur tes pattes .