macstar
Anmeldungsdatum: 24. Mai 2010
Beiträge: 334
|
Ich verwende eine original Kubuntu 14.04 auf meinem Notebook in Dualboot mit Windows 7.
Das hat auch soweit immer gut geklappt, bis ich angefangen habe die Kernel für Kubuntu manuell vorab zu updaten.
(http://kernel.ubuntu.com/~kernel-ppa/mainline - Seit heute aktuell 3.15.7)
Irgendwann war das Bootmenu unübersichtlich. Alte Kernel habe ich per Ubuntu-Tweak rausgeworfen.
Meine Grub config mit Grub customizer angepasst und dabei muss mir irgendein Fehler passiert sein: Im Grub Customizer sieht das ganze nun wie folgt aus:
http://s17.postimg.org/oveuev43j/grubcustomizer1.jpg Obwohl ich mehrmals die Config so gespeichert und zusätzlich in den MBR geschrieben habe (Keinerlei Fehlermeldung), sah der Bootloader danach immer noch anders aus.
http://s30.postimg.org/xs830mk01/grub2.jpg Dieses Grub2 Config Tool habe ich erst heute entdeckt und installiert. Komischerweise listet es noch alte Kernel auf, die ich längst deinstalliert habe und die Einträge lassen sich dementsprechend auch nicht booten.
Die darin integrierte Installation/Wiederherstellungsfunktion für Grub habe ich ebenfalls getestet und Grub nochmals auf /dev/sda4 installiert, keine Fehlermeldung, aber auch keine Änderung. Ich habe dann mal ins Verzeichnis
/boot/grub/ meiner Systempartition navigiert, dort ist die grub.cfg und auch eine grub.cfg.new. letzere wurde definitiv vom grub config tool erstellt, allerdings nicht verwendet und mir ist auch nicht ganz klar, wieso die grub.cfg nicht überschrieben wird/wurde. Im Programm keine Fehlermeldung, nichts, auch ein manuelles grub update über die Konsole hilft nicht. –> Umbenennen der grub.cfg.new in grub.cfg (die alte habe ich vorher gesichert) und nun war beim Systemstart auch der Kernel 3.15.7 auswählbar, allerdings kein anderer mehr, 3.15.6 (ist noch auf dem system installiert) nicht mehr. Wenn ich von 3.15.7 booten will, bekomme ich noch die schöne Fehlermeldung:
gfxmode wurde nicht gefunden (system bootet dann aber normal) Meine Grub.cfg
http://goo.gl/wIE4XR und die Grub.cfg.bak
http://goo.gl/E5wRt0 Ich hab die Dateien mal durchgeschaut und sehe auch etwas mit gfxmode, will das aber nicht löschen.
Hat jemand eine Idee? Am liebsten wäre mir ein Tool ähnlich Grub Config, wo ich die Einträge mittels Gui bearbeiten kann. Falls nicht, wenn jemand weiss, welche Zeilen ich editieren muss? Besten Dank im Voraus.
|
lionlizard
Anmeldungsdatum: 20. September 2012
Beiträge: 6244
Wohnort: Berlin
|
Was möchtest du denn haben? Nach Deiner grub.cfg hast du folgende Einträge:
Ubuntu, mit Linux 3.15.7-031507-generic Ubuntu, with Linux 3.15.7-031507-generic (recovery mode) Erweiterte Optionen für Ubuntu mit den Unterpunkten Ubuntu, mit Linux 3.15.6-031506-generic Ubuntu, with Linux 3.15.6-031506-generic (recovery mode) Memory test (memtest86+)
Ubuntu Windows 7 (loader) (auf /dev/sda2)
|
macstar
(Themenstarter)
Anmeldungsdatum: 24. Mai 2010
Beiträge: 334
|
lionlizard schrieb: Was möchtest du denn haben? Nach Deiner grub.cfg hast du folgende Einträge:
Ubuntu, mit Linux 3.15.7-031507-generic Ubuntu, with Linux 3.15.7-031507-generic (recovery mode) Erweiterte Optionen für Ubuntu mit den Unterpunkten Ubuntu, mit Linux 3.15.6-031506-generic Ubuntu, with Linux 3.15.6-031506-generic (recovery mode) Memory test (memtest86+)
Ubuntu Windows 7 (loader) (auf /dev/sda2)
ganz genau so soll es aussehen! die 3.15.7 steht mittlerweile auch ganz oben, allerdings ist afaik der Punkt Erweiterte Optionen gar nicht sichtbar.
http://s16.postimg.org/6iuyy33n9/20140730_133739_1.jpg
Und die Fehlermeldung mit gfxmode sollte auch irgendwie abgestellt werden.
|
lionlizard
Anmeldungsdatum: 20. September 2012
Beiträge: 6244
Wohnort: Berlin
|
Ich würde dir empfehlen, lies dir mal Konfiguration und Skripte durch, und gestalte dir dein Menü selber. Dazu kannst du einfach erst mal eine normale /boot/grub/grub.cfg erstellen lassen, und dann nimmst du diese als Vorlage, und suchst dir die Menüeinträge aus, die du - außer den aktuellen Kerneleinträgen - behalten möchtest. Für diese erstellst du dir einfach eigene Skripte, und setzt anschließend in der etc/default/grub die Option GRUB_DISABLE_OS_PROBER=rue . Dann werden bei einem update-grub nur noch für die aktuellen Kernel und deine manuell erstellten Menüeinträge erzeugt. Warum bei dir das Untzermenü nicht nagezeigt wird, weiß ich jetzt nicht genau, zeige mal im Codeblock die Ausgabe von cat /boot/grub/grub.cfg Ich gehe davon aus, dass diese anders aussieht, als jene, die in deinem Link zu sehen ist.
|
macstar
(Themenstarter)
Anmeldungsdatum: 24. Mai 2010
Beiträge: 334
|
macstar@HP-255-G1-Notebook:~$ cat /boot/grub/grub.cfg
#
# 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 ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
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="${saved_entry}"
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 recordfail {
set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; 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
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=de_AT
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=-1
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
#set_background_image "images/tile.png";
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 0,0,0; then
clear
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux_proxy ###
menuentry "Ubuntu, mit Linux 3.15.7-031507-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.15.7-031507-generic-advanced-d3b82b2e-20ff-4615-a78a-51939234957f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
echo 'Linux 3.15.7-031507-generic wird geladen …'
linux /boot/vmlinuz-3.15.7-031507-generic root=UUID=d3b82b2e-20ff-4615-a78a-51939234957f ro quiet splash $vt_handoff
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.15.7-031507-generic
}
menuentry "Ubuntu, with Linux 3.15.7-031507-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.15.7-031507-generic-recovery-d3b82b2e-20ff-4615-a78a-51939234957f' {
recordfail
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
echo 'Linux 3.15.7-031507-generic wird geladen …'
linux /boot/vmlinuz-3.15.7-031507-generic root=UUID=d3b82b2e-20ff-4615-a78a-51939234957f ro recovery nomodeset
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.15.7-031507-generic
}
submenu "Erweiterte Optionen für Ubuntu"{
menuentry "Ubuntu, mit Linux 3.15.6-031506-generic" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.15.6-031506-generic-advanced-d3b82b2e-20ff-4615-a78a-51939234957f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
echo 'Linux 3.15.6-031506-generic wird geladen …'
linux /boot/vmlinuz-3.15.6-031506-generic root=UUID=d3b82b2e-20ff-4615-a78a-51939234957f ro quiet splash $vt_handoff
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.15.6-031506-generic
}
menuentry "Ubuntu, with Linux 3.15.6-031506-generic (recovery mode)" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.15.6-031506-generic-recovery-d3b82b2e-20ff-4615-a78a-51939234957f' {
recordfail
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
echo 'Linux 3.15.6-031506-generic wird geladen …'
linux /boot/vmlinuz-3.15.6-031506-generic root=UUID=d3b82b2e-20ff-4615-a78a-51939234957f ro recovery nomodeset
echo 'Initiale Ramdisk wird geladen …'
initrd /boot/initrd.img-3.15.6-031506-generic
}
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "x$default" = 'Ubuntu, mit Linux 3.15.6-031506-generic' ]; then default='Advanced options for Ubuntu>Ubuntu, mit Linux 3.15.6-031506-generic'; fi;
menuentry "Memory test (memtest86+)" {
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
knetbsd /boot/memtest86+.elf
}
menuentry "Memory test (memtest86+, serial console 115200)" {
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
linux16 /boot/memtest86+.bin console=ttyS0,115200n8
}
}
### END /etc/grub.d/10_linux_proxy ###
### BEGIN /etc/grub.d/22_linux_xen ###
### END /etc/grub.d/22_linux_xen ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# 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/40_custom ###
### BEGIN /etc/grub.d/41_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/41_custom ###
### BEGIN /etc/grub.d/42_linux_proxy ###
menuentry "Ubuntu" --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-d3b82b2e-20ff-4615-a78a-51939234957f' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos4'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos4 --hint-efi=hd0,msdos4 --hint-baremetal=ahci0,msdos4 d3b82b2e-20ff-4615-a78a-51939234957f
else
search --no-floppy --fs-uuid --set=root d3b82b2e-20ff-4615-a78a-51939234957f
fi
linux /boot/vmlinuz-3.15.7-031507-generic root=UUID=d3b82b2e-20ff-4615-a78a-51939234957f ro quiet splash $vt_handoff
initrd /boot/initrd.img-3.15.7-031507-generic
}
### END /etc/grub.d/42_linux_proxy ###
### BEGIN /etc/grub.d/43_os-prober_proxy ###
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
menuentry "Windows 7 (loader) (auf /dev/sda2)" --class windows --class os $menuentry_id_option 'osprober-chain-02209EF5209EEF43' {
insmod part_msdos
insmod ntfs
set root='hd0,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 02209EF5209EEF43
else
search --no-floppy --fs-uuid --set=root 02209EF5209EEF43
fi
parttool ${root} hidden-
chainloader +1
}
### END /etc/grub.d/43_os-prober_proxy ###
|
macstar
(Themenstarter)
Anmeldungsdatum: 24. Mai 2010
Beiträge: 334
|
so, dank dem durchlesen der konfig und der scripte habe ich nur 1 einzigen eintrag auskommentiert, mit dem schönen ergebnis, dass jetzt gar nichts mehr bootet.
das ist mir zu dumm und auch unsicher, wie gesagt, wüsste ich was ich editieren müsste, hätte ich den thread ja gar nicht erstellen brauchen. 🙄 nachtrag: ich habs jetzt hinbekommen, scheinbar mag grub2 keine mit dem grub config tool erstellten untermenüs, ich habe den untermenüeintrag als normales menü erstellt und eine "}" in der grub.cfg rausgenommen, jetzt passt alles und auch die fehlermeldung bezüglich gfxmode erscheint nicht mehr.
|
lionlizard
Anmeldungsdatum: 20. September 2012
Beiträge: 6244
Wohnort: Berlin
|
Schön, dass es jetzt geht. Vielleicht kannst du deine funktionierende /boot/grub/grub.cfg hier auch noch mal reinstellen. Ich möchte aber noch mal loswerden, dass es keine wirklich gute Idee ist, die /boot/grub/grub.cfg direkt zu editieren - speziell, wenn man nioch nicht so sicher ist, was man da macht. Deswegen habe ich dir auch den Weg mittels update-grub und den Einbau von eigenen Skripten empfohlen. Beim ùpdate-grub werfolgt nämlich eine Syntaxprüfung, und wenn etwas nicht in Ordnung ist, gibts einen Fehler, und das funktionierende Menü wird nicht angefasst. Außerdem wird die /boot/grub/grub.cfg beim nächsten Kernelupdate neu geschrieben, und dann sind deine Änderungen hinfällig - du musst das alles wieder neu machen. Wenn du das aber über die /etc/default/grub und die Skripte in /etc/grub.d steuerst, bleibt das ganze jedoch erhalten. Du hast also einmal etwas mehr aufwand, weil du dich erst ins Thema einlesen musst, aber dafür entfällt die Wartung. Was mir übrigens aufgefallen ist: Der Codeblock function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "x$default" = 'Ubuntu, mit Linux 3.15.6-031506-generic' ]; then default='Advanced options for Ubuntu>Ubuntu, mit Linux 3.15.6-031506-generic'; fi; hat mitten in den Menüeinträgen nichts zu suchen. So etwas gehört voran gestellt.
|
macstar
(Themenstarter)
Anmeldungsdatum: 24. Mai 2010
Beiträge: 334
|
hier meine aktuelle grub.cfg:
http://goo.gl/6xF1h5 Ich hab noch zusätzlich mein Problem mit dem Grubcustomizer Tool als Bug in Launchpad geposted, da als Ursache für meine Grub Probleme nur der Customizer in Frage kommt. Manuell habe ich die Datei bis heute gar nicht editiert, und das KDE eigene Grub Tool (heute erst installiert), kann ja keine Menüeinträge verschieben.
Bis das nicht geklärt ist, bleibt der Grubcustomizer von meinem System entfernt.
Wie genau die grub.cfg dann beim Kernelupdate verändert wird, sehe ich dann ja bei 3.15.8 oder 3.16 - jedenfalls wird auf meinem PC (kein Dualboot) die Grub.cfg genauso aktualisiert, wie sie werden sollte - Ubuntu ist standardmässig ausgewählt und bootet den neusten Kernel, zusätzlich sind eben noch die einträge sämtlicher installierter Kernel vorhanden (inkl. recovery mode). Ich meine mich auch zu erinnern, dass das Grubcustomizer Tool zu meinen Anfangszeiten (altes Notebook und afaik Ubuntu 10.04) perfekt funktionierte, damals spielte ich auch mit mir jetz nicht mehr wichtigen Dingen, die der Hintergrund- und Schriftfarbe herum, und hab mir die Menüeinträge ebenfalls schön verschachtelt - ohne Probleme.
|
lionlizard
Anmeldungsdatum: 20. September 2012
Beiträge: 6244
Wohnort: Berlin
|
Du hast tatsächlich nur das Sumbemnu entfernt, denn die zweite gescheifte Klammer gehört natürlich dazu: submen 'Schachtel' {
Menü 'Praline' {
insmod part_msdos
}
}
Also jeder Menüeintrag, bzw. jedes Untermenü wird in geschweifte Klammern eingeschlossen. Was mir aber aufgefallen ist: Die Namen für die Einträge sind bei mir alle in einfache Anführungszeichen gesetzt, bei dir sind es doppelte. Die einfachen erreicht man mit
⇧ +
# . Du kannst ja mal testen, ob es damit funktioniert. Grub ist ja seit der 14.04 in der Version 2.02~beta2-9 installiert, vielleicht mag es da keine doppelten Anführungszeichen für Untermenüs.
|