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

[gelöst] Grub startet ohne Boot Menü.

Hallo,

ich brauche wieder mal Eure Hilfe.
Nach der Installation von Suse 13.2 lande ich bei PC Neustart am Grub Kommandozeile, siehe Screenshot

Auf sda8 ist Suse 13.1 installiert.
Auf sda9 ist Suse 13.2 installiert.
Auf sda1 ist Windows 7 installiert.

Code:
fdisk -l

Disk /dev/sda: 250.1 GB, 250059350016 bytes, 488397168 sectors
Units = Sektoren of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x226f226e

   Gerät  boot.     Anfang        Ende     Blöcke   Id  System
/dev/sda1   *          63   143364059    71681998+   7  HPFS/NTFS/exFAT
/dev/sda2       143364060   488375999   172505970    f  W95 Ext'd (LBA)
/dev/sda5       143364123   266245244    61440561    7  HPFS/NTFS/exFAT
/dev/sda6       266245308   329734124    31744408+   b  W95 FAT32
/dev/sda7       329734144   332257279     1261568   82  Linux swap / Solaris
/dev/sda8       332259328   363712511    15726592   83  Linux
/dev/sda9       363714560   395167743    15726592   83  Linux
/dev/sda10      395169792   488374271    46602240   83  Linux

Ich habe bei Suse 13.2 den Grub 2 in die sda9 (System Partition) installiert, siehe Screenshot.

Ich kann Suse 13.1 starten mit Eingabe von:
grub> root (hd0,7)
und dann
grub> configfile /boot/grub/menu.lst
dann öffnet sich Grub-Bootmenü, siehe Screenshot.

Nach Auswahl von „openSuse 13.1“ wird Suse 13.1 auch gestartet.

Ich kann auch Windows 7 starten mit Eingabe von:
grub> root (hd0,0)
dann
grub> chainloader +1
und dann

Die neue Suse 13.2 starte ich mit Eingabe von:
grub> root (hd0,8)
dann
grub> chainloader +1
dann
und dann lande ich, ich vermute im Boot-Menü von Grub2, siehe Screenshot.
Hier kann ich OpenSUSE auswählen und die neuinstallierte Suse 13.2 starten
oder Windows 7 auswählen und starten.



Wie bekomme ich Grub Legacy wieder zum Laufen?

Viele Grüße
Heinz-Peter
 
OP
Heinz-Peter
Hallo,

ja, das ist definitiv die Lösung.
Ich frage mich nur, muss ich die Kommandos aus Suse 13.1 ausführen oder einfach gleich nach dem PC Neustart im Grub Legacy Textmodus.
Ich denke das durch die Eingabe von
Code:
root (hd0,7)
bekommt der Grub Legacy Teil, der sich im MBR dann installiert ein Hinweis, wo soll er später seine Code suchen.

Ich bin noch eine Erklärung schuldig.
Vor der Suse 13.2 Installation hatte ich die Kombination von Suse 12.3 auf (hd0,8), Suse 13.1 auf (hd0,7) und Windows auf (hd0,0)
Bei der Installation Suse 12.3 wurde Grub Legacy in den MBR der Festplatte installiert.
Bei der Installation Suse 13.1 wurde Grub Legacy in die root Partition also (hd0,7) installiert, nicht aber in MBR.
Ab diesem Moment wusste Grub Legacy der in MBR der Festplatte war, nichts von Grub der auf der root Partition von Suse 13.1 war. Bei PC Neustart wurde also die /boot/grub/menu.lst von Suse 12.3 geladen, siehe unten:
Code:
# Modified by YaST2. Last modification on Wed Feb 12 16:35:20 CET 2014
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# For the new kernel it try to figure out old parameters. In case we are not able to recognize it (e.g. change of flavor or strange install order ) it it use as fallback installation parameters from /etc/sysconfig/bootloader

default 0
timeout 40
gfxmenu (hd0,8)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 12.3 - 3.7.10-1.28
    root (hd0,8)
    kernel /boot/vmlinuz-3.7.10-1.28-default root=/dev/disk/by-id/ata-WDC_WD2500JS-00NCB1_WD-WCANK8579745-part9 resume=/dev/disk/by-id/ata-WDC_WD2500JS-00NCB1_WD-WCANK8579745-part7 splash=verbose showopts vga=0x317
    initrd /boot/initrd-3.7.10-1.28-default

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 12.3 - 3.7.10-1.28
    root (hd0,8)
    kernel /boot/vmlinuz-3.7.10-1.28-default root=/dev/disk/by-id/ata-WDC_WD2500JS-00NCB1_WD-WCANK8579745-part9 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 nomodeset x11failsafe
    initrd /boot/initrd-3.7.10-1.28-default

###Don't change this comment - YaST2 identifier: Original name:  openSUSE 13.1 - 3.11.6-4-default (/dev/sda8)###
title openSUSE 13.1 - Bottle 3.11.6-4-default (/dev/sda8)
    rootnoverify (hd0,7)
    chainloader +1

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
    rootnoverify (hd0,0)
    chainloader +1

###Don't change this comment - YaST2 identifier: Original name: floppy###
title Diskette
    rootnoverify (fd0)
    chainloader +1
Der Eintrag hier:
Code:
rootnoverify (hd0,7)
    chainloader +1
führte mich zu /boo/grub/menu.lst Suse 13.1, siehe unten:
Erst von dem Grub Boot-Menü Suse 13.1 konnte ich Suse13.1 starten.

Durch die Installation von Suse13.2 in (hd0,8) wurde auch Grub Legacy hier durch Grub2 ersetzt.
Der Grub Legacy im MBR suchte jetzt aber in (hd0,8) nach seinem anderen Teil und fand ihn nicht.
Bis heute dachte ich das der Grub der im MBR sitzt, sucht in allen System Partitionen nach seinem zweiten Teil.
Ich habe jetzt gelernt das es nicht stimmt, nur die Systempartition bei setup ist massgebend.

Ich bedanke mich @josef-wien für deine Hilfe.

Viele Grüße
Heinz-Peter
 

josef-wien

Ultimate Guru
Jetzt ist alles klar. Bei 13.2 muß das Paket grub instaliert sein, denn sonst wäre die Datei /boot/grub/stage2 nicht gefunden worden, und der PC wäre stillgestanden.

Der Boot-Code im MBR oder im Boot-Sektor einer Partition enthält im wesentlichen nur die Adresse jenes Sektors, ab dem die Datei *_stage1_5 beginnt, mit der dann über das Dateisystem auf die Datei stage2 und die Menüdatei zugegriffen werden kann. Sofern Platz vorhanden ist, kopiert der setup-Befehl die Datei *_stage1_5 in die Sektoren nach dem Boot-Code, was üblicherweise nur nach dem MBR mit einer msdos-Partitionentabelle der Fall ist.

Wo Du die Befehle, die GRUB im MBR oder im Boot-Sektor einer Partition installieren, ausführst, ist bei einer msdos-Partitionentabelle belanglos, bei Verwendung einer GPT muß jedoch eine GRUB-Version vorhanden sein, die damit auch umgehen kann (was bei openSUSE und einigen anderen Distributionen der Fall ist).
 
Oben