bonjour,
ayant deux OS , ubuntu et debian , il arrive , rarement mais ça arrive , que suite à une mise à jour l’ordre normal d’amorçage change et je me retrouve sur ubuntu car je laisse souvent le programme se dérouler automatiquement sans vérifier. Je redémarre alors et sélectionne debian puis je réinstalle grub-efi .
« papy-tux » me propose une méthode (valable pour debian ) plus rapide et je voudrais votre avis avant de l’utiliser à partir de « ubuntu » au cas où : https://papy-tux.legtux.org/doc1251/index.html
Bonjour,
Normal, car à chaque fois que tu fait une mise à jour qui touche le noyau, il refait un grub-update.
Et donc il lance os-prober, et par défaut il utilise le système courant comme le système par défaut.
Il suffit d’aller dans le grub manager, et de réarranger l’ordre des démarrage. pas de fichier à manipuler.
je ne connais plus le nom du paquet par contre.
Je m’en sert sur mon PC qui a 4 OS.
Correction, j’ai trouvé: c’est grub-customizer le paquet
Est-ce que tu parles de l’ordre de démarrage UEFI, de l’odre des systèmes dans le menu de GRUB ou du système sélectionné par défaut dans le menu de GRUB ?
L’ordre de démarrage UEFI détermine si c’est le GRUB de Debian ou celui d’Ubuntu qui est lancé, et affiche le menu qui va avec. La solution que tu évoques avec efibootmgr modifie cet ordre. Il peut aussi être modifié par grub-install qui est exécuté lors d’une mise à jour des paquets grub* pour installer la nouvelle version du chargeur d’amorçage.
Par défaut, l’ordre des systèmes dans le menu de GRUB dépend à quel système il appartient : si c’est le GRUB de Debian, alors Debian est en premier et les autre systèmes suivent. Si c’est celui d’Ubuntu, alors Ubuntu est en premier et les autres systèmes suivent. On ne peut changer cela qu’en renommant les scripts présents dans le répertoire /etc/grub.d/ pour modifier l’ordre d’exécution des scripts.
Le système sélectionné par défaut dans le menu de GRUB est déterminé par la valeur de la variable GRUB_DEFAULT dans le fichier /etc/default/grub lorsque le fichier de configuration de GRUB a été généré en exécutant update-grub. La valeur par défaut est GRUB_DEFAULT=0, qui désigne la première entrée du menu. Pour sélectionner le second système (donc la troisème entrée de menu, sachant qu’il y a deux entrées par système), il faut spécifier GRUB_DEFAULT=2.
Loin de moi l’intention de dénigrer grub-customizer, mais par le passé j’ai eu des échos négatifs disant que ça avait perturbé les scripts qui génèrent le fichier de configuration de GRUB. Ceci dit ça date un peu, donc il y a peut-être eu des progrès.
normalement , sur mon écran de sélection du système qui démarre j’ai debian en 1er et ubuntu ensuite , mais après certaines mises à jour ubuntu apparaît en 1er et c’est à ce moment que je me retrouve sur ubuntu n’ayant pas assisté à la phase de démarrage pour sélectionner le bon OS . D’où le redémarrage contrôlé ( où je vois bien ubuntu en 1er , que je désélectionne alors ) puis je réinstalle grub-efi à partir de debian et tout rentre dans l’ordre jusqu’à une en général assez lointaine prochaine fois .
N’y aurait-il pas moyen de changer l’ordre une bonne fois pour toutes ?
note : sur mon SSD le 1er système installé a été ubuntu ( pour , je pensais , maximiser les chances d’une bonne prise en compte de mon matériel qui était alors très récent et donc avoir un système opérationnel rapidement ).
Quand tu fait une mise à jour il y a reconfiguration du grub. et le système en cours considère toujours que c’est lui le premier.
Il faudrait que fasse en sorte que Ubuntu installe grub sur sa propre partition, et que Debian installe son grub sur la partition de démarrage par defaut.
justement c’est ça que je ne pige pas car lors de la mise à jour le système en cours est toujours debian et pourtant je me retrouve parfois avec ubuntu en 1er .
une remarque : j’ai remarqué que ce changement de priorité n’est pas forcément lié à une mise à jour du noyau
si j’en crois wiki ubuntu-fr os-prober devrait détecter tous les OS sur mon unique disque sda : " os-prober va chercher tous vos systèmes d’exploitation ". Or debian n’apparaît pas et j’obtiens
sudo os-prober
[sudo] Mot de passe de mm :
/dev/sda2:Ubuntu 18.04.3 LTS (18.04):Ubuntu:linux
je viens de lire ceci : " os-prober is a command that lists other operating systems " sur ask-ubuntu . Donc pas d’anomalie ?
grub est déjà installé sur sda
sudo fdisk -l
Disque /dev/sda : 223,6 GiB, 240057409536 octets, 468862128 secteurs
…
le 1er écran qui apparaît avec les 2 systèmes listés et qui permet éventuellement de choisir celui qu’on veut utiliser . Normalement debian est sur la 1ère ligne et donc sélectionné automatiquement mais parfois c’est ubuntu qui se trouve sur la 1ère ligne et qui démarre automatiquement .
exactement , ubuntu a été une phase transitoire et je le garde en secours au cas où … est-ce utile ou pas , je ne sais pas trop en fait … effet psychologique peut-être .
Ta question : Ordre d’amorçage changé
tu choisies de démarrer avec ton OS Debian ou Ubuntu que tu veux en premier et les trois commandes avec un redémarrage…
Cette description n’est pas assez précise, elle peut s’appliquer aussi bien au menu de boot UEFI qu’au menu de GRUB. Essaie de te mettre à la place des lecteurs.
Là on voit bien qu’il s’agit du menu de GRUB. C’est écrit dessus, comme le Port-Salut.
Ça veut dire que ce n’est plus le même GRUB, c’est celui d’Ubuntu qui a démarré et non celui de Debian. La cause la plus courante est qu’Ubuntu a réinstallé son GRUB et l’a réenregistré dans les variables de boot EFI, ce qui a pour effet habituel de le mettre en première position dans l’ordre de boot EFI. Mais si cela se produit après une mise à jour de Debian, la cause est forcément différente et liée à une anomalie lors du réenregistrement du GRUB de Debian dans les variabes de boot EFI. Je vois plusieurs explications possibles :
Le réenregistrement a mal fonctionné et supprimé l’entrée de boot EFI de Debian (ou sa présence dans l’ordre de boot), ne laissant que celle d’Ubuntu.
Le réenregistrement a mal fonctionné et supprimé toutes les entrées de boot EFI (ou leur présence dans l’ordre de boot), ne laissant comme option que le chargeur d’amorçage de secours qui pourrait avoir été installé par Ubuntu (j’ignore si Ubuntu installe un chargeur de secours comme Windows le fait).
Le réenregistrement a altéré l’ordre de boot EFI et mis Ubuntu en premier devant Debian.
Pour vérifier ces hypothèses, il aurait fallu examiner les variables de boot EFI après le démarrage avec la commande efibootmgr.
Pour éviter que cela se produise, il faudrait empêcher que la réinstallation de GRUB le réenregistre dans les variables de boot EFI. Mais le seul moyen d’y parvenir que je connais consiste à désinstaller le paquet grub-efi-amd64 pour empêcher la réinstallalation automatique de GRUB lors de la mise à jour des paquets grub*, et à réinstaller GRUB manuellement sans le réenregistrer avec la commande suivante (mais il faut y penser) :
grub-install --no-nvram --force-extra-removable
L’option --no-nvram évite de mettre à jour les variables de boot EFI et l’option --force-extra-removable installe une copie de GRUB en tant que chargeur de secours, qui peut fonctionner en l’absence d’entrée de boot EFI.
je vais laisser grub tel quel et la prochaine fois que je me retrouve sur ubuntu je contrôlerai les variables de boot EFI à partir de ubuntu afin d’en savoir un peu plus .
tant que je serai sur ubuntu y-a-t-il un moyen de savoir s’il a installé un chargeur de secours ?
Tu peux déjà le faire maintenant depuis Debian pour avoir un point de comparaison avant/après. Et pas besoin de laisser Ubuntu démarrer, si tu vois que c’est le GRUB d’Ubuntu tu peux directement sélectionner Debian.
Tu peux deja vérifier le contenu de la partition EFI depuis Debian avec
find /boot/efi
Le chargeur de secours serait dans /boot/efi/EFI/Boot, à condition qu’Ubuntu et Debian utilisent la même partition EFI.
c’est bien le cas puisqu’il n’y a qu’une seule partition EFI sur sda1 . Voici le résultat ( désolé pour la présentation du texte dans un terminal mais je ne sais pas quelles balises utiliser avec ce nouveau système ) :
mm@ssd1:~$ sudo find /boot/efi
[sudo] Mot de passe de mm :
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/debian
/boot/efi/EFI/debian/grubx64.efi
/boot/efi/EFI/debian/shimx64.efi
/boot/efi/EFI/debian/mmx64.efi
/boot/efi/EFI/debian/fbx64.efi
/boot/efi/EFI/debian/BOOTX64.CSV
/boot/efi/EFI/debian/grub.cfg
/boot/efi/EFI/Boot
/boot/efi/EFI/Boot/fbx64.efi
/boot/efi/EFI/Boot/bootx64.efi
/boot/efi/EFI/ubuntu
/boot/efi/EFI/ubuntu/grubx64.efi
/boot/efi/EFI/ubuntu/shimx64.efi
/boot/efi/EFI/ubuntu/mmx64.efi
/boot/efi/EFI/ubuntu/BOOTX64.CSV
/boot/efi/EFI/ubuntu/grub.cfg
/boot/efi/EFI/ubuntu/fw
/boot/efi/EFI/ubuntu/fwupx64.efi
Il y a bien un chargeur de secours. Par contre ce n’est pas évident de voir s’il a été installé par Debian ou Ubuntu. Peut-être en comparant les dates des fichiers avec ceux dans /boot/efi/EFI/debian et /boot/efi/EFI/ubuntu.
sudo efibootmgr
[sudo] Mot de passe de mm :
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0000,2001,2002,2003
Boot0000* ubuntu
Boot0001* debian
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network