Forum Linux.debian/ubuntu [résolu] no init found

Posté par  .
Étiquettes :
1
27
sept.
2011

Bonjour,

je viens chercher un peu d'aide pour résoudre un problème de boot sur
une Debian testing.

Après une mise à jour un peu agitée, je me retrouve avec une debian qui
ne veut plus booter. Le noyau se charge bien mais visiblement l'image initrd
ne convient pas puisque j'obtiens un "Kernel panic not syncing, no init found".

J'arrive à booter la machine avec un livecd + chroot (après avoir mount -o bind /dev
/sys et /proc). J'ai essayé de regénérer les images initrd avec update-initramfs suivi d'un
update-grub et grub-install mais rien n'y fait ... "no init found".

J'avoue sécher maintenant, auriez-vous des suggestions pour explorer plus avant ?

merci d'avance

  • # reference au disque

    Posté par  . Évalué à 2.

    avant, grub et fstab se basait sur /dev/hdXY pour trouver et utiliser le disque

    depuis cela a été normalisé et on ce sert de /dev/sdXY

    seulement, suivant les noyaux ou les machines X change au demarrage
    il faut donc utiliser les identitifiants uniques (UUID) afin d'eviter ce probleme.

    • [^] # Re: reference au disque

      Posté par  . Évalué à 3.

      Mouais, ou pas. /dev/hd* c'est pour les disques PATA et /dev/sd* pour les disques qui utilisent la libata via scsi.

      OP, déjà faudrait savoir si c'est le kernel qui se plaint de pas avoir son init dans l'initrd ou si c'est les scripts de l'initrd qui ne trouvent pas l'init sur le disque au moment de passer le contrôle.

      La solution donnée plus haut avec les UUID peut fonctionner dans certains cas, si c'est l'init du disque qui est introuvable.

      • [^] # Re: reference au disque

        Posté par  . Évalué à 1.

        j'ai verifie pour les uuid. Dans le /etc/fstab les partitions sont bien identifiees par leur uuid et dans le fichier grub.cfg j'ai une directive search avec l'uuid du disque suivie
        d'une commande root=(hd0,msdos3) qui doit correspondre à /dev/sda3 (ce sont des disques SAS).

        De ce cote la ca me semble bon donc (?)

        l'erreur que j'ai est un "kernel panic no init found try passing init= option at boot" (de memoire). Est-ce que ca permet de dire que c'est le kernel qui ne trouve init dans les images initrd ? Vu que le noyau est chargé a priori grub doit bien trouver le disque je pense.

        • [^] # Re: reference au disque

          Posté par  . Évalué à 2.

          La partition qui a le kernel n'est pas forcément celle qui contient l'init.
          Et ton kernel, tu lui donnes quoi comme arguments au moment de l'appel ?

    • [^] # Re: reference au disque

      Posté par  . Évalué à -1.

      Ah, les UUID, Une belle régression. Dure que plusieurs dizaines d'années avant, un génie a inventé le DNS pour ne pas avoir à retenir des suites denuméros séparés par des points et v'l-t-y pas que des idiots de développeurs viennent à penser qu'un numéro imbitable en hexa, c'est mieux pour monter un filesystem (et en cas de plantage, on sait tout de suite à quoi ça correspond).

      Après on se demande pourquoi Linux ne décolle pas .... Grace à ces génies, il n'y a pas de souci, Linux va rapidement décliner.

  • # Progrès: le problème est dans l'image initrd

    Posté par  . Évalué à 1.

    Je progresse lentement.

    Pour tester l'image initrd j'en suis venu à copier un noyau et l'initrd correspondant d'une ubuntu dans le /boot de la debian en rade. Après un update-grub + grub-install, reboot, ça boote !
    Donc le problème est dans le contenu de l'image initrd générée par les initramfs-tools ...

    J'ai fait une liste des contenus des initrd de l'ubuntu et de la debian (avec la commande lsinitramfs). La grosse différence que je vois est tout un tas de fichiers firmware-* qui ne sont pas présents dans l'initrd Debian. Je suspecte que le problème vient de là ...

    Il me reste à trouver les fichiers manquants et les inclure maintenant ...

Suivre le flux des commentaires

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