update-grub の grub.cfg に構文エラーがあります。

update-grub の grub.cfg に構文エラーがあります。

update-grubUbuntu 20.04を実行していますが、コマンドを実行すると次のエラーが発生します。

root@ubuntu:/# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Création du fichier de configuration GRUB…
Image Linux trouvée : /boot/vmlinuz-5.8.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.8.0-25-generic
Image Linux trouvée : /boot/vmlinuz-5.4.0-53-generic
CentOS Linux 8 (Core) trouvé sur /dev/sdb9
Image Linux trouvée : /boot/vmlinuz-5.8.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.8.0-25-generic
Image Linux trouvée : /boot/vmlinuz-5.4.0-53-generic
CentOS Linux 8 (Core) trouvé sur /dev/sdb9
Image Linux trouvée : /boot/vmlinuz-5.8.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.8.0-25-generic
Image Linux trouvée : /boot/vmlinuz-5.4.0-53-generic
Image Linux trouvée : /boot/vmlinuz-5.8.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.8.0-25-generic
Image Linux trouvée : /boot/vmlinuz-5.4.0-53-generic
CentOS Linux 8 (Core) trouvé sur /dev/sdb9
Image Linux trouvée : /boot/vmlinuz-5.8.0-25-generic
Image mémoire initiale trouvée : /boot/initrd.img-5.8.0-25-generic
Image Linux trouvée : /boot/vmlinuz-5.4.0-53-generic
Adding boot menu entry for UEFI Firmware Settings
erreur : syntax error.
erreur : Incorrect command.
erreur : syntax error.
erreur : Incorrect command.
erreur : syntax error.
Erreur de syntaxe à la ligne 159
Des erreurs de syntaxe sont détectées dans le fichier de configuration
de GRUB. Veuillez vérifier qu'il n'y a pas d'erreur dans les fichiers
/etc/default/grub et /etc/grub.d/*. Sinon veuillez signaler un bogue
en joignant le fichier /boot/grub/grub.cfg.new.

提案されているように、159行目でファイルを確認しました/boot/grub/grub.cfg.new

152 ### END /etc/grub.d/31_linux_xen ###
153 
154 ### BEGIN /etc/grub.d/34_memtest86+ ###
155 ### END /etc/grub.d/34_memtest86+ ###
156 
157 ### BEGIN /etc/grub.d/35_os-prober_proxy ###
158 submenu "Options avancées pour Ubuntu"{
159 function gfxmode {
160         set gfxpayload="${1}"
161         if [ "${1}" = "keep" ]; then
162                 set vt_handoff=vt.handoff=7
163         else
164                 set vt_handoff=
165         fi
166 }
167 if [ "${recordfail}" != 1 ]; then
168   if [ -e ${prefix}/gfxblacklist.txt ]; then
169     if hwmatch ${prefix}/gfxblacklist.txt 3; then
170       if [ ${match} = 0 ]; then
171         set linux_gfx_mode=keep
172       else
173         set linux_gfx_mode=text
174       fi
175     else
176       set linux_gfx_mode=text
177     fi
178   else
179     set linux_gfx_mode=keep
180   fi
181 else
182   set linux_gfx_mode=text
183 fi
184 export linux_gfx_mode

158行目に「{」が閉じない問題があるようですが、submenu "Options avancées pour Ubuntu"{そのソースが見つかりません...

始動復旧しようとしました(この回答でわかるように)GRUBエラー:構文エラーです。エラー:無効なコマンド)しかし、始めるための最初のコマンドは次のとおりです。 sudo chroot "/mnt/boot-sav/mapper/isw_cbgbbifgbg_Volume1p2" dpkg --configure -a 同じ構文エラーの問題が発生しました。

答え1

コマンドupdate-grubの実行後、grub-mkconfig -o /boot/grub/grub.cfg "$@"ディレクトリのスクリプトが実行されます/etc/grub.d/grub.cfg次のコメント行でこれらのスクリプトが生成するもの

### BEGIN /etc/grub.d/35_os-prober_proxy ###

grub.cfgファイルの各セクションを担当するスクリプトを表します。

あなたの場合は、その/etc/grub.d/35_os-prober_proxyスクリプトとディレクトリのすぐ後ろにあるスクリプト(デフォルトのASCII英数字ソート順)を調べる必要があります。

一方、私のDebian 10システムでは、この行は通常のLinuxブートエントリを生成するfunction gfxmode {出力の一部であり、Xenスタイルの仮想化(インストールされている場合)のブートエントリを生成する別のスクリプトがあります。その後、他のオペレーティングシステムの起動項目を検索して追加します。明らかに、Ubuntuは仕事を少し異なっていますが、一部の部品が何らかの方法で誤って製造されている可能性があると疑います。/etc/grub.d/10_linux20_linux_xen30_os-probergrub.cfg

答え2

そして

  • デビー・アントリクシー
  • グラップカスタマイザ5.2.3

ランニング:

sudo cp /boot/grub/grub.cfg.new /. # put your home path here
sudo rm /boot/grub/grub.cfg.new
grub-customizer 

次に、復元ボタン(右上)を押して適用します。

関連情報