Forum Linux.général GRUB2: insmod linux

Posté par  .
Étiquettes : aucune
0
22
mar.
2010
Bonjour forum,

sur certaines machines nous sommes obligés d'utiliser GRUB2 car GRUB ne fonctionne pas. Problème connu des développeurs. Solution officielle = passer à GRUB2.

Sur ces machines nous utilisons du RAID1 logiciel, et GRUB2 pose un petit soucis: lors du lancement de l'ordinateur nous avons un message d'erreur (error: cannot find C/H/S values) et nous tombons sur la console GRUB2. Il suffit de taper "insmod linux" puis "normal" et le reste du démarrage se fait normalement.

Je suppose donc qu'il manque un chouilla d'information à GRUB2 pour qu'il fasse son "insmod linux" tout seul comme un grand. Ca se passe avant l'accès au fichier /boot/grub/grub.cfg (je suppose), et je ne trouve pas le moyen de l'en convaincre. Il faut dire que la documentation GRUB2 est... heu... légère :-)

Quelqu'un sait comment expliquer à GRUB2 qu'il faut charger le module linux tout seul ?
  • # Voici une doc

    Posté par  . Évalué à 2.

    pas trop mal foutue
    http://www.linuxpedia.fr/doku.php/expert/grub2

    a première lecture rapide tu dois utiliser
    grub-mkconfig
    et GRUB_PRELOAD_MODULES="raid mdraid" ou tu dois rajouter linux
    • [^] # Re: Voici une doc

      Posté par  . Évalué à 2.

      Merci pour le lien. J'avais déjà regardé, mais rien de mieux que ce que je connais déjà.

      Même en suivant les exemples donnés pour le RAID, ça ne fonctionne pas.
  • # Re: GRUB2: insmod linux

    Posté par  . Évalué à 2.

    Selon la distribution que tu utilise j'imagine (ici Debian)...

    1) Soit tu édites /etc/default/grub et tu rajoute une ligne :

    GRUB_PRELOAD_MODULES="linux"

    2) Soit tu utilises une entrée (menuentry) personnalisée dans /etc/grub.d/40_custom et tu édites celle-ci de sorte que le module soit chargé :

    menuentry "Pardus 2009 International" {
        insmod linux
        insmod ext2
        set root=(hd0,1)
        linux (hd0,3)/boot/kernel-2.6.30.1-123 root=/dev/sda3 vga=791 splash=silent quiet resume=/dev/sda5
        initrd (hd0,3)/boot/initramfs-2.6.30.1-123
    }


    Dans les deux cas, ne pas oublier de régénérer le fichier /boot/grub/grub.cfg avec la commande :

    a) /usr/sbin/update-grub
    b) /usr/sbin/update-grub2 (si jamais grub 1 est aussi installé)
    c) /usr/sbin/grub-mkconfig -o /boot/grub/grub.cfg

    Utilise c) si les commandes update-grub ne sont pas disponibles sur ton système (peut être que ce sont des commandes spécifique Debian, je ne sais pas).
    • [^] # Re: GRUB2: insmod linux

      Posté par  . Évalué à 2.

      Mille fois hélas, ça n'est pas la solution.

      update-grub ne fait que modifier le fichier grub.cfg et GRUB_PRELOAD_MODULES=xxx ne fait qu'ajouter une entrée dans grub.cfg (via update-grub).
      Hors il me semble que GRUB2 n'arrive tout simplement pas à accéder à ce fichier (puisqu'il n'arrive pas à accéder aux partitions).

      Je fais un test: dd if=/dev/zero of=/dev/sda5 bs=1M
      pour effacer le contenu de la partition.
      Je relance la machine. GRUB2 affiche le même message d'erreur (error: cannot find C/H/S values) mais cette fois lorsque je tape "insmod linux" il indique qu'il ne trouve pas le disque. Cela voudrait dire que GRUB2 arrivait tout de même à lire la partition avant que j'efface ? Je ne saisi pas.

      Avec GRUB version 1, nous avions stage1 (contenu dans le MBR), stage 1.5 (contenu dans les secteurs suivants le MBR) et stage2 (un fichier normal).

      Avec GRUB2 nous avons toujours quelque chose dans le MBR, puis quelque chose stocké juste après. Je crois que le contenu de ce deuxième quelque chose est généré par grub-mkimage. Vu l'état des docs, ce ne sont que des suppositions.

      Nous allons probablement passer à LILO. C'est moins bien, mais au moins ça démarre :-)
    • [^] # Re: GRUB2: insmod linux

      Posté par  . Évalué à 2.

      Bon, voilà, c'est un bug GRUB2. Résolu à partir de la version 0.98

Suivre le flux des commentaires

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