Comment mettre à jour Grub?

Bonjour,

Je ne débute pas avec Debian.
Jusqu’à présent Je n’avais expérimenté la distribution qu’en émulation avec VirtualBox.
Mais je viens de franchir le pas et j’ai installé Debian en dual-boot avec Windows.

Toutefois je voudrais modifier l’affichage de l’amorçage grub en bootant par défaut sur Windows.

J’ai édité le fichier /etc/defaut/grub :
et ai modifié l’entrée GRUB_DEFAULT en:

GRUB_DEFAULT=2

pour indiquer la position de Windows dans le grub.
Débutant en dual-boot je suis loin de maîtriser GRUB .
Et je n-ai pas tout saisi.
Mais j’ai lu dans la doc qu’il fallait passer une commande de mise à jour du blog « update-grub »

Ce que j’ai fait et ça me donne:

root@Debian:/home/hjg# update-grub
bash: update-grub : commande introuvable
root@Debian:/home/hjg#

« commande introuvable », donc
Je recherche alors update-grub et j’obtiens:

root@Debian:/home/hjg# find / -name update-grub
/usr/sbin/update-grub
find: ‘/proc/3096/task/3096/net’: Argument invalide
find: ‘/proc/3096/net’: Argument invalide
find: ‘/run/user/1000/doc’: Permission non accordée
find: ‘/run/user/1000/gvfs’: Permission non accordée
root@Debian:/home/hjg#

find me trouve un fichier update-grub en « /usr/sbin/update-grub »

Je tente alors:

root@Debian:/home/hjg# /usr/sbin/update-grub
/usr/sbin/update-grub: 3: exec: grub-mkconfig: not found
root@Debian:/home/hjg#

à l’évidence ça ne marche pas.

Quelqu’un peut-il m’indiquer la marche à suivre pour mettre à jour grub après avoir modifier son fichier de configuration « /etc/defaut/grub »?

Merci pour votre aide.

Je ne réponds pas vraiment à ta question, mais tu peux installer rEFInd (si ton PC est équipé de l’UEFI, ce qui doit être le cas, sauf s’il date de Mathusalem) :

sudo apt install refind

C’est simple, et tu peux avoir un bel écran de boot graphique en allant choisir un thème.

Capture d’écran du 2025-10-22 09-53-08

Je te renvoie vers l’article que j’avais fait quand je suis passé à rEFInd :

Par défaut, rEFInd démarres sur le dernier choix effectué, mais tu peux changer cela en éditant le fichier /boot/efi/EFI/refind/refind.conf, et modifier la variable default_selection.

Avant de passer à quoique ce soit d’autre, il faut déjà identifier ce qui ne va pas.
Résoudre un problème ne se fait pas en contournant le problème. car il peut y avoir une problématique sous jacente qui resortira.

Apparemment il manque des paquets chez toi.
Donne nous le résultats de :
dpkg --list | grep -i grub
en root, donne:
echo $PATH

Quand tu as installé, as-tu choisi grub ou systemd-boot?

Je suis tout à fait d’accord avec toi, et c’est pour ça que j’ai commencé par :

Rappelons que Grub n’est conservé que pour une seule raison : la compatibilité avec les vieux PCs qui n’ont pas d’(U)EFI. Or GRUB est complexe, statique, avec des fichiers de configurations pas évidents à modifier. Donc pourquoi ne passer à autre chose, plus moderne, dynamique et facile à configurer ?

à 99,99% , la réponse est dans le

qui va te donner /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
alors qu’il devrait te donner /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
( PATH est la variable où tu vas chercher les programmes quand tu n’écris pas toute la ligne )
or

# which update-grub

montre que le programme est
/usr/sbin/update-grub
donc le PATH doit avoir /usr/sbin
s’il ne l’a pas n’essaie pas la commande directement car d’autres programmes risquent d’être absent : loggue toi correctement en root

pour aller en « root » tu n’utilises pas la bonne commande
il y en a plusieurs , zargos te donnera la sienne , la mienne est sudo -s ; je crois que la sienne est su -

et accessoirement si tu n’as pas autorisé su - d’utiliser sudo su -

Merci à tous pour vos contributions
Je n’ai pas le temps de les étudier ce soir
Je verrai ça demain matin
Cordialement

Bonjour à tous,

Je reviens à vous
Tout d’abord quelques précisions

Ma configuration Debian :

hjg@Debian:~$ uname -a 
Linux Debian 6.12.48+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.48-1 (2025-09-20) x86_64 GNU/Linux 
hjg@Debian:~$  

Je précise que je suis en UEFI Secure Boot

L’installation s’est faite il y a cinq jours à partir de la dernière image ISO téléchargée sur le site debian.org

@pled

Merci pled pour ta suggestion d’installer à la place de GRUB rEFInd .
Mais je préfère régler la question du GRUB avant de passer à autre chose,
Au demeurant je trouve ta page très bien faite :

Juste une question : lorsqu’on installe rEFInd ne risque-t-il pas d’entrer en conflit avec GRUB préinstallé ?

@Zargos

Je réponds à tes demandes :

root@Debian:~# ls /boot/efi/EFI/debian/*.efi 
/boot/efi/EFI/debian/fbx64.efi    /boot/efi/EFI/debian/mmx64.efi 
/boot/efi/EFI/debian/grubx64.efi  /boot/efi/EFI/debian/shimx64.efi 
root@Debian:~# dpkg --list | grep -i grub 
ii  grub-common                                         2.12-9                               amd64        GRand Unified Boot
loader (common files) 
ii  grub-efi-amd64                                      2.12-9                               amd64        GRand Unified Boot
loader, version 2 (EFI-AMD64 version) 
ii  grub-efi-amd64-bin                                  2.12-9                               amd64        GRand Unified Boot
loader, version 2 (EFI-AMD64 modules) 
ii  grub-efi-amd64-signed                               1+2.12+9                             amd64        GRand Unified Boot
loader, version 2 (amd64 UEFI signed by Debian) 
ii  grub-efi-amd64-unsigned                             2.12-9                               amd64        GRand Unified Boot
loader, version 2 (EFI-AMD64 images) 
ii  grub2-common                                        2.12-9                               amd64        GRand Unified Boot
loader (common files for version 2) 
root@Debian:~# ^C

et pour le path :

avec le logging su

root@Debian:/home/hjg# echo $PATH 
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games 
root@Debian:/home/hjg#  

avec le logging su -

root@Debian:~# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 
root@Debian:~#  

Conclusion :
je n’ai pas le bon $PATH si je me logue en su
Il faut que je me logue en su -

à l’installation je n’ai pas eu le choix,
Il m’a installé automatiquement GRUB

@dindown

Oui j’avais bien saisi que j’avais un problème de path,

find me trouve un fichier update-grub en « /usr/sbin/update-grub »

il faut donc que j’ai /usr/sbin dans le $PATH

Si je me logue en root par la commande su je n’ai pas le bon $PATH
Par contre si je me logue en root par « su - » j’ai le bon $PATH

CONCLUSION :
Pour lancer la commande « update-grub » il faut en root par « su - »

J’ai passé la commande update-grub et tout a bien fonctionné
Problème résolu

Merci à tous

Merci @nonsolum
Non pas de risque de conflit, rEFInd détectera GRUB et tu pourras aussi démarrer via GRUB.

la différence c’est le - qui impose l’environnement root, alors que sans, il conserve l’environnement du user; d’où la différence de $PATH.

En fait:
Si tu es USER1 et que tu veux faire un su vers USER2 tu fait:
su $USER2 [-]
les [] c’est pour signifier que c’est optionnel.
Si USER2 c’est root, alors il peut etre omis.
Sans - c’est environnement USER1, avec c’est environnement USER2.

Tu n’as pas fait d’installation expert? Il vaut mieux faire son installation en expert, car les installation par défaut de Debian ne sont pas terribles.
En expert, au moment de l’installation du boot loader, tu as le choix entre GRUB et systemd-boot.
En mode Secure Boot (comme en disque chiffré d’ailleurs) systemd-boot est meilleur que GRUB et moins lourdingue.