• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Endlich gelöst]System hängt bei "grub."

Nach einem Upgrade(leap 42.2 = > 42.3) hängt mein PC bei "Grub.". Keine weitere Fehlermeldungen. Mit "e" komme ich nicht in den Editiermodus von Grub. Ich kann "e" beim Starten drücken, so lange ich will, es passiert: ... nichts.
Egal von welcher Platte ich boote, dasselbe Ergebnis (Es ist noch eine uralte 13.2 auf einer weiteren FP installiert, die ich schon lange nicht mehr nutze. Zusätzlich habe ich schon eine Neuinstallation ausprobiert. Geht auch nicht. Auch das Installieren von Grub in den MBR (während der Installation) hilft nicht. Booten vom USB-Stick geht allerdings. Fehlermeldungen bekomme ich keine.
Wie kann ich weiter vorgehen?
Da ich noch BIOS habe, wird legacy-boot verwendet.
Update:
Mit der Super-Grub-Disk kann ich das System starten. Allerdings nur damit. Ein Neustart selbst nach Neuinstallation von Grub via Yast bringt keine Änderung. :???:
Update2:
Ein
Code:
grub2-mkconfig --output=/boot/grub2/grub.cfg
grub2-install /dev/sda
hat auch nicht funktioniert. Sehr seltsam!

CU Freddie
 

josef-wien

Ultimate Guru
Freddie62 schrieb:
hängt mein PC bei "Grub."
Heißt das, daß weder das Boot-Menü noch die GRUB2-Eingabeaufforderung erscheint?



Freddie62 schrieb:
Egal von welcher Platte ich boote
Heißt das, daß Du im BIOS eine andere Platte auswählst, deren MBR einen Boot-Code (generischer MBR oder Boot-Manager) enthält?



Freddie62 schrieb:
Paßt vielleicht /boot/grub2/device.map von 42.3 nicht?
 
OP
F

Freddie62

Guru
Hallo Josef

Heißt das, daß weder das Boot-Menü noch die GRUB2-Eingabeaufforderung erscheint?
Genau das!
Heißt das, daß Du im BIOS eine andere Platte auswählst, deren MBR einen Boot-Code (generischer MBR oder Boot-Manager) enthält?
Richtig. Da ist noch eine uralte SuSE drauf. Die Platte war mal Bootplatte, ist aber durch eine SSD ersetzt worden.
Anbei die /boot/grub/device.map
Code:
cat /boot/grub2/device.map
(hd2)   /dev/sdb
(hd3)   /dev/sdc
(hd4)   /dev/sdd
(hd0)   /dev/sda
(hd1)   /dev/sde
und die grub.cfg
Code:
# cat grub.cfg 
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi

if [ "${env_block}" ] ; then
  load_env -f "${env_block}"
fi
                                                                                                                                                             
if [ "${next_entry}" ] ; then                                                                                                                                
   set default="${next_entry}"                                                                                                                               
   set next_entry=                                                                                                                                           
   save_env next_entry                                                                                                                                       
   if [ "${env_block}" ] ; then                                                                                                                              
     save_env -f "${env_block}" next_entry                                                                                                                   
   fi                                                                                                                                                        
   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
    if [ "${env_block}" ] ; then
      save_env -f "${env_block}" saved_entry
    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,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  13df1cf4-bfc2-4a19-891b-aa6dd20b8722
else
  search --no-floppy --fs-uuid --set=root 13df1cf4-bfc2-4a19-891b-aa6dd20b8722
fi
    font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=de_DE
  insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  13df1cf4-bfc2-4a19-891b-aa6dd20b8722
else
  search --no-floppy --fs-uuid --set=root 13df1cf4-bfc2-4a19-891b-aa6dd20b8722
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
  set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=8
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE Leap 42.3'  --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-13df1cf4-bfc2-4a19-891b-aa6dd20b8722' {
        load_video
        set gfxpayload=keep
        insmod gzio
        insmod part_msdos
        insmod ext2
        set root='hd0,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  13df1cf4-bfc2-4a19-891b-aa6dd20b8722
        else
          search --no-floppy --fs-uuid --set=root 13df1cf4-bfc2-4a19-891b-aa6dd20b8722
        fi
        echo    'Linux 4.4.76-1-default wird geladen …'
        linux   /boot/vmlinuz-4.4.76-1-default root=UUID=13df1cf4-bfc2-4a19-891b-aa6dd20b8722  resume=/dev/disk/by-uuid/d112b8a4-e58e-415f-97ab-a7587832397f splash=silent quiet showopts
        echo    'Initiale Ramdisk wird geladen …'
        initrd  /boot/initrd-4.4.76-1-default
}
submenu 'Erweiterte Optionen für openSUSE Leap 42.3' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-13df1cf4-bfc2-4a19-891b-aa6dd20b8722' {
        menuentry 'openSUSE Leap 42.3, mit Linux 4.4.76-1-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.76-1-default-advanced-13df1cf4-bfc2-4a19-891b-aa6dd20b8722' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod ext2
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  13df1cf4-bfc2-4a19-891b-aa6dd20b8722
                else
                  search --no-floppy --fs-uuid --set=root 13df1cf4-bfc2-4a19-891b-aa6dd20b8722
                fi
                echo    'Linux 4.4.76-1-default wird geladen …'
                linux   /boot/vmlinuz-4.4.76-1-default root=UUID=13df1cf4-bfc2-4a19-891b-aa6dd20b8722  resume=/dev/disk/by-uuid/d112b8a4-e58e-415f-97ab-a7587832397f splash=silent quiet showopts
                echo    'Initiale Ramdisk wird geladen …'
                initrd  /boot/initrd-4.4.76-1-default
        }
        menuentry 'openSUSE Leap 42.3, mit Linux 4.4.76-1-default (Wiederherstellungsmodus)' --hotkey=3 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.76-1-default-recovery-13df1cf4-bfc2-4a19-891b-aa6dd20b8722' {
                load_video
                set gfxpayload=keep
                insmod gzio
                insmod part_msdos
                insmod ext2
                set root='hd0,msdos1'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 --hint='hd0,msdos1'  13df1cf4-bfc2-4a19-891b-aa6dd20b8722
                else
                  search --no-floppy --fs-uuid --set=root 13df1cf4-bfc2-4a19-891b-aa6dd20b8722
                fi
                echo    'Linux 4.4.76-1-default wird geladen …'
                linux   /boot/vmlinuz-4.4.76-1-default root=UUID=13df1cf4-bfc2-4a19-891b-aa6dd20b8722  
                echo    'Initiale Ramdisk wird geladen …'
                initrd  /boot/initrd-4.4.76-1-default
        }
}

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

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### 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/80_suse_btrfs_snapshot ###
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

### BEGIN /etc/grub.d/95_textmode ###
### END /etc/grub.d/95_textmode ###
 

gehrke

Administrator
Teammitglied
@Freddie62: 1504 Beiträge - da sollte korrektes Quoting doch wohl möglich sein...
 

josef-wien

Ultimate Guru
Meine dritte Frage kannst nur Du beantworten. Im übrigen ist der Gerätename keine besonders gute Idee, Geräte-ID oder UUID sind besser.

Jetzt kommt noch eine vierte Frage: Bist du sicher, daß der Gerätename /dev/sda deine 42.3-Boot-Platte ist?
 
OP
F

Freddie62

Guru
In der fstab sind die UIDs eingetragen. Grub2 scheint jedoch die "alten" Bezeichnungen zu verwenden. Das habe ich nicht selbst eingetragen, sondern wurde während der Installation automatisch so eingetragen.
Die device.map sollte stimmen (gehe ich mal von aus). /dev/sda ist definitiv die Bootplatte. Zumindest wenn ich fdisk -l aufrufe wird mir diese Platte als /dev/sda angezeigt.
Was mich so kollosal wundert, ist die Tatsache, daß grub keine Fehlermeldung anzeigt und ich auch nicht in den edit-Modus komme. Es kommt mir so vor, als ob grub sich aufhängt! Es sind keine Eingaben möglich, selbst der "Affengriff" (<CTRL>+<ALT>+<DEL>) geht nicht. Nur der Reset-Button.
Ich werde mal testweise 42.3 auf sdb installieren, da ist eine (uralte) /-Partition drauf (Ich glaube 12.1). Die kann ich problemlos platt machen. Wenn das Booten dann von dieser Platte klappt, ist ggf. im Bootsektor der SSD etwas im Argen.

CU Freddie
 
OP
F

Freddie62

Guru
Update:
Selbst wenn ich die SSD abhänge und dann von der alten Systemplatte boote, bzw. grub dort installiere bleibt das System bei "grub." hängen, als ob grub irgendwie zerstört ist, da nicht die komplette Meldung "grub loading." erscheint.
Langsam gehen mir komplett die Ideen aus. Könnte es sein, daß das BIOS einen Schuß hat? Aber wenn ja, warum bootet der Rechner vom USB-Stick. Oder hat der SATA-Controller eine Macke?

CU Freddie
 

josef-wien

Ultimate Guru
Freddie62 schrieb:
Könnte es sein, daß das BIOS einen Schuß hat?
Freddie62 schrieb:
Oder hat der SATA-Controller eine Macke?
Nach Deinen bisherigen Erlebnissen fällt mir als dritte Erklärung noch ein, daß die GRUB2-Installationsroutine von 42.3 Mist baut. Offenbar gelingt es nicht, den Boot-Code im MBR einer SATA-Platte auszuführen. Da das BIOS bei SATA und USB unterschiedliche Wege geht, lasse ich mir einreden, daß es bei USB funktioniert. Auch daß der SATA-Controller nur bei der Kommunikation mit dem BIOS nicht mehr funktioniert, will ich nicht ausschließen. Bei der GRUB2-Installationsroutine scheint es mir eher unwahrscheinlich, daß das Ding unmotiviert auch auf die Platte mit dem 13.2 hinlangt; hast Du schon versucht, vom 13.2 aus GRUB2 neu zu installieren (oder wenn damit doch
Freddie62 schrieb:
gemeint ist, einmal eine Minimalinstallation von 42.2 auszuführen, um GRUB2 von 42.3 als Ursache festzustellen bzw. auszuschalten).
 
OP
F

Freddie62

Guru
Inzwischen habe ich den Fehler gefunden. Aus unerfindlichen Gründen war "swap" als erster Eintrag in der fstab eingetragen. Dieser befindet sich auf der alten Platte. Die Installationsroutine von Leap hat als resume die ID der zweiten Platte eingetragen und auf "swap" gezeigt. Nach Ändern der Reihenfolge in der fstab hat die Routine die richtige ID eingetragen. Zusätzlich mußte ich allerdings noch die Reihenfolge der Platten im BIOS ändern, da ich aufgrund der Probleme die alte Platte als erste eingetragen hatte. Warum allerdings "swap" auch bei der Installation von Leap 42.3 auf der alten Platte (anstelle von 12.1) als Bootpartition genommen wurde ist mir schleierhaft. Daß 12.1 nicht booten konnte lag anscheinend daran, daß das Bootflag auf "swap" gezeigt hat (Fehler der Installationsroutine von 42.3). :zensur:

Da muß man erst mal drauf kommen. Im Endeffekt haben mich die Tipps von Josef-Wien in die richtige Richtung geschubst. Vielen Dank daher an Josef-Wien. Testweise hatte ich sogar den grub2 von 42.2 installiert. Das hatte auch nicht funktioniert, also konnte der Fehler nicht in der eigentlichen Installationsroutine von grub2 liegen, da ich mit Leap 42.2 keine Probleme hatte.

CU Freddie
 
OP
F

Freddie62

Guru
Leider hat sich dieses Problem doch als hartnäckiger herausgestellt, als ich zunächst angenommen hatte. Der PC bootet definitiv nicht, wenn grub2 in der Version 2.02 installiert ist! Nur nach einem Downgrade auf 2.02beta (aus Leap 42.2) läßt sich Leap 42.3 starten. Aus diesem Grund habe ich einen Bugreport erstellt.

CU Freddie
 
OP
F

Freddie62

Guru
So, inzwischen ist der Bug gefixt. Nach Installation von grub2-2.02-16.1.x86_64 aus Michael Changs Repo, der das Ganze auch betreut, funktioniert das Booten wieder. Anscheinend ist irgendwie TPM daran schuld! Ich nehme mal an, daß diese Version demnächst in den Repos auftaucht.

CU Freddie
 
Oben