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

Chainloader? Doppelter Grub?

GG

Newbie
Habe ein Phänomen, was ich noch nie gesehen habe:

Auf meinem System fristet neben opensuse und XP ein Sidux sein Dasein. Dieses installiert laufend neue Kernel, deshalb wollte ich den Sidux Bootloader im Mbr behalten. Bei der Neuinstallation von Opensuse 11.2 (war noch mit einer alten Version unterwegs) habe ich daher den Bootloader auf die Rootpartition /dev/sda3) installieren lassen. zumindest habe ich das so eingestellt.

ergebnis war, dass ich den Grub von opensuse beim Start zu sehen bekomme, also dachte ich, er hat den mbr doch überschrieben. Das ist aber nicht der Fall, wenn ich Sidux starte, bekomme ich das Grubmenü von Sidux zu sehen.

Ich weiß jetzt auch gar nicht, was da passiert ist. Ist das jetzt ein Chainloader von 2 Grubs hintereinander? Was ist schief gelaufen? Wie kann ich das reparieren?

NACHTRAG: Sidux arbeitet auch noch mit Grub 1, ist schon älter. (Falls das wichtig ist).

Ich bin ratlos.
Danke für eure Tips.
PS Ansonsten bin ich mit der 11.2 recht zufrieden, alles läuft, alles schick. Das ist das einzige größere Problem.
 

admine

Ultimate Guru
Dann trage in die menu.lst vom zuerst erscheinenden Grub (wenn ich nicht irre, war das openSUSE) die andere Linux-Distri linuxtypisch ein:
- die Sidux-Partition mounten
- nach dem Kernel-Image suchen
- den SUSE-Eintrag kopieren und in die menu.lst einfügen
- diesen Eintrag entsprechend der Sidux-Partition(en) anpassen
 

josef-wien

Ultimate Guru
GG schrieb:
Dieses installiert laufend neue Kernel
Das sollte bei keinem Linux eine Auswirkung auf den Bootloader haben, der wird dadurch ja nicht verändert (es werden nur die Dateinamen von Kernel und initrd in der menu.lst angepaßt).

GG schrieb:
wenn ich Sidux starte, bekomme ich das Grubmenü von Sidux zu sehen.
Startest Du Sidux aus dem "openSUSE-GRUB"?
GG schrieb:
Ist das jetzt ein Chainloader von 2 Grubs hintereinander?
Es sieht danach aus.
GG schrieb:
Was ist schief gelaufen?
Diese Frage ist nicht zu beanworten, ohne genau zu wissen, was Du alles getan hast (und nicht, was Du getan zu haben glaubst).
GG schrieb:
Wie kann ich das reparieren?
Dazu muß ich Deinen MBR, Deinen Festplattenaufbau und Deine menu.lst von openSUSE sehen:
Code:
dd if=/dev/sda bs=440 count=1 | hexdump -C
fdisk -l
cat /boot/grub/menu.lst
 
OP
G

GG

Newbie
Hllo, admine,
ich bin nicht sicher, ob ich dich richtig verstehe:

admine schrieb:
Dann trage in die menu.lst vom zuerst erscheinenden Grub (wenn ich nicht irre, war das openSUSE)

ja

admine schrieb:
die andere Linux-Distri linuxtypisch ein

die steht doch drin und läßt sich ja auch booten über den Umweg 2. Grubmenü:

Code:
Don't change this comment - YaST2 identifier: Original name:  Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda4)###
title Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda4)
    root (hd0,3)
    configfile /boot/grub/menu.lst

admine schrieb:
die Sidux-Partition mounten nach dem Kernel-Image suchen den SUSE-Eintrag kopieren und in die menu.lst einfügen

ist auch drin und angepasst. Aber wie werde ich den doppelten Grub los? Habe ich dich jetzt falsch verstanden? Danke schon mal.
 

admine

Ultimate Guru
GG schrieb:
Code:
Don't change this comment - YaST2 identifier: Original name:  Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda4)###
title Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda4)
    root (hd0,3)
    configfile /boot/grub/menu.lst
Du startest damit nur den 2. Grub.
Lies mal hier weiter ... da war so etwas ähnliches:
http://www.linux-club.de/viewtopic.php?p=679479#p679479
 
OP
G

GG

Newbie
Ah ja, danke, ich sehe jetzt, dass beim Eintrag vmlinuz und initrd fehlen. Statt dessen steht menu.lst, was mich auch wunderte.

Aber:

Ich will ja eigentlich alle Systeme über den sidux-bootloader starten und Suse ggf von der Rootpartition aus. Geht das mit deiner Anleitung?

Danke nochmals!
 

admine

Ultimate Guru
Poste bitte mal die Ausgabe von "fdisk -l" (kleines L) und beschreibe dazu, was wo genau liegt.
Wenn du den Bootloader vom Sidux nutzen wilst, dann müssen wir diesen zuerst mal wieder ans Erste-Stelle-Starten bringen ;)
 
OP
G

GG

Newbie
admine schrieb:
Poste bitte mal die Ausgabe von "fdisk -l"

Code:
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xf5e1f5e1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1        3230    25944943+   7  HPFS/NTFS ist das] XP
/dev/sda2            3231        3361     1052257+  82  Linux swap/ Solaris
/dev/sda3   *        3362        5911    20482875   83  Linux Opensuse 11.2
/dev/sda4            5912       19457   108808245    5  Extended
/dev/sda5            5912        8485    20675623+  83  Linux ein altes ubuntu
/dev/sda6            8486       16846    67159701   83  Linux Homepartition von opensuse
/dev/sda7           16847       18386    12370018+  83  Linux Sidux
/dev/sda8           18387       19457     8602776   83  Linux Daten

Also es geht um sda3 (Suse) und sda7 (Sidux). (Vorhin war der Eintrag der menu.lst nicht korrekt, was die Partition anging).
 

admine

Ultimate Guru
Die openSUSE-Partition ist aktiv, deshalb wird dieser Grub zuerst gestartet.
Das einfachste ist wahrscheinlich, du bootest das Sidux und lässt da den Bootloader erneut in den MBR installieren.
Da kannst du auch gleich die menu.lst für openSUSE anpassen.
Das sollte funtzen ... *mein ich* :???:

EDIT:
Oder du installierst den Sidux-Grub in die Sidux-Partition und aktivierst dieseüber "fdsik" ... das sollte auf jeden Fall gehen.
 

mkossmann

Member
admine schrieb:
EDIT:
Oder du installierst den Sidux-Grub in die Sidux-Partition und aktivierst diese über "fdsik" ... das sollte auf jeden Fall gehen.
Ganz so einfach ist das nicht. Die Sidux-Partition sda7 ist ein logisches Laufwerk in einer erweiterten Partition. D.h. Grub muss in diesem Fall in die erweiterte Partition sda4 installiert werden und sda4 dann aktiviert werden.
 

mkossmann

Member
GG schrieb:
Ah ja, danke, ich sehe jetzt, dass beim Eintrag vmlinuz und initrd fehlen. Statt dessen steht menu.lst, was mich auch wunderte.

Aber:

Ich will ja eigentlich alle Systeme über den sidux-bootloader starten und Suse ggf von der Rootpartition aus. Geht das mit deiner Anleitung?

Danke nochmals!
" und Suse ggf von der Rootpartition" geht nicht. Da muss dann auch ein passender Eintrag für die SUSE in die Konfiguration des sidux-bootloader rein.

Und du must dann auch wählen : Entweder trägt du den Kernel und die initrd der SUSE direkt in die menu.lst des sidux-bootloaders ein. Hat aber den Nachteil das du bei Updates des Suse Kernels diese Änderung ggf. manuell nachtragen must . Oder du wählst die Lösung der SUSE installations und lädst die menu.lst der SUSE nach. Da werden dann Kernelupdates automatisch nachgezogen, aber du hast dann das zweistufige Bootmenü für die SUSE.
 
OP
G

GG

Newbie
Hallo josef-wien,
deine Antworten habe ich leider irgendwie übersehen, weil ich wahrscheinlich so lange an den Antworten gebastelt habe und dann schon Admines Posting dazwischen kam!

josef-wien schrieb:
GG schrieb:
Dieses installiert laufend neue Kernel
Das sollte bei keinem Linux eine Auswirkung auf den Bootloader haben

das meinte ich auch nicht, das war nur die Erklärung, warum ich das Sidux-Grubmenü im Mbr behalten will, manchmal muß man bei Sidux auch ältere Kernel booten und ich kann nicht nach jedem update alle 14 Tage die Suse von hand anpassen.

josef-wien schrieb:
Startest Du Sidux aus dem "openSUSE-GRUB"?
ja
josef-wien schrieb:
dd if=/dev/sda bs=440 count=1 | hexdump -C
Der Befehl hexdump ist für mich neu. Aber wenn ich das richtig sehe, ist der mbr doch zerschossen und ich muß Grub von Sidux aus neu installieren?

Code:
1+0 Datensätze ein                                               
1+0 Datensätze aus                                               
440 Bytes (440 B) kopiert, 3,3524e-05 s, 13,1 MB/s               
00000000  31 c0 8e d0 bc 00 7c 8e  c0 8e d8 bf 1e 06 be 1e  |1.....|.........|                                                            
00000010  7c 50 57 b9 e2 01 f3 a4  b9 00 02 f3 ab cb 80 fa  ||PW.............|                                                            
00000020  8f 7e 02 b2 80 52 52 bb  94 07 8d af 2a 00 8a 46  |.~...RR.....*..F|                                                            
00000030  04 66 8b 7e 08 66 03 3e  b3 06 84 c0 74 0b 80 7e  |.f.~.f.>....t..~|                                                            
00000040  00 80 75 05 66 89 3e 84  0b 83 c5 10 83 c3 09 80  |..u.f.>.........|                                                            
00000050  fb b8 75 da b8 e1 00 c1  e0 02 89 c6 66 8b ac 00  |..u.........f...|                                                            
00000060  08 66 85 ed 75 19 b8 c5  06 be bb 06 e8 a5 00 89  |.f..u...........|                                                            
00000070  c6 e8 9a 00 5a 31 c0 cd  13 cd 18 fb f4 eb fc 66  |....Z1.........f|                                                            
00000080  89 2e b3 06 be ab 06 b4  42 5a 52 cd 13 b8 d9 06  |........BZR.....|                                                            
00000090  72 d7 a0 00 7c 84 c0 74  03 a1 fe 7d 3d 55 aa b8  |r...|..t...}=U..|                                                            
000000a0  e9 06 75 c5 66 89 ee 5a  e9 55 75 10 00 01 00 00  |..u.f..Z.Uu.....|                                                            
000000b0  7c 00 00 00 00 00 00 00  00 00 00 45 72 72 6f 72  ||..........Error|                                                            
000000c0  20 00 0d 0a 00 4e 6f 20  61 63 74 69 76 65 20 70  | ....No active p|                                                            
000000d0  61 72 74 69 74 69 6f 6e  00 44 69 73 6b 20 72 65  |artition.Disk re|                                                            
000000e0  61 64 20 65 72 72 6f 72  00 4e 6f 20 6f 70 65 72  |ad error.No oper|                                                            
000000f0  61 74 69 6e 67 20 73 79  73 74 65 6d 00 49 6e 76  |ating system.Inv|
00000100  61 6c 69 64 20 43 48 53  20 72 65 61 64 00 e8 03  |alid CHS read...|
00000110  00 be c2 06 60 ac b4 0e  bb 01 00 cd 10 ac 84 c0  |....`...........|
00000120  75 f4 61 c3 00 00 00 00  00 00 00 00 00 00 00 00  |u.a.............|
00000130  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000190  1c 80 b6 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000001b0  00 00 00 00 00 00 00 00                           |........|
000001b8

Die menu.lst noch mal komplett:
Code:
 THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bootloader

default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,2)/boot/message
##YaST - activate


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.2 - 2.6.31.12-0.2
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.31.12-0.2-default root=/dev/disk/by-id/ata-WDC_WD1600BEVE-00UYT0_WD-WXC708579352-part3 resume=/dev/disk/by-id/ata-WDC_WD1600BEVE-00UYT0_WD-WXC708579352-part2 showopts vga=0x314
    initrd /boot/initrd-2.6.31.12-0.2-default


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.2 - 2.6.31.12-0.2
    root (hd0,2)
    kernel /boot/vmlinuz-2.6.31.12-0.2-default root=/dev/disk/by-id/ata-WDC_WD1600BEVE-00UYT0_WD-WXC708579352-part3 showopts apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x314
    initrd /boot/initrd-2.6.31.12-0.2-default


###Don't change this comment - YaST2 identifier: Original name:  Ubuntu 9.04, kernel 2.6.28-18-generic (/dev/sda5)###
title Ubuntu 9.04, kernel 2.6.28-18-generic (/dev/sda5)
    root (hd0,4)
    configfile /boot/grub/menu.lst


###Don't change this comment - YaST2 identifier: Original name:  Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda7)###
title Debian GNU/Linux, kernel 2.6.33-2.slh.10-sidux-686 (/dev/sda7)
    root (hd0,6)
    configfile /boot/grub/menu.lst


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

@mkossmann:
Ja, vorher habe ich die opensuse ja auch über Sidux gestartet. Die Verweise habe ich auch bereits angepasst.

Danke an alle Helfer.
 

josef-wien

Ultimate Guru
GG schrieb:
Aber wenn ich das richtig sehe, ist der mbr doch zerschossen
Das ist ein ganz normaler "generischer" MBR, der dazu führt, daß der Boot-Sektor jener Partition gestartet wird, die als "aktiv" gesetzt ist.

GG schrieb:
Statt dessen steht menu.lst, was mich auch wunderte.
"configfile" bedeutet, daß "openSUSE-GRUB" bei Auswahl dieses Punktes die menu.lst der Sidux-Partition liest und anzeigt. Das ist eine Alternative zu "chainloader".

Entweder installierst Du "Sidux-GRUB" in die erweiterte Partition und setzt diese auf "aktiv" (wie schon mkossmann schrieb), oder Du installierst ihn in den MBR. Wie mkossmann ebenfalls schrieb, hast Du zwei Möglichkeiten, openSUSE aus der Sidux-menu.lst zu starten (Du kannst natürlich auch beide eintragen), jede Möglichkeit hat ebenso ihre Vor- und Nachteile wie die Untervarianten "chainloader" und "configfile".
 
OP
G

GG

Newbie
Das sieht so aus wie ein gewolltes Feature? Wundert mich aber doch.
Ich habe dieses Verfahren schon oft angewendet, Installation eines Grub auf die rootpartition, um den Mbr unverändert zu erhalten, aber diesen doppelten Grub habe ich zum ersten Mal gesehen.
Und ich habe definitiv angekreuzt dass opensuse sich so verhalten soll.

Danke nochmals an alle für die ausführlichen Infos! Da war einiges, was mir ganz neu war!
 

josef-wien

Ultimate Guru
Die Auswahlmöglichkeiten (und damit auch die Fehlermöglichkeiten) bei der openSUSE-Bootloader-Installation werden immer umfangreicher. Es gibt auch den Punkt "generischen MBR schreiben", und das Kreuz dort hast Du vermutlich übersehen. Daß openSUSE die GRUB-Funktion "configfile" verwendet, ist mir auch neu. Aber das Leben wäre nicht so interessant, wenn immer alles glatt ginge.

Und einen Formalismus gibt es auch noch: http://www.linux-club.de/viewtopic.php?f=3&t=81378
 
Oben