Forum Linux.général Modification (un peu trop) vigoureuse de mes initrd (builtin) provoquant un échec du Grub au redemérrage

Posté par .
Tags : aucun
0
4
fév.
2010
Bonsoir,

Faudrait jamais se presser, faut jamais s'énerver.

J'avais compilé un petit noyau avec mes drivers de filesystems "en dur" mais le mkinitrd achoppait car il ne les trouvait pas en module (forcément). J'ai donc voulu régler le problème en expliquant à mkinitrd que les drivers étaient bien là, au-dedans du noyau.

Mes tentatives polies avec un "mkinitrd --builtin=sil_sata -o init-nom_du_kernel nom_du_kernel" me renvoyait systématiquement une erreur bizarre du type "/sbin/mkinitrd blabla -- -".

J'ai fini par y aller de manière enthousiaste et sur la recommandation d'un forum convaincant avec un "mkinitrd -f sil_sata ext3 init-nom_du_kernel nom_du_kernel" qui ne m'a pas renvoyé d'erreur. J'ai pensé avoir touché au but...

Résultat : lors que je lance mon noyau "made in opensuse" ou celui bricolé par mes soins sur mon grub graphique, je récupère désormais une erreur :

"Error 13: Invalid or Unsupported Executable Format"

Mon menu.lst n'a pas bougé et j'ai vérifié en profondeur la partition contenant mon /boot : tout semble normal.

Je crains donc fort d'avoir abimé sérieusement mes vmlinuz ou mes inird !??

Quelles solutions envisageriez vous, sachant que je sui réfugié sur une debian qui ne contient plus mkinitrd pour retoucher mes initrd depuis l'extérieur (!?), à part :

1°) extraire comme un charcutier le initrd et le vmlinuz officiel du RPM officiel de Suse pour les mettre à la place de ceux que j'ai trafiqué ;

2°) installer sur un bout de partition disponible une partition contenant toujours mkinitrd et tenter de corriger le problème depusi l'extérieur !??

Merci par avance de vos bons conseils,

Yojik77
  • # Kernel pas bon ?

    Posté par . Évalué à 3.

    J'ai dû bidouiller ya pas longtemps de l'initrd à la main, mais quand ils déconnaient, le kernel démarrait quand même, même sans lancer l'initrd. Si tu as un problème de ce genre, c'est sûrement le kernel qui a été touché. Peut-être as-tu copié des mauvais fichiers au mauvais endroit ? Essaye d'abord de recopier le kernel du RPM, ça pourra aider.
    • [^] # Re: Kernel pas bon ?

      Posté par . Évalué à 1.

      Aussi surprenant que cela puisse sembler, je crains fort que tu n'aies raison :

      Zeta:/media/racine/boot# file vmlinuz-2.6.27.42-0.1-pae
      vmlinuz-2.6.27.42-0.1-pae: gzip compressed data, from Unix, last modified: Wed Feb 3 21:21:48 2010, max compression

      J'ai eu l'idée d'utiliser 'file' en trouvant ce fil :
      http://www.linuxquestions.org/questions/linux-newbie-8/grub-(...)

      Mais il semble que la sortie de file devrait plutôt être de ce type là :

      /boot/vmlinuz-2.6.18-5-686: Linux kernel
      x86 boot executable RO-rootFS, root_dev 0x6803, swap_dev 0x1, Normal VGA

      Sans que je comprenne comment et pourquoi mon innocent 'mkinitrd -f' aurait altéré mes deux noyaux ????

      Bref, la galère n'est pas terminée....

      Merci beaucoup pour ton soutien amical !

      Yojik
      • [^] # Re: Kernel pas bon ?

        Posté par . Évalué à 4.

        Par curiosité, si tes drivers de filesystems sont compilés en dur, quelle est l'utilité de l'initrd?

        Faut faire gaffe à mkinitrd. Ya pas 2 distributions qui utilisent le même. A chaque fois c'est: "A tiens c'est pas la même syntaxe que le mkinitrd que je connais et je viens de faire un grosse connerie \o/"
        Relis bien la page de manuel et si tu cherche sur le net fait des recherches spécifiques à ta distro.

        Bon courage.
      • [^] # Re: Kernel pas bon ?

        Posté par . Évalué à 3.

        Moi je dirais que dans tes essais, à un moment t'as dû de tromper, faire une faute d'attention, et écrire l'initrd dans ton kernel .... (vu que d'après file, ton vmlinuz ressemble fortement à un initrd). Ça arrive des fois, l'erreur est humaine. D'où ma suggestion de reprendre celui du RPM.
  • # update-initramfs

    Posté par . Évalué à 4.

    tu bootes sur un livecd
    tu chrootes ton environnement que tu souhaites depanner

    et les distributions recentes n'ont plus de initrd mais un initramfs

    pour le mettre à jour ?

    update-initramfs -u -k all
    pour mettre à jour (-u) tous les initrd des kernels de la machine (-k all)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.