Migration wheezy/jessie, erreur dans le GRUB

Les même sorties que précédemment, les voila :

Installing for i386-pc platform. grub-install : attention : Le système de fichiers « ext2 » ne prend pas en charge l'embarquage. grub-install : attention : L'embarquage est impossible.GRUB ne peut être installé sur cette configuration qu'en utilisant les listes de blocs. Cependant, les listes de blocs ne sont PAS fiables et leur utilisation est déconseillée.. Installation terminée, sans erreur.

Alors là, j’avais que ça dépasse un peu mes connaîssances :blush:
Voila comment j’ai procédé :

La procédure n’est pas de moi, je l’avais prise sur un forum Ubuntu

1 - Partition propre au Grub général

Une partition d'1Go suffit, une trentaine de Mo seulement devrait être utilisés.
La partition peu être primaire ou étendue sans importance.

Dans mon cas sda8

2 - Installer le grub général sur la partition

Depuis la distribution usuelle :

Monter la partition destinée à recevoir le grub

sudo mount /dev/sda8 /mnt

Installer le grub

sudo grub-install --boot-directory=/mnt /dev/sda

Le système répond "Installation finished. no error reported"

3 - Créer les entrées concernant ma config actuelle dans le Grub

Le système étant déjà installé, il suffit de dupliquer le grub de la partition usuelle qui est déjà OK

générer un fichier de config, et le déplacer vers /mnt/grub/grub.cfg

sudo grub-mkconfig > global

Tout les OS trouvés sont listés

sudo mv global /mnt/grub/grub.cfg

4 - Indiquer au grub qui gère mon système de ne pas chercher d’autre système d’exploitation

modifier /etc/default/grub pour y rajouter la ligne

GRUB_DISABLE_OS_PROBER=true

5 - Modifier les entrées de /mnt/grub/grub.cfg (sur la distrib actuelle)

Voila, c’est tout ce que j’ai fais.

Ensuite j’installe les distrib et je n’ai pas de problème.

Avec wheezy, ça n’a d’ailleurs pas posé de problèmes.

Ce qui est dommage, c’est que je n’ai pas sauvegardé le grub.cfg de wheezy avant la migration vers jessie :013

Il n’y a pas eu d’erreur, la dernière ligne est différente de la fois précédente et indique le succès. Les lignes “attention” ne sont que des avertissements.

[quote=“dropforged”]générer un fichier de config, et le déplacer vers /mnt/grub/grub.cfg
5 - Modifier les entrées de /mnt/grub/grub.cfg (sur la distrib actuelle)[/quote]
Quelles modifications as-tu faites au fichier ?

Si je comprends bien, tu ne fais pas de chaînage mais une simple intégration des noyaux à charger directement dans le fichier de configuration du GRUB principal. Donc peu importe que le nouveau GRUB de Jessie soit bien installé ou pas, de toute façon il n’est pas exécuté.

Comment as-tu mis à jour le GRUB principal après la migration de Wheezy vers Jessie ? As-tu refait la procédure indiquée ? Si oui, toutes les étapes ou seulement la regénération de grub.cfg ?

L’ennui, c’est qu’un fichier de configuration généré par [mono]update-grub[/mono] ou [mono]grub-mkconfig[/mono] pour une version donnée de GRUB n’est pas forcément compatible avec une autre version. Il y a des changements de syntaxe, de chemin d’installation, de modules, de nouvelles commandes… Il y a eu pas mal de changements entre les versions de Wheezy et Jessie.

Tu as tout as fait raison. Je n’avais pas vu, y’a des fois je me mettrais des claques :013

Je voulais te remercier de la patience dont tu fais preuve envers moi, car ainsi, j’en apprend beaucoup :wink:

Je vais donc essayer de te répondre dans la mesure de mes connaissances (ce qui veux tout simplement dire que je vais peut être dire pas mal de con***** :083 ).

Le grub général est installé une fois pour toute, quand je rajoute/enlève une distrib, la seule chose que je fais c’est modifier les “entrée”.

Exemple :

[code]menuentry ‘Debian Wheezy XFCE 7.8’{
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root=’(hd0,msdos1)’
configfile /boot/grub/grub.cfg
}

menuentry ‘Xubuntu 12.04’{
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root=’(hd0,msdos2)’
configfile /boot/grub/grub.cfg
}[/code]

La seule chose que je fais, c’est modifier les entrées comme indiqué ci-dessus.
Dans le cas du passage de Wheezy à jessie, j’ai juste remplacé

menuentry 'Debian Wheezy XFCE 7.8

par

menuentry 'Debian Jessie XFCE 8 :mrgreen:

[quote]générer un fichier de config, et le déplacer vers /mnt/grub/grub.cfg
5 - Modifier les entrées de /mnt/grub/grub.cfg (sur la distrib actuelle)

Quelles modifications as-tu faites au fichier ?[/quote]

5 - Modifier les entrées de /mnt/grub/grub.cfg (sur la distrib actuelle)

 Pour passer de 
     menuentry 'Ubuntu, avec Linux 3.2.0-34-generic' --class ubuntu --class gnu-linux --class gnu --class os {
	recordfail
	gfxmode $linux_gfx_mode
	insmod gzio
	insmod part_msdos
	insmod ext2
	set root='(hd0,msdos1)'
	search --no-floppy --fs-uuid --set=root 32b15123-af7f-43b8-949a-35ac185f2654
	linux	/boot/vmlinuz-3.2.0-34-generic root=UUID=32b15123-af7f-43b8-949a-35ac185f2654 ro   quiet splash $vt_handoff
	initrd	/boot/initrd.img-3.2.0-34-generic
    }
a

menuentry 'Ubuntu' { recordfail gfxmode $linux_gfx_mode insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' configfile /boot/grub/grub.cfg }

Ah, tu as donc utilisé [mono]configfile[/mono]. On va finir par tout savoir.

Si je comprends bien, quand tu choisis une entrée dans le menu principal, cela affiche un autre menu dans le même GRUB, mais sans que cela soit un sous-menu. Et c’est après avoir sélectionné le noyau dans ce second menu que les messages d’erreur se produisent.

L’inconvénient, comme je l’ai écrit dans mon message précédent, c’est qu’un fichier de configuration généré pour une version donnée de GRUB n’est pas forcément compatible avec une autre version de GRUB à cause des évolutions. Il n’est donc pas anormal qu’un ancien GRUB tousse lorsqu’il doit exécuter un fichier de configuration d’un GRUB plus récent. Cela peut aussi arriver dans l’autre sens. Apparemment dans ton cas ce n’est pas bloquant.

Il existe néanmoins différentes méthodes pour éviter les messages “file not found”.

  • Réinstaller le chargeur GRUB principal avec la version de Jessie. Mais cela peut avoir un impact sur les autres systèmes présents (si GRUB de Jessie plus récent).

  • Utiliser [mono]chainloader +1[/mono] à la place de configfile pour chaîner le chargeur entier du système à démarrer et pas seulement le fichier de configuration.

  • Utiliser [mono]multiboot /boot/grub/core.img[/mono] ou [mono]multiboot /boot/grub/i386-pc/core.img[/mono] selon la localisation du fichier (dépend de la version de GRUB) à la place de configfile pour chaîner le chargeur entier d’une autre façon.

Note : la désignation des partitions en dur (hdX,msdosY) présente un risque que le numéro de disque ou de partition change. Par exemple le numéro d’une partition logique peut changer si une partition logique précédente est supprimée. C’est pour cela que le fichier de configuration généré automatiquement utilise les UUID avec la commande [mono]search[/mono].

Ah, tiens, un détail à ce sujet à l’appui de ce que j’écrivais plus haut : j’ai observé que le GRUB de Jessie dysfonctionne quand il exécute les commandes [mono]search[/mono] d’un fichier généré pour le GRUB de Wheezy ou Squeeze, je ne sais plus. La faute à l’option [mono]–set[/mono] qui a visiblement légèrement changé entre les deux versions et est devenue [mono]–set=root[/mono].

Réponse un peu tardive (désolé :blush: ) et fin de l’aventure, j’ai fis par réinstalller Wheezy en désespoir de cause ( à force de bidouiller Jessie ne démarré plus :013 )

Depuis tout fonctionne nickel, tu as avais raison, la solution aurait sans doute était :

Mais bon, je ne voulais pas toucher au reste de mon installation (bricolage :mrgreen: )

Merci de ton aide en tout cas

Juste une dernière petite question, tu m’as dis :

Je ne vois pas ce que tu veux dire ? J’ai utilisé configfile dans ma procédure d’installation du grub général ?