Problème Grub sur dual boot

Bonjour a tous,

J’ai un ordi avec un double boot ubuntu/Debian jessie (Librazik)
en installant la debian, j’avais abimé Grub qui tournait avec des fichiers sur deux partitions différentes (Détails dans ce post : Bloqué sur grub rescue [résolu])

Ce coup-ci, je réinstalle ubuntu et c’est le coup de grâce pour Grub, au démarrage l’ordi me dit : “Grub, minimal bash-like line editing is supported…”, suivi d’une sorte de console simplifiée. mais ça démarre pas.

Du coup, je fais tourner l’ordi via un ubuntu live-usb.

Mon ordi est un Thinkpad T540p avec 1hdd réservé aux données et un ssd pour le système.
Sur le ssd, il y a 6 partitions dont une pour servir de pseudo home ou je mets les profils des applis, dossier téléchargements, etc et j’y redirige les deux systemes via des liens.

Comme c’est l’install d’ubuntu qui a déclenché le probleme, j’ai commencé par un post sur le forum ubuntu, (ici : https://forum.ubuntu-fr.org/viewtopic.php?id=2021649 ). Mais les infos qu’on m’a données ne me permettent pas de résoudre le problème (Je manque de compétences pour comprendre précisément les réponses).

En gros, il faut que je réinstalle Grub via la commande grub-install mais je n’arrive pas à être sur de moi quant à l’adaptation de la ligne en question (ci-dessous) à mon cas.( tirée d’ ici : https://doc.ubuntu-fr.org/grub-pc#reinstallerrestaurer_grub_2 )

sudo grub-install --boot-directory=/media/NomUtilisateur/pointMontagePartitionBoot /dev/sdb

“pointMontagePartitionBoot” je n’arrive pas être sur de ce par quoi je dois le remplacer.

“/dev/sdb” mon disque système c’est sda. Mon ubuntu est sur sda1 et debian sur sda5, je souhaite que ubuntu soit le systeme principal, dois-je indiquer sda ou sda1 dans la ligne de commande?

Quelqu’un pourrait-il m’aider a comprendre et transposer cette ligne de code?
Merci beaucoup
Stefan

Il faut que tu montes quelque part ta partition sda6, c’est à dire ta racine ubuntu où doit se trouver le répertoire /boot/grub et c’est pour ça que la commande te parle de /media/, car avec un peu de chance, c’est la qu’elle se monte avec une interface graphique depuis le livecd.

Donc soit tu retrouves ton sda6 monté tout seul dans /media, et là tu prend le chemin comme boot-directory
Soit tu monte ta partition ailleurs à la main, et c’est ce chemin là que tu prends.

Ensuite, tu dois dire à quel endroit tu installes ton grub, logiquement, tu le met sur le mbr de ton disque de boot: /dev/sda

ça donne donc
sudo grub-install --boot-directory=/chemin_ou_tu_as_monte_sda6/ /dev/sda

Et tu peux y aller et faire des erreurs, sinon:
vu que ton grub est déjà cramé, tu ne risque pas d’empirer.

D’après le rapport de bootinfoscript que tu as posté sur le forum Ubuntu, Ubuntu est installé sur sda6. sda1 est une partition “BIOS boot” pour l’amorçage avec GRUB en mode BIOS/legacy (pas EFI) sur un disque au format GPT (ce qui est le cas de sda).

Toujours d’après le rapport, une amorce (boot image) de GRUB (BIOS/legacy) est installée dans le MBR de sda et pointe vers une core image présente dans la partition BIOS boot, ce qui est logique. La core image s’attend à trouver le répertoire /boot/grub dans la partition sda6, où est installé Ubuntu, ce qui est logique encore.

Par contre, le disque sda contient aussi une partition système EFI sda2 destinée à l’amorçage en mode EFI, qui contient un GRUB EFI installé par Ubuntu. Ce GRUB est accompagné d’un fichier grub.cfg qui pointe vers la partition 1 du même disque (sda1) avec un UUID qui semble ne pas exister car il n’est pas listé par blkid. sda1 étant une partition BIOS boot qui n’a pas d’UUID, je soupçonne que ce GRUB EFI est un reste de la précédente installation d’Ubuntu.

Si la machine démarre en mode EFI avec le GRUB EFI de l’ancienne installation d’Ubuntu, il est normal que tu te retrouves avec le shell de GRUB. Tu peux le vérifier en exécutant la commande set à l’invite. La valeur de certaines variables comme cmdpath, prefix, arch ou platform devrait indiquer s’il s’agit bien de GRUB EFI.

Tu peux également essayer d’afficher le menu de démarrage avec la commande suivante :

set prefix=(hd0,gpt2)/EFI/ubuntu
set root=hd0,gpt6
configfile /boot/grub/grub.cfg

Mais logiquement, il devrait suffire de forcer l’amorçage en mode BIOS/legacy sur sda pour lancer le GRUB BIOS de la nouvelle installation d’Ubuntu.

Bonjour a vous deux et merci beaucoup pour vos réponses .
Je suis très surpris de découvrir que mon bubntu est sur sda6, mieux vaut tard que jamais…

j’ai testé la manip de Pascalhambourg et j’ai réussi a démarrer Ubuntu ( ô joie!)
en revanche ce n’est pas persistant puisqu’en redémarrant encore, il faut refaire la manip.

j’ai ensuite essayé “set”, j’ai en retour (entre autres) :

...
grub_cpu=x86_64
grub_platform=efi
...
prefix=(hd0,gpt2)/boot/grub
...
root=hd0,gpt2
... 

j’ai mis des points de suspension a la place des lignes que je n’ai pas recopiées

-Du coup l’interrogation qui subsiste pour moi est : qu’est-ce que je fais pour avoir un truc propre qui nécéssite pas de bidouiller souvent.
On navigue quand même largement au dela de ma zone de confort informatique, si je pouvais éviter de refaire ça tout les quatre matins, j’en serai très content.

-Si sda1 est une partition de boot, est-ce qu’il faudrait pas réinstaller (ou réparer) grub proprement dessus?
-J’avais cru comprendre que l’uefi remplaçait le bios (sur mon ordi, il me semble bien que c’est le cas), du coup quel est l’intéret pour moi de garder grub bios?
-Le fait d’avoir une partition boot (sda1) et une partition systeme efi (sda2), c’est bien ou pas bien?

Du coup, j’avance dans la compréhension des choses mais moins sur qu’est-ce que je fais. Notamment quand tu dis “forcer l’amorçage”, je ne vois pas bien a quoi tu fais référence.

En tout cas merci a tous les deux pour le temps que vous avez du prendre pour me répondre.

Théoriquement, une fois que tu as rebooté sur ton ubuntu, grub-install /dev/sda devrait te réinstaller la bonne version et éventuellement aprés ça un update-grub mettra à jour la config de démarrage des divers noyau.

Tu parles des commandes à l’invite de GRUB ?

Non, il n’y a rien à réparer ni réinstaller dans sda1. Mais tant que tu laisses le PC démarrer en mode EFI et lancer le reste de GRUB EFI de la précédente installation, cette partition n’est pas utilisée puisqu’elle ne sert qu’avec l’amorçage en mode BIOS/legacy.

Le firmware UEFI de ton PC peut amorcer en mode de compatibilité BIOS (“legacy”, parfois dénommé CSM pour “Compatibility Support Module”). C’est ce qui s’est probablement passé lors de la nouvelle installation d’Ubuntu puisque celle-ci a été faite pour démarrer en mode BIOS. Tu as peut-être forcé le menu de démarrage du firmware et sélectionné l’amorçage en mode legacy sur la clé USB contenant l’installateur, au lieu de l’amorçage en mode EFI. Ou bien l’installateur n’était amorçable qu’en mode BIOS.

Tu as deux possibilités :

  • forcer l’amorçage en mode BIOS dans les réglages du firmware
  • installer GRUB EFI dans la nouvelle installation d’Ubuntu

Forcer l’amorçage en mode BIOS/legacy/CSM se règle dans les paramètres du firmware UEFI (anciennement BIOS) du PC. La procédure varie hélas avec chaque implémentation. Parfois il faut désactiver l’amorçage EFI, parfois il faut mettre en priorité l’amorçage BIOS… Mais parfois la seule possibilité est de supprimer les chargeurs EFI présents et déclarés (GRUB EFI) afin que le firmware UEFI n’ait pas d’autre choix que d’amorcer en mode BIOS, par défaut.

Théoriquement, cette commande n’a aucun intérêt.
Par défaut, grub-install installe le chargeur GRUB pour la “cible” (target) correspondant au mode d’amorçage courant :

  • amorçage BIOS -> cible i386-pc, nécessite le paquet grub-pc ou grub-pc-bin
  • amorçage EFI 64 bits -> cible x86_64-efi, nécessite le paquet grub-efi-amd64 ou grub-efi-amd64-bin

Ubuntu a été installé en mode BIOS, donc seuls les paquets grub-pc et grub-pc-bin sont présents.

Si on démarre en mode BIOS, grub-install /dev/sda ne fera que réinstaller le chargeur GRUB BIOS pour la cible i386-pc qui est déjà installé correctement.

Si on démarre en mode EFI (comme actuellement via la manip à l’invite de GRUB EFI), alors grub-install cherchera à installer le chargeur GRUB EFI pour la cible x86_64-efi et

  • ignorera l’argument /dev/sda qui est sans objet pour les cibles EFI
  • échouera car le paquet grub-efi-amd64-bin n’est pas installé
  • échouera car la partition système EFI /dev/sda2 n’est pas montée sur /boot/efi.

On peut en déduire les actions nécessaires pour réparer l’amorçage EFI :

  • démarrer en mode EFI
  • monter /dev/sda2 sur /boot/efi
  • installer grub-efi-amd64 ou grub-efi-amd64-bin
  • exécuter grub-install sans argument.

Mais si vous voulez mon avis, il est beaucoup plus simple de forcer l’amorçage en mode BIOS.

Bonjour,
Tout d’abord, excusez-moi pour le rythme lent de mes visites sur le forum, je suis a fond… :o)
Ensuite merci beaucoup de vous être autant creusé les méninges pour moi.

J’ai (visiblement) réussi à forcer l’amorçage en mode bios, effectivement, c’était pas sorcier…
ubuntu et debian démarrent impeccable.

A priori je pars pour adopter cette solution.

du coup, je m’aperçois que mon partitionnement n’est vraiment pas terrible…
Si je comprends bien :
sda1 : partition de boot qui sert a grub bios. Ne pas toucher.
sda2 : partition de boot grub EFI.
sda3 : swap
sda4 : pseudo home
sda5 : debian
sda6 : ubuntu

Plusieurs questions se posent a moi :

  • quels sont les éventuels désagréments auxquels je risque d’être confrontés à cause du choix du mode legacy au lieu de l’uefi?
    -est-ce que je peux formater la partition sda2 pour faire du ménage?

En tout cas merci beaucoup a tous les deux pour ce dépannage, et de faire des posts aussi détaillés, ce qui permet de comprendre ce qu’on fait et de progresser.

Je ne vois pas de problème dans ton partitionnement. Il est polyvalent, capable d’accueillir un démarrage BIOS et/ou EFI. A ta place je garderais la partition EFI qui n’occupe que 100 Mo et peut servir si tu décides de réutiliser l’amorçage EFI. Son seul inconvénient, c’est de ne pas voir au premier coup d’oeil à la table de partition si le disque est amorçable en mode BIOS ou EFI. Mais maintenant que tu sais ce qu’il en est, ce n’est pas un problème. Tu pourrais même installer aussi un GRUB EFI, de sorte que le disque serait amorçable indifféremment en mode BIOS et EFI.

En fait la manip à l’invite de GRUB EFI a montré qu’il ne manquait pas grand-chose pour qu’il soit opérationnel. Il devrait suffire de modifier le contenu du fichier /EFI/ubuntu/grub.cfg qui se trouve dans la partition EFI /dev/sda2 en :

search.fs_uuid febe7c1c-2d92-4268-86d3-53e923eb419e root hd0,gpt6
configfile /boot/grub/grub.cfg

Sinon, tu peux juste effacer le contenu de la partition EFI. Pour faire propre il faudrait aussi supprimer l’entrée d’amorçage pour Ubuntu enregistrée la mémoire non volatile du firmware. Soit via la gestion de l’amorçage du firmware, soit avec le programme efibootmgr si le firmware ne le permet pas (il faut avoir démarré en mode EFI pour qu’il fonctionne).

L’amorçage EFI est censé être intéressant pour le multiboot car il permet d’installer des chargeurs d’amorçage indépendants pour chaque système d’exploitation dans une (ou plusieurs) partition EFI, et de pouvoir choisir l’un d’eux depuis le menu de démarrage du firmware. En pratique, des inconvénients existent à cause des bugs des firmwares UEFI et de limitations de GRUB tel qu’utilisé par les distributions.

Les inconvénients de l’amorçage BIOS/legacy sont connus puisque c’est ce qu’on utilisait depuis le début du PC : il ne permet d’installer qu’un seul chargeur d’amorçage par disque dans le MBR et la partition BIOS boot, et le choix du système doit se faire dans le menu de celui-ci. L’inconvénient est donc que l’amorçage d’un des deux systèmes (actuellement Debian) dépend du chargeur d’amorçage de l’autre (actuellement Ubuntu). Si Ubuntu est endommagé ou supprimé et son chargeur n’est plus opérationnel, il ne sera plus possible de démarrer Debian non plus.

Un gros inconvénient de l’amorçage BIOS concerne l’installation de Windows : d’une part celui-ci exige pour s’installer en mode BIOS un disque partitionné au format DOS/MBR (impliquant l’utilisation de partitions logiques, la limitation à 2 Tio…) alors que le tien est au format GPT. D’autre part il y a toujours la bataille entre Linux et Windows pour le MBR. Mais ce n’est pas un problème si tu ne comptes pas installer Windows sur ce disque.

noté pour le partitionnement :slight_smile:

L’idée de réparer le grub efi me plait bien mais j’ai du mal a saisir la manip.
Je ne sais pas comment acceder a sda2
Je ne sais pas quoi faire de cette ligne que tu cites

Si tu voulais bien détailler ou me donner un lien vers un tuto, ce serait royal…

Si j’ai tout bien compris, cette manip me permettrait de choisir entre un amorçage bios ou efi, en sélectionnant le mode d’amorçage dans le firmware. (j’ai le choix legacy only, uefi only, ou priorité uefi)
c’est ça?

Il suffit de monter la partition avec mount pour accéder à son contenu. De préférence sur un répertoire /boot/efi créé pour l’occasion, qui est le point de montage dédié pour la partition EFI pour GRUB. Au passage tu peux automatiser le montage au démarrage dans /etc/fstab.

Editer le fichier /etc/fstab avec nano pour ajouter les lignes suivantes :

# partition EFI /dev/sda2
UUID=CE8E-5F66 /boot/efi vfat defaults

Monter la partition.

mount /boot/efi

Editer le fichier /boot/efi/EFI/ubuntu/grub.cfg avec le contenu mentionné dans mon message précédent.

Merci beaucoup d’avoir détaillé la procédure.
Je suis malheureusement pris par le temps et je ferai cette manip si je trouve le temps.
En attendant je vais continuer a booter sur grub bios.

Merci en tout cas a tous les deux pour votre aide précieuse