[solved]GRUB Config durcheinander

Hallo zusammen!

wie der Titel schon sagt, ist irgendwas bei der Grub Konfiguration durcheinander geraten. Beim rebooten, möchte Grub immer eine ältere Kernel-Version laden, ich muss das dann von Hand in der /boot/grub/grub.cfg ändern. Der neu installierte 4.17 erscheint nichtmal im erweiterten Menü für Manjaro.
Wenn ich Grub-Customizer öffne, dann werden mir die entsprechenden Einträge (4.16 und 4.17) angezeigt, allerdings kann ich nicht speichern. Es wird ein Syntax Error bei Zeile 95 gemeldet.
Wäre jetzt mal interessant in welcher File. Die /etc/default/grub ist jedenfalls in Ordnung, die /boot/grub/grub.cfg habe ich mal angehängt. Mit den Dateien in /etc/grub.d kenne ich mich gar nicht aus.
Angefangen hat das ganze als ich den Hybriden Standby Modus nutzen wollte und mit den “hibernator” genutzt hatte, statt einfach in den Settings die Einstellung zu wählen (:thinking::rage:)

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

set menu_color_normal=light-gray/black
set menu_color_highlight=green/black

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
else
  search --no-floppy --fs-uuid --set=root acbc962b-37f4-4a24-b686-70ba3cee0640
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=1920x1080x24
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=de_DE
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=1
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=1
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/01_grub-customizer_menu_color_helper ###
set color_normal=light-gray/black
set color_highlight=green/black
### END /etc/grub.d/01_grub-customizer_menu_color_helper ###

### BEGIN /etc/grub.d/10_linux_proxy ###




### END /etc/grub.d/10_linux_proxy ###

### BEGIN /etc/grub.d/40_custom_proxy ###
menuentry "Manjaro" --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-acbc962b-37f4-4a24-b686-70ba3cee0640' {
	savedefault
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_gpt
	insmod ext2
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
	else
	  search --no-floppy --fs-uuid --set=root acbc962b-37f4-4a24-b686-70ba3cee0640
	fi
	echo	'Linux 4.16.14-2-MANJARO x64 wird geladen …'
	linux	/boot/vmlinuz-4.16-x86_64 root=UUID=acbc962b-37f4-4a24-b686-70ba3cee0640 rw  quiet radeon.dpm=1 resume=UUID=3f38bb41-24d8-4475-b580-f2a49e3516ee
	echo	'Initiale Ramdisk wird geladen …'
	initrd	/boot/intel-ucode.img /boot/initramfs-4.16-x86_64.img
}
### END /etc/grub.d/40_custom_proxy ###

### BEGIN /etc/grub.d/43_linux_proxy ###
submenu "Erweiterte Optionen für Manjaro Linux"{
menuentry "Manjaro Linux (Kernel: 4.16.14-2-MANJARO x64)" --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.16.14-2-MANJARO x64-advanced-acbc962b-37f4-4a24-b686-70ba3cee0640' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
		else
		  search --no-floppy --fs-uuid --set=root acbc962b-37f4-4a24-b686-70ba3cee0640
		fi
		echo	'Linux 4.16.14-2-MANJARO x64 wird geladen …'
		linux	/boot/vmlinuz-4.16-x86_64 root=UUID=acbc962b-37f4-4a24-b686-70ba3cee0640 rw radeon.dpm=1 quiet
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/intel-ucode.img /boot/initramfs-4.16-x86_64.img
}
menuentry "Manjaro Linux (Kernel: 4.16.14-2-MANJARO x64 - fallback initramfs)" --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.16.14-2-MANJARO x64-fallback-acbc962b-37f4-4a24-b686-70ba3cee0640' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
		else
		  search --no-floppy --fs-uuid --set=root acbc962b-37f4-4a24-b686-70ba3cee0640
		fi
		echo	'Linux 4.16.14-2-MANJARO x64 wird geladen …'
		linux	/boot/vmlinuz-4.16-x86_64 root=UUID=acbc962b-37f4-4a24-b686-70ba3cee0640 rw radeon.dpm=1 quiet
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initramfs-4.16-x86_64-fallback.img
}
menuentry "Manjaro Linux (Kernel: 4.16.14-2-MANJARO x64 - recovery mode)" --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.16.14-2-MANJARO x64-recovery-acbc962b-37f4-4a24-b686-70ba3cee0640' {
		load_video
		set gfxpayload=keep
		insmod gzio
		insmod part_gpt
		insmod ext2
		if [ x$feature_platform_search_hint = xy ]; then
		  search --no-floppy --fs-uuid --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
		else
		  search --no-floppy --fs-uuid --set=root acbc962b-37f4-4a24-b686-70ba3cee0640
		fi
		echo	'Linux 4.16.14-2-MANJARO x64 wird geladen …'
		linux	/boot/vmlinuz-4.16-x86_64 root=UUID=acbc962b-37f4-4a24-b686-70ba3cee0640 rw single radeon.dpm=1
		echo	'Initiale Ramdisk wird geladen …'
		initrd	/boot/initramfs-4.16-x86_64-fallback.img
}
}
### END /etc/grub.d/43_linux_proxy ###

### BEGIN /etc/grub.d/44_linux_xen ###
### END /etc/grub.d/44_linux_xen ###

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


### END /etc/grub.d/45_os-prober_proxy ###

### BEGIN /etc/grub.d/46_custom_proxy ###
menuentry "Windows 10" --class windows --class os $menuentry_id_option 'osprober-efi-32AE-6DFD' {
	savedefault
	insmod part_gpt
	insmod fat
	if [ x$feature_platform_search_hint = xy ]; then
	  search --no-floppy --fs-uuid --set=root  32AE-6DFD
	else
	  search --no-floppy --fs-uuid --set=root 32AE-6DFD
	fi
	chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/46_custom_proxy ###

### BEGIN /etc/grub.d/47_custom_proxy ###

# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.


### END /etc/grub.d/47_custom_proxy ###

### BEGIN /etc/grub.d/48_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/48_custom ###

### BEGIN /etc/grub.d/60_memtest86+ ###
if [ "${grub_platform}" == "pc" ]; then
    menuentry "Memory Tester (memtest86+)" --class memtest86 --class gnu --class tool {
        search --fs-uuid --no-floppy --set=root  acbc962b-37f4-4a24-b686-70ba3cee0640
        linux16 /boot/memtest86+/memtest.bin 
    }
fi
### END /etc/grub.d/60_memtest86+ ###

Finger weg von der grub.cfg. Bei jedem update-grub wird das sowieso alles neu erstellt. Und das waere dann auch schon meine Frage: Hast du ein

$ sudo update-grub

gemacht?

Normalerweise würde ich da auch die Finger raus lassen, aber es ging ja jetzt nicht mehr anders, es sollte immer 4.14 gebootet werden, ist aber nicht mehr vorhanden.

$ sudo update-grub

habe ich gemacht, hier mal die Ausgabe:

GRUB-Konfigurationsdatei wird erstellt …
Hintergrund gefunden: /home/mkr/Bilder/Cliparts, Wallpapers & Screensaver/grub/background.png
Linux-Abbild gefunden: /boot/vmlinuz-4.17-x86_64
initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-4.17-x86_64.img
Found initrd fallback image: /boot/initramfs-4.17-x86_64-fallback.img
Linux-Abbild gefunden: /boot/vmlinuz-4.16-x86_64
initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-4.16-x86_64.img
Found initrd fallback image: /boot/initramfs-4.16-x86_64-fallback.img
Linux-Abbild gefunden: /boot/vmlinuz-4.17-x86_64
initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-4.17-x86_64.img
Found initrd fallback image: /boot/initramfs-4.17-x86_64-fallback.img
Linux-Abbild gefunden: /boot/vmlinuz-4.16-x86_64
initrd-Abbild gefunden: /boot/intel-ucode.img /boot/initramfs-4.16-x86_64.img
Found initrd fallback image: /boot/initramfs-4.16-x86_64-fallback.img
Windows Boot Manager auf /dev/nvme0n1p2@/EFI/Microsoft/Boot/bootmgfw.efi gefunden
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: Warnung: Unbekannter Gerätetyp nvme0n1.
Fehler: syntax error.
Fehler: Incorrect command.
Fehler: syntax error.
Syntaxfehler in Zeile 95
In der erzeugten GRUB-Konfigurationsdatei wurden
Syntaxfehler entdeckt. Stellen Sie sicher, das die Dateien
/etc/default/grub und /etc/grub.d/* fehlerfrei sind oder
erstellen Sie einen Fehlerbericht mit /boot/grub/grub.cfg.new als Anhang.

Den nvme Fehler kannst du ignorieren. So wie ich das sehe, liegt der Fehler in einer der Dateien in /etc/grub.d. Wahrscheinlich 10_linux. Bin mir nicht sicher. Vielleicht hilft ein

$ sudo grub-install
$ sudo update-grub

Sorry muss jetzt leider arbeiten :slight_smile:

Ok, dann schaue ich mir mal die 10_linux an.
Dann mal frohes schaffen, und danke schon mal!

Ich habe jetzt in /etc/grub.d/backup mir mal die RESTORE_INSTRUCTIONS angeschaut und /etc/grub.d sowie /etc/default/grub wiederhergestellt. Nach der Wiederherstellung von grub.d brachte

$ sudo update-grub

noch den selben Fehler. Nachdem ich die /etc/default/grub wiederhergestellt hatte, kein Fehler mehr.

Also die Fehlermeldungen habe ich weg bekommen, allerdings wurde immernoch versucht 4.14 zu booten. Habe das jetzt aber in den entsprechenden Startscripten mit Hilfe des grub-customizer angepasst.
Da es jetzt wieder funktioniert markiere ich das Thema als gelöst. Sollte bei einem update-grub, wieder irgendwie 4.14 auftauchen, werde ich nochmal tiefer in /etc/grub.d nachsehen. Vielen Dank!

Seltsam. In der grub.cfg, die du gepostet hast, taucht der 4.14 Kernel garnicht auf. Und in Zeile 95 steht nichts. Direkt danach kommt aber ein Eintrag des Customizers

### BEGIN /etc/grub.d/01_grub-customizer_menu_color_helper ###
set color_normal=light-gray/black
set color_highlight=green/black
### END /etc/grub.d/01_grub-customizer_menu_color_helper ###

Dort muesste es aber eigentlich “set menu_color_xxxxx” heissen.
Ich wuerde dann doch mal grub neu installieren. Da scheint wirklich noch was schief zu laufen.

Uninstall grub-customizer.
It is more trouble than is worth it.

Remember if you uninstall grub-customizer, you still have to remove those grub-customizer things in /etc/grub.d.

Uninstall grub-customizer
Remove /etc/grub.d things
Reinstall grub package
grub-install
update-grub

All done without shutdown or reboot.

1 Like

Ok, that seems to solve the 4.14 issue. Grub installed and updated correctly. But now I have duplicate for each entry. How can I manually configurate the menu entries?

There is one (or more) things in /etc/grub.d that you should remove.
I forgot what this was, I think there is 2 os-prober things. 30_os-prober and 31_os-prober (or something like that. Remove the 31_os-prober and do ‘update-grub’ one more time.

If unsure,

ls /etc/grub.d

So we can take a look at it. Maybe there’s more to remove.

ps: Sorry, I’m unsure because I tested (for a few hours and long time back) grub-customizer and removed it shortly after. But I did tested a lot of things there.
And it wasn’t good too for other OS’s (I tested also in Ubuntu).

Ok, I’m unshure too about what to remove, so here is ls /etc/grub.d

00_header       20_linux_xen  40_custom_proxy  42_linux_xen        45_custom_proxy  backup      proxifiedScripts
10_linux        30_os-prober  41_custom        43_os-prober_proxy  46_custom        bin         README
10_linux_proxy  40_custom     41_linux_proxy   44_custom_proxy     60_memtest86+    etc_grub_d

No need to hurry, my system is booting so it’s just cosmetics :smiley:

You should remove these (and do ‘update-grub’ after that)
10_linux_proxy
40_custom_proxy
41_linux_proxy
43_os-prober_proxy
44_custom_proxy
45_custom_proxy
proxifiedScripts

ps: seems like there’s more things now than the last time I tested grub-customizer.

1 Like

Ok, that worked! So if I want to edit the entries, I should look into /etc/grub.d?
Because I want just Manjaro instead of Manjaro Linux and just Windows 10 instead of Windows 10 (Windows Bootloader on nvme0n1p2)

No, you shouldn’t. grub.d should not be touched outside of the OS. Not by user, not by grub-customizer. There are some ‘tricks’ one could do. But I’d suggest you don’t do them but read up on them first.

  1. Modify directly /boot/grub/grub.cfg, like in grub-legacy.
    But like in grub-legacy, it will change back on any grub-install, update-grub and so any kernel changes and we will need to redo. grub 2 developers will put in a strong warning not to do it.
    And if using KDE, it is difficult to change system files unless we use ‘SUDO_EDITOR=kate sudoedit’ to work around the ‘protection’ KDE developers put into place. Personally, like in grub-legacy, I think it’s okay, if we know what we’re doing.
  2. Put all other entries in custom and disable os-prober.
    But the ‘main’ OS will still have the names we do not want.
    And if we not modify or make some adjustment where we do not need to make modification, we will have to change entries in custom for any kernel change.
  3. This is what I use. No OS controls it and I made it so that I do not have to modify anything with any kernel change anywhere. If we do not have more than 3 linux OS’s, I think it is not worth the effort. But I have plenty OS’s. :smiley:

Let me know if you need more information. But put a @gohlip so I can be sure I read them. I normally do not read other languages forum.

Cheers.

@gohlip Thank you very much! I only have Manjaro and Windows installed so point 3 is not worth the effort. The easiest way for me seems to just modify the /boot/grub/grub.cfg. Usually I don’t change kernels on my PC as often as on my Phone (:rofl:) so I would be totally ok with redoing the changes after kernel updates. Thank you once again!

Cheers!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by Bytemark