Forum Linux.debian/ubuntu kernel freeze

Posté par  . Licence CC By‑SA.
0
26
fév.
2018

Bonjour.

Sur une Debian stretch, quand j'essaie d'utiliser un kernel récent (4.14.0-0.bpo.3 ou 4.9.0-5, le tout en amd64, headers installés pour construire le module virtualbox) le démarrage freeze, le noyau semblant incapable de monter la partition root.

Au niveau de ma config de boot, j'utilise syslinux (avec EFI, ce qui implique dans mon cas que /boot/EFI est sur une partition dédiée en FAT32 et contiens les fichiers vmlinuz et initrd.img), et je passe les chemins de la partition root en utilisant les labels (les commentaires ne sont pas dans le fichier réel, je les mets pour ajouter de la clarté ici):

timeout 50
outimeout stretch64-old
default stretch64-old
prompt 0

ui vesamenu.c32
menu title oOo Chargement du démarrage OoO
append ro

# [FREEZE] kernel stable récent
label stretch64
    menu label Stretch
    linux  /64stretch/vmlinuz-4.9.0-6-amd64
    initrd /64stretch/initrd.img-4.9.0-6-amd64
    append root=LABEL=main_sys

label stretch64single
    menu label Stretch single
    linux  /64stretch/vmlinuz-4.9.0-6-amd64
    initrd /64stretch/initrd.img-4.9.0-6-amd64
    append root=LABEL=main_sys single

# [WORK] kernel stable ancien, dont l'initrd n'a pas été régénéré depuis l'install originelle
label stretch64-old
    menu label Stretch old
    linux  /64stretch/vmlinuz
    initrd /64stretch/initrd.img
    append root=LABEL=main_sys

label stretch64single-old
    menu label Stretch old single
    linux  /64stretch/vmlinuz
    initrd /64stretch/initrd.img
    append root=LABEL=main_sys single

# [WORK] kernel stable ancien, dont l'initrd à été refaite ce matin
label stretch64-test
    menu label Stretch old -num
    linux  /64stretch/vmlinuz-4.9.0-5-amd64
    initrd /64stretch/initrd.img-4.9.0-5-amd64
    append root=LABEL=main_sys

label stretch64single-test
    menu label Stretch single old -num
    linux  /64stretch/vmlinuz-4.9.0-5-amd64
    initrd /64stretch/initrd.img-4.9.0-5-amd64
    append root=LABEL=main_sys single

# [FREEZE] kernel stable récent backporté, initrd régénérée ce matin
label stretch64-bpo
    menu label Stretch bpo kernel
    initrd /64stretch/initrd.img-4.14.0-0.bpo.3-amd64
    linux  /64stretch/vmlinuz-4.14.0-0.bpo.3-amd64
    append root=LABEL=main_sys

label stretch64single-bpo
    menu label Stretch bpo kernel single
    initrd /64stretch/initrd.img-4.14.0-0.bpo.3-amd64
    linux  /64stretch/vmlinuz-4.14.0-0.bpo.3-amd64
    append root=LABEL=main_sys single

Pour le freeze, c'est un message du genre (texte pas identique, mais j'ai essayé de faire proche):

waiting for root filesystem...
running /scripts/local-blocks ... done
[...]
running /scripts/local-blocks ... done
unable to find root filesystem
($prompt) _

$prompt est un truc genre "initramfs" ou dans ce style. Je ne peux rien faire du tout à partir de la, le clavier ne répondant pas du tout.
J'imagine que c'est l'image qui est mal construite, mais pourquoi et comment résoudre?
En soit, j'ai toujours un kernel qui tourne, c'est déjà pas mal, mais bon, j'aimerai bien faire les MàJ kernel quand même moi…

PS: ce n'est pas récent, c'est juste que ce matin j'ai eu "le temps" de faire quelques tests pour essayer de cerner la cause (ce qui a échoué pour le coup) entre 2 trucs à faire.

  • # trouver les changements, des pistes ?

    Posté par  . Évalué à 2. Dernière modification le 26 février 2018 à 10:23.

    • est-ce un kernel maison ou un kernel fournit par la distribution ?
      (tu parles de recompiler le module virtualbox, donc installation des headers)

    • est-ce que tu as refait l'initrd pour TOUS tes noyaux

    initramfs -u -k all
    • ton disque main_sys est-il un disque physique ou une partition LVM ?
    • [^] # Re: trouver les changements, des pistes ?

      Posté par  . Évalué à 2.

      est-ce un kernel maison ou un kernel fournit par la distribution ?

      Kernel distrib.

      (tu parles de recompiler le module virtualbox, donc installation des headers)

      Il me semble au moins que c'est ce que fait dpkg, au vu des dépendances.

      est-ce que tu as refait l'initrd pour TOUS tes noyaux

      Non, pas pour le "/64stretch/initrd.img" ni "/64stretch/initrd.img-4.9.0-5-amd64" (le fait que dpkg touche potentiellement les modules me semble trop dangereux. Je vais voir ce que donne initramfs seul.).

      ton disque main_sys est-il un disque physique ou une partition LVM ?

      Partition sur le même disque, format de partitionnement GPT.

  • # busybox

    Posté par  . Évalué à 1.

    il me semble que le fichier de l'intramfs est construit a partir de /usr/src/initramfs qui correspond a la racine de ta busybox. Tu peux par exemple y vérifier les scripts présents.

    Éventuellement comparer tes initramfs en les décompactant dans des répertoires différents ( c'est du gzip et cpio ) http://system.co.free.fr/index.php?title=Editer_initrd.img

    Dans ton cas, une piste serais un module fat32 blacklisté ou supprimé de la busybox, un script de montage qui ne prend en compte les fat32, … .

Suivre le flux des commentaires

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