Update-grub ne fonctionne pas

Bonjour à tous,
Je voudrais modifier la configuration de grub2
mais quand je lance update-grub ça coince :

Generating grub configuration file ...

Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-7.0.4+deb14-amd64
Found initrd image: /boot/initrd.img-7.0.4+deb14-amd64
Found linux image: /boot/vmlinuz-6.19.14+deb14-amd64
Found initrd image: /boot/initrd.img-6.19.14+deb14-amd64
Found memtest86+ 64bit EFI image: /boot/mt86+x64
Found memtest86+ 32bit EFI image: /boot/mt86+ia32
Found memtest86+ 64bit image: /boot/mt86+x64
Found memtest86+ 32bit image: /boot/mt86+ia32
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings …
erreur : …/…/grub-core/script/lexer.c:352:syntax error.
erreur : …/…/grub-core/script/lexer.c:352:Incorrect command.
erreur : …/…/grub-core/script/lexer.c:352:syntax error.
Erreur de syntaxe à la ligne 196
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.

et là je pas quoi faire …
« grub-core/script/lexer.c » je vois pas ce que c’est …

je suis sous testing en CSM (pas EFI), pas de secure boot

si vous aviez une petite suggestion …
merci d’avance !

Bonjour,

tu fait bien l’update en root?
Quel est ton fichier /etc/default/grub? Tu n’as pas touché au fichier grub.cfg? Car les message sont probablement consécutif à une erreur de syntaxe.
Pourquoi as-tu du memtest EFI si tu n’es pas en UEFI?

Merci d’intervenir Zargos

oui l’update est fait sous root
j’ai modifié uniquement le fichier /etc/default/grub

que voici :

# If you change this file or any /etc/default/grub.d/*.cfg file,
# run 'update-grub' afterwards to update /boot/grub/grub.cfg.
# For full documentation of the options in these files, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT="0"
GRUB_TIMEOUT="1"
GRUB_DISTRIBUTOR="`( . /etc/os-release && echo ${NAME} )`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet fsck.mode=auto"
GRUB_CMDLINE_LINUX=""

# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
 GRUB_DISABLE_OS_PROBER="true"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal
#GRUB_TERMINAL="console"

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE/GOP/UGA
# you can see them in real GRUB with the command `videoinfo'
#GRUB_GFXMODE="640x480"

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
  • Pourquoi as-tu du memtest EFI si tu n’es pas en UEFI?*

alors là … je voudrais aussi comprendre …

GRUB_TIMEOUT="1"

Change à 5 que tu aies le temps de voir et éventuellement de réagir.
Ca ne sert à rien d’avoir un menu si tu ne peux pas t’en servir.

Enlève fsck.mode=auto, ça ne sert à rien, le système le fait automatiquement au démarrage en fonction de tes paramètres dans /etc/fstab.

oui mais ces changements restent inopérants car update-grub me renvoie toujours le même message d’erreur (v mon 1er post) …pas moyen d’actualiser ces changements

Bonjour,

La ligne

> GRUB_DISTRIBUTOR="`( . /etc/os-release && echo ${NAME} )`"

les " " sont pas en trop ?

Non du tout. Le paramètre nécessite d’avoir le contenu entre guillemets. entre les guillemets c’est une commande shell, dont le résultat contient un espace:

~$ . /etc/os-release && echo ${NAME}
Debian GNU/Linux

Est-ce qu’à un moment tu as suivi un tuto quelconque, ou modifié des fichier dans /etc/grub.d/ ?

Enlève les guillemets ici.

Merci pour vos avis
Zargos :
non je n’ai pas suivi un tuto ni modifié des fichiers dans /etc/grub.d

j’ai supprimé les «  » autour de true

je me demande : réinstaller « grub » ? dans ce cas les commandes de grub sont-elles relancées automatiquement (update, grub-install …) ?

autre question : c’est quoi ces fichiers ? :
…/…/grub-core/script/lexer.c:352:syntax error.
malgré des recherches dans l’arborescence, je n’en trouve pas trace

Commence par identifier la ligne exact, tu as forcèment modifié quelque chose, l’erreur à la ligne 196 n’est pas venue de nulle part :

grub-script-check /boot/grub/grub.cfg.new

A première vue ton /etc/defaut/grub à l’ai correct ce doit donc être dans le custom ou autre ?
Qu’as-tu modifier en fait ?

Bonjour Clochette,

grub-script-check /boot/grub/grub.cfg.new
erreur : ../../grub-core/script/lexer.c:352:syntax error.
erreur : ../../grub-core/script/lexer.c:352:Incorrect command.
erreur : ../../grub-core/script/lexer.c:352:syntax error.
Erreur de syntaxe à la ligne 226

la seule donnée que j’ai essayé de changer d’emblée c’est le paramètre
GRUB_DEFAULT

erreur à la ligne 226 du fichier engendré boot-cfg.new je suppose ? ; mais quand on parle d’une ligne untel les lignes vides ou commentées sont-elles prises en compte ?

Simple, tu ouvres avec vim ton fichier et ensuite un petit :set nu et tes lignes seront numérotées, et pour répondre à ta question oui une ligne vide est comptée.

Par contre comment tu passe d’une erreur ligne 196 à la ligne 226 en ayant juste changé un truc ?

Pour information c’est à coup sûr tes modifs précédentes qui sont en cause, normalement avant de modifier on fais une copie que l’on pose à l’abri :wink:

Pour se déplacer à la bonne ligne, 226, dans vim : :226
Normalement le numéro de ligne et colonne où est ton curseur s’affiche en bas à droite

Clochette :
pq passer de la ligne 196 à la 226 ?
je crois que c’est pcq à chaque fois que je fais un update une nouvelle entrée menu memory test se surajoute (pq ?) ; j’en suis à 11 entrées memory test
par curiosité j’ai lancé grub-customizer : il m’en propose 22 « memory test » à cocher dans la configuration de liste (je n’ai pas enregistré)

Zargos :
sinon la ligne 226 c’est « insmod ext2 » dans une entrée memory test précisément

ce n’etait qu’un exemple pour la commande dans vim :slight_smile:

Zargos : la ligne 226 est bien celle référencée par l’application comme contenant une erreur
mais en quoi « insmod ext2 » est-ce un erreur ?

poste le ici :wink:

Clochette, je suppose qu’il s’agit de poster la ligne déclarée erronée ?
le boot-cfg a été modifié à l’occasion d’une réinstallation (réussie) du noyau 7
tjrs avec une erreur, mais il m’a suffit d’utiliser le fichier grub.cfg.new et tout fonctionne

l’erreur (en ligne 262 maintenant) porte sur la ligne « fi » d’une instruction conditionnelle !!! :

if [ « $grub_platform » = efi -a « $grub_cpu » = i386 ]; then
fi

bon à moins que vous ayez une remarque à faire, Zargos et Clochette, je propose de clore le sujet les choses fonctionnant de manière satisfaisante
merci en tout cas pour vos interventions respectives