Paquet kernel-image ?

Bonjour,

Je me pose quelques questions à propos des paquets kernel-image…

Voici le contexte :
J’installe une Debian Sarge sur une machine avec le kernel 2.6 par défaut de l’installation standard (en l’occurence le 2.6.8-2-386). Mon installation comporte un RAID 5 logiciel et mon chipset est un nForce 4. Après installation, tout fonctionne impec, le driver nv_sata est chargé, le RAID tourne impec. Je décide alors de conpiler et d’installer sur cette machine un kernel vanille 2.6.18.2 configuré par mes soins. Tout fonctionne impec après avoir booté dessus. Je décide donc de supprimer le paquet kernel-image-2.6.8-2-386. Quelques heures après, je décide de réinstaller ce paquet, et de rebooter sur ce kernel 2.6.8-2-386, et là, surprise, j’ai un kernel panic après un échec de lancement du RAID. J’imagine que mon driver nv_sata (ou plutôt son absence, dont je ne vois pas la mension dans tous ces messages d’erreurs) y est pour quelque chose.

Voici donc mes questions :
Comment se fait-il que je réussisse à booter après installation avec le kernel du paquet kernel-image-2.6.8-2-386 et plus après, ayant désinstallé puis réinstallé le paquet ? Y a-t-il une customisation quelquonque du paquet par l’installateur Debian après détection du matériel ? Ou alors met-il les drivers concernés dans le initrd qui va avec ? Si j’ai envie de remettre le même kernel/initrd que celui que l’installation m’a fourni, sans devoir configurer et compiler mon kernel moi-même, comment puis-je m’y prendre ?

Merci d’avance.

hello,

C’est quoi le message du kernel panic ? as tu pensé à un initrd ?

[quote=“stonfi”]hello,

C’est quoi le message du kernel panic ? as tu pensé à un initrd ?[/quote]

Probablement du au fait qu’il n’arrive pas à initialiser les disques (faute d’absence du driver nv_sata) qui forment la partition md qu’il doit monter comme root…

Il y a bien un initrd fourni dans le paquet, installé et configuré dans grub par debconf… J’imagine que la majorité des drivers doivent être compilés en modules dans ce paquet histoire d’être compatible avec un maximum de matériel. Peut-être ne contient-il pas tous les modules dont j’ai besoin ? Dois-je le recontruire ? Comment dois-je m’y prendre ? Avec mkinitrd ?

Merci.

Oui tout est en module sur les kernel recents. C’est pour pouvoir le lancer sur des petites config sans changer de kernel.
Logiquement le sata_nv devrait etre dans l’initrd.
Pour t’en assurer (faut que tu boote sur un livecd)
cd /tmp
cp /boot/initrdXXX .
zcat initrdXXX | cpio -idv

[quote=“BorisTheButcher”]Oui tout est en module sur les kernel recents. C’est pour pouvoir le lancer sur des petites config sans changer de kernel.
Logiquement le sata_nv devrait etre dans l’initrd.
Pour t’en assurer (faut que tu boote sur un livecd)
cd /tmp
cp /boot/initrdXXX .
zcat initrdXXX | cpio -idv[/quote]

Pourquoi devrais-je le faire en bootant sur un live CD ? Je ne peux pas le faire directement sur l’initrd installé par le paquet kernel-image en question ? Voici ce que ta commande donne chez moi… [quote]brusselsserver:/# cd /tmp/
brusselsserver:/tmp# cp /boot/initrd.img-2.6.8-2-386 .
brusselsserver:/tmp# zcat initrd.img-2.6.8-2-386 | cpio -idv

zcat: initrd.img-2.6.8-2-386: not in gzip format
cpio: premature end of archive
brusselsserver:/tmp# cat initrd.img-2.6.8-2-386 | cpio -idv
cpio: warning: skipped 34014 bytes of junk
cpio: warning: archive header has reverse byte-order
cpio: GçèµòYdK3dЫÈÖ¡àùñRx@baq欲OÜ¢-BŽÄ’~B6£ÃðC³äè|¬p°,±Ã±oE°i =¥’å=#@dè▒a_þ’YyŽ÷á£ôZÐÎ¥@Æn²ð_[VMR)▒ÛÅy4ÓAg^ÐËÀž,"âo¯á°Kh_aïÞ(²÷gÐ*QKI:œO¯® XåQÏJËW¬äéêhs~ËXñe¥Ü
2n4z"Þø#à=jªÛ8œzðËÚ?ïZÖ¢­72e%³¹ç$N%vaâ¡tŽ&®ÇÚÕz,[=šÇìM5öÔøâþ,ó§Õ°èd!©eªXadÆd9º▒ìIëp¯?Çîi£aWsYÀ;: unknown file type GçèµòYdK3dЫÈÖ¡àùñRx@baq欲OÜ¢-BŽÄ'~B6£ÃðC³äè|¬p°,±Ã±oE°i =¥'å=#@dè▒a_þ'YyŽ÷á£ôZÐÎ¥@Æn²ð_[VMR)▒ÛÅy4ÓAg^ÐËÀž,"âo¯á°Kh_aïÞ(²÷gÐ*QKI:œO¯® XåQÏJËW¬äéêhs~ËXñe¥Ü 2n4z"Þø#à=jªÛ8œzðËÚ?ïZÖ¢­72e%³¹ç$N%vaâ¡tŽ&®ÇÚÕz,[=šÇìM5öÔøâþ,ó§Õ°èd!©eªXadÆd9º▒ìIëp¯?Çîi£aWsYÀ;
cpio: warning: skipped 1710 bytes of junk
cpio: premature end of file
[/quote]

Où est l’astuce ? :confused:

L’astuce c’est que je crois que sur ces noyaux, c’est pas un cpio compréssé mais j’ai un trou de memoire, me rappele plus du format
Alors hop:
file /boot/initrd.img-2.6.8-2-386

Et sinon c’est pas l’initrd du 2.6.18 qui pose problème?
Alors fait ces commandes sur /boot/initrd.img-2.6.18XXX
Oui oui tu peux le faire avec un noyau qui boote, livecd ou pas.

[quote=“BorisTheButcher”]L’astuce c’est que je crois que sur ces noyaux, c’est pas un cpio compréssé mais j’ai un trou de memoire, me rappele plus du format
Alors hop:
file /boot/initrd.img-2.6.8-2-386

Et sinon c’est pas l’initrd du 2.6.18 qui pose problème?
Alors fait ces commandes sur /boot/initrd.img-2.6.18XXX
Oui oui tu peux le faire avec un noyau qui boote, livecd ou pas.[/quote]

Le 2.6.18 ne pose pas de problème vu que j’ai compilé en dur les modules dont j’ai besoin au démarrage… Donc pas de initrd…

Cependant, j’aimerais pouvoir faire tourner la machine avec le contenu du paquet kernel-image, sans devoir pour autant recompiler les sources, cela doit être possible vu que c’est ce que j’ai en sortie d’install…

Voici les résultats de la commande file sur les initrd des paquets kernel-image que j’ai installé :

trash@brusselsserver:~$ file /boot/initrd.img-2.6.8-2-386 /boot/initrd.img-2.6.8-2-386: Linux Compressed ROM File System data, little endian size 4657152 version #2 sorted_dirs CRC 0x7fb95f8b, edition 0, 2681 blocks, 358 files trash@brusselsserver:~$ file /boot/initrd.img-2.6.8-3-686-smp /boot/initrd.img-2.6.8-3-686-smp: Linux Compressed ROM File System data, little endian size 5120000 version #2 sorted_dirs CRC 0x286af09d, edition 0, 2897 blocks, 352 files

Quelqu’un a une idée pour restaurer le kernel mis à l’install après désinstallation puis réinstallation du paquet kernel-image via l’apt ? :confused:

Pour info, l’initrd peut aussi être en cramfs et en initramfs…

Sinon trash, si tu as fait ton install depuis un cd, tu dois retrouver les .deb de ton install dessus, et tu peux les reinstaller avec dpkg -i
ils sont peut être encore présent dans /var/cache/apt, aussi.
Ceci etant, ça ne va sans doute pas resoudre ton problême, qui AMA est que l’install du 2.6.18 a dû t’installer yaird, qui fonctionne mal (si je me souviens bien) si il reste des traces de initrd-tools et/ou de initramfs-tools (enfin les vieux outils d’initrd).
Je pense donc que tu n’as simplement pas d’initrd pour ton 2.6.8 (la génération a du planter), ce qui est vérifiable en regardant dans /boot.
C’est bizarre d’ailleurs qu’apt ne t’ai pas fait de message d’erreur lors de l’install.

Enfin pour résumer, AMA, la solution est donc simplement de le regènèrer:

Et si c’est pas encore ça, supprimes les tools d’initrd autres que yaird, et fais une reinstall du paquet noyau 2.6.8.

PS: yaird oublie peut être de mettre des modules dans ton initrd. Si c’est le cas, rajoutes un ‘MODULE nv_sata’ dans /etc/yaird/Default.cfg
PPS: pour regarder l’initrd, il ne faut pas le monter sur un loopback ?

PPPS: aprés toute modification du contenu de /boot, ne pas oublier de regénèrer le menu.lst avec un ‘update-grub’

[quote=“mattotop”]
PPS: pour regarder l’initrd, il ne faut pas le monter sur un loopback ?[/quote]
Je connais le format de mon initrd c’est du cpio. J’ai pas besoin d’en faire un device pour l’editer, c’est un fichier.
Mais peut-etre que les autres formats sont des filesystemes à part entiere donc oui il faudrait un loopback.
En cpio, c’est avec la commande que j’ai donné que je fais toutes mes modifs.
J’ai pas été convaincu par yaird.

J’ai bien lu tous vos posts et voici ce que j’ai fait :

  • J’ai regardé sur le CD d’installation de Debian que j’ai utilisé afin de récupérer le paquet kernel-image-2.6.8-2-386, il semblait être le même que sur le dépôt, mais je l’ai tout de même installé. Même résultat, kernel panic au démarrage.
  • Le 2.6.18 que j’ai installé est un kernel vanille, je n’ai donc pas yaird sur ma machine…
  • J’ai tenté de faire un mkinitrd -o /boot/initrd.img-2.6.8-2-386 2.6.8-2-386, ça fonctionne masi aucun changement, la machine ne peut toujours pas booter avec le kernel 2.6.8-2-386.

D’autres idées ?

Je tiens à préciser que je fais ces tests sur mon desktop, qui tourne très bien avec le kernel vanille que j’ai configuré. Mais alors pourquoi vouloir utiliser le paquet kernel-image ?

Voici l’explication : j’ai installé un serveur chez un ami, en laissant le kernel de l’install (2.6.8-2-386), cependant j’ai voulu installer le kernel 2.6.8-3-686-smp, afin de profiter de l’HT du Pentium 4. Evidemment, quand j’ai rebooté la machine, ça n’a pas fonctionné, et par une mauvaise manipulation j’ai supprimé le kernel de l’install, je ne peux donc plus rebooter la machine avant de trouver une solution… Sachant que je n’ai pas envie de passer du temps à configurer/compiler moi-même le kernel…

Comme ça vous savez tout, si quelqu’un a une idée… Merci d’avance.

Trash:dans /etc/mkinitrd/mkinitrd.conf, tu testes “MODULES=dep” et tu regénères l’initrd, et sinon “MODULES=all”.

BB(pas le même que ma signature): moi ce qui m’a convaincu avec yaird, c’est qu’il s’est installé à un moment, que je me suis mis au bout de quelques temps à avoir des erreurs de génèration d’initrd lors d’install de paquets images, et comme en ne gardant que yaird, ça fonctionnait, je ne me suis pas posé plus de question que ça. D’autant plus que depuis mon passage temporaire sous gentoo, je connais enfin les modules essentiels à ma chaine ide, et donc j’utilise un noyau totalement épuré qui boote sans initrd (cool).

[quote=“mattotop”]Trash:dans /etc/mkinitrd/mkinitrd.conf, tu testes “MODULES=dep” et tu regénères l’initrd, et sinon “MODULES=all”.

BB(pas le même que ma signature): moi ce qui m’a convaincu avec yaird, c’est qu’il s’est installé à un moment, que je me suis mis au bout de quelques temps à avoir des erreurs de génèration d’initrd lors d’install de paquets images, et comme en ne gardant que yaird, ça fonctionnait, je ne me suis pas posé plus de question que ça. D’autant plus que depuis mon passage temporaire sous gentoo, je connais enfin les modules essentiels à ma chaine ide, et donc j’utilise un noyau totalement épuré qui boote sans initrd (cool).[/quote]

MODULES=dep => toujours le même problème…
MODULES=all => écran noir au moment du boot du kernel, puis plus d’activité…

:confused:

tu as un ‘vga=?’ ou une utilisation quelconque du framebuffer dans ta manière de booter ?
sinon, pas d’autre idée

[quote=“mattotop”]tu as un ‘vga=?’ ou une utilisation quelconque du framebuffer dans ta manière de booter ?
sinon, pas d’autre idée[/quote]

Oui mais je viens de tester en l’enlevant de la commande.

MODULES=dep => toujours la même chose
MODULES=all => “image too big !” au boot :cry:

vga=791

tu as d’autres options de noyau que tu gardes secrètes ?
as tu installé un “bootsplash” quelconque ?

[quote=“mattotop”]tu as d’autres options de noyau que tu gardes secrètes ?
as tu installé un “bootsplash” quelconque ?[/quote]

Non il n’y a pas d’autres option…