• 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] Dualboot Win7, opensuse 11.3

Hallo zusammen,

ich bin gerade dabei mir ein Dualbootsystem mit Win7 und opensuse 11.3 einzurichten, leider brauche ich nun Hilfe dazu. :???:

Ich hatte das Ganze vor einiger Zeit schon einmal mit opensuse 11.2 realisiert, damals aber wohl etwas anders gemacht als heute. Opensuse 11.2 hatte ich sauber formatiert. Vor allem möchte ich den Windows-Bootloader verwenden und nicht GRUB!!!

Folgendes habe ich bisher gemacht:

1. Win7 installiert (lief schon eine Weile).
2. openSUSE 11.3 installiert (alle Updates eingespielt) und ein Image des Bootloaders erstellt (grub.img) und dieses in die Windows-Systempartition (C:) kopiert.
3. GRUB wurde in den MBR geschrieben, vermutlich hätte ich auch "in root-partition installierten" auswählen müssen (dazu aber später)?
4. Win7 über GRUB gestartet und mittels "Easy BCD" einen neuen Eintrag zum Image (grub.img) erzeugt, so dass ich theoretisch eine Auswahl der beiden Systeme haben sollte.
5. Den MBR mit EasyBCD neu geschrieben.
6. Windows-Bootmanager startet wie gewünscht mit Auswahlfenster, doch leider startet mein Suse damit nicht. Es erscheint nur ein "blinkender Cursor"

Vermutlich hätte ich GRUB, wie schon angedeutet, auch in die root-partition installieren müssen, nicht nur in den MBR, so ist das Image wohl nicht lauffähig?!

Kann jemand meine Vermutung bestätigen?

Wie komme ich jetzt an mein opensuse heran, ohne eine Neuinstallation durchführen zu müssen? Hatte schon die DVD eingelegt, aber keine Option gefunden, mein vorhandenes Suse zu starten.

Vielen Dank im Voraus für eure Hilfe!
 
Zunächst mal: Wenn man Windows und Linux auf demselben Rechner hat, verwendet man immer den Windows-Bootmanager und Grub (oder einen anderen Bootmanager, der Linux booten kann), weil der Windows-Bootmanager Linux nicht booten kann und Grub Windows nicht booten kann. Die beiden Bootmanager können nur jeweils den anderen Bootmanager "chainloaden" (aber kein "fremdes" Betriebssystem starten).

Wenn's Dir nur darum geht, den MBR nicht zu überschreiben, kannst Du auch einfach Grub in die Linux-Rootpartition installieren und diese "aktiv" bzw. "bootfähig" setzen. Der Code, den Windows in den MBR installiert, ist nämlich gar nicht betriebssystemspezifisch, sondern lädt einfach den ersten Sektor der aktiven Partition. Dort erst beginnt der Windows-spezifische Bootprozess (ebenso gut kann aber auch eine Nicht-Windows-Partition "aktiv" sein, und das funktioniert auch, sogar mit dem MBR-Code, den Windows installiert). Um Grub wieder zu entfernen, muss man dann bloß das "Aktiv"-Flag wieder auf die Windows-Partition setzen, was man auch in der Windows-Datenträgerverwaltung machen kann. Insofern würde ich Dir das empfehlen, weil es wesentlich einfacher ist (vor allem muss man dann nicht mit bcdedit und irgendwelchen Images hantieren ...).

Nun zur eigentlichen Frage: Boote von der openSUSE-CD und mounte die Rootpartition des nicht bootbaren Systems nach /mnt. Nun sollte die Datei /mnt/etc/grub.conf etwa so aussehen:
Code:
setup --stage2=/boot/grub/stage2 --force-lba (hd0) (hd0,1)
quit
Hierbei steht "hd0" für den Speicherort der stage1 (in diesem Fall: MBR) und "hd0,1" für die Partition, in der sich stage2 befindet (und zwar nach Grub-Namenskonvention, d.h. hd0,1 ist die zweite Partition der ersten Platte, weil Grub ab 0 zählt). "hd0,1" kann natürlich bei Dir anders sein. Ändere die Originaldatei sinngemäß so ab, damit auch stage1 in die Rootpartition installiert wird:
Code:
setup --stage2=/boot/grub/stage2 --force-lba (hd0,1) (hd0,1)
quit
Mache noch eine temporäre Kopie mit diesem Inhalt (brauchen wir gleich, weil die Rootpartition ja zurzeit /mnt und nicht "/" ist):
Code:
setup --stage2=/mnt/boot/grub/stage2 --force-lba (hd0,1) (hd0,1)
quit
Und nun die tatsächliche Installation (aus der Temporärkopie, die anschließend nicht mehr gebraucht wird):
Code:
grub --batch < /mnt/etc/grub.conf.temp
PS, falls es Dich interessiert, weshalb Deine Methode nicht funktioniert hat: Wenn man Grub in den MBR installiert, dann wird eine Stage 1.5 in den freien Bereich unmittelbar nach dem MBR vor der ersten Partition installiert. Die erste Partition beginnt nämlich in der Regel nicht bei Sektor 1, sondern bei Sektor 63 oder 2048, und Grub nutzt diesen Bereich, um dort eine Art Dateisystemtreiber abzulegen, damit er die Stage 2 nach dem Pfadnamen finden kann und nicht auf Blocknummern zurückgreifen muss. Wenn man Grub aber aus einem Image über den Windows-Bootmanager starten will, funktioniert das nicht. Möchte man das, dann muss man Grub in die Root- oder Bootpartition installieren.
 

josef-wien

Ultimate Guru
linuxluder schrieb:
3. GRUB wurde in den MBR geschrieben, vermutlich hätte ich auch "in root-partition installierten" auswählen müssen
Hier wäre das Wort "auch" durch das Wort "nur" zu ersetzten (falls Du openSUSE in einer logischen Partition installiert hast, wäre "in erweiterter Partition installieren" die richtige Wahl). Damit hättest Du Dir die Wiederherstellung des MBR erspart und im Notfall durch Aktivieren der "anderen" Partition den in deren Bootsektor enthaltenen Bootcode starten können.

Der Vorschlag von traffic führt zwar zum Ziel, aber mir scheint es einfacher, GRUB manuell zu installieren (wenn Du openSUSE in einer primären Partition installiert hast, mußt Du bei "root" und "setup" denselben Wert und bei einer logischen Partition bei "setup" die erweiterte Partition angeben). Danach kannst Du bei Bedarf vorübergehend die primäre bzw. erweiterte Partition mit
sfdisk -AY /dev/sda
(für Y mußt Du die Partition laut fdisk -l einsetzen) aktivieren und dadurch openSUSE starten (falls Du Dir dort mit der Image-Erstellung für Windows leichter tust). Die Datei /etc/grub.conf solltest Du bei Gelegenheit auch anpassen, damit die YaST-Bootloader-Installation beim nächsten Mal mit aktuellen Werten arbeiten kann.
 
OP
L

linuxluder

Newbie
Hallo traffic, hallo josef-wien,

vielen Dank für die Antworten.

Das muss ich mir jetzt erstmal genau durchlesen und das geschriebene zu verarbeiten. Muss überhaupt mal schauen, in welche Partition ich Suse überhaupt installiert habe.

Melde mich dann.
 
OP
L

linuxluder

Newbie
Hallo zusammen,

habe mittlerweile noch etwas nach "Dualboot mit Win7 und openSUSE" gegoogelt und bin nun komplett verwirrt :???:

OpenSUSE wurde bei mir in eine "Erweitere Partition" installiert; ich möchte mit dem Windows-Bootmanager arbeiten ohne dabei immer über Datenträgerverwaltung von Windows gehen zu müssen.

Unabhängig von der Frage, wie ich nun an mein installiertes System herankomme, würde mich interessieren:

1. An welche Stelle muss ich bei einer Neuinstallation den GRUB installieren. Wenn ich das richtig verstanden habe, dann müsse das "in erweiterte Partition" heißen?
2. Sonst noch wohin?
3. Die erweiterte Partition muss dann "aktiv" gesetzt werden?
4. Ist das dann schon alles?
5. Die folgende Prozedur, wie hier beschrieben, hätte sich dann erledigt: http://www.gargi.org/showthread.php?3027-openSUSE-11.3-parallel-zu-Windows-7-booten

Ich dachte, immer ohne "grub.img" würde das nicht funktionieren?

Stelle mich wohl einfach sehr dumm an.
 

josef-wien

Ultimate Guru
linuxluder schrieb:
OpenSUSE wurde bei mir in eine "Erweitere Partition" installiert
Die erweiterte Partition ist ein Behälter für die logischen Partitionen, openSUSE ist daher bei Dir in einer logischen Partition installiert.

linuxluder schrieb:
1. An welche Stelle muss ich bei einer Neuinstallation den GRUB installieren. Wenn ich das richtig verstanden habe, dann müsse das "in erweiterte Partition" heißen?
2. Sonst noch wohin?
Da Du als primären Bootmanager den Windows-Bootmanager verwenden willst (was ich allein auf Grund der Kompliziertheit bei der Einrichtung nicht verstehe), ist es belanglos, ob Du GRUB in die erweiterte oder in die Root-Partition installierst.

linuxluder schrieb:
3. Die erweiterte Partition muss dann "aktiv" gesetzt werden?
Wenn Du das machst, dann ist GRUB der primäre Bootmanager (und muß daher auch in der erweiterten Partition installiert sein, da über einen generischen MBR nur der Bootcode in einer primären oder erweiterten Partition ausgeführt werden kann).

linuxluder schrieb:
5. Die folgende Prozedur, wie hier beschrieben, hätte sich dann erledigt: http://www.gargi.org/showthread.php?3027-openSUSE-11.3-parallel-zu-Windows-7-booten
Ich dachte, immer ohne "grub.img" würde das nicht funktionieren?
Die Installation von GRUB in den MBR ist weder notwendig noch bei einem Linux-/Windows-System empfehlenswert. Wenn bereits ein Windows-System installiert ist, ist der MBR bei der openSUSE-Installation unverändert zu lassen. Welchen Namen Du der Image-Datei gibst, ist reine Geschmackssache, der kann auch supersys.txt lauten. GRUB kann den Bootcode jedes MBR und jeder beliebigen Partition ausführen, der Windows-Bootmanager kann einen solchen Bootcode nur dann ausführen, wenn er in Form einer Datei vorliegt.
 
OP
L

linuxluder

Newbie
Hallo josef-wien,

zusammenfassend war bei meiner SUSE-Installation also der Fehler, dass ich den "Bootcode" in den MBR geschrieben habe und nicht in die "Root-Partition". Den MBR mit BCDEdit anschließend überschrieben habe und mein erzeugtes GRUB.img sozusagen "leer" war. Habe ich das so richtig verstanden?
 

josef-wien

Ultimate Guru
Eine oder mehrere Deiner Aktionen haben zum Problem geführt.

Ich hätte gerne gewußt, ob Deine "MBR-Reparatur" mehr als nur den MBR verändert hat. Führe bitte als root den Befehl
Code:
dd if=/dev/sda bs=1104 count=1 | hexdump -C
(Anzeige der ersten 1104 Stellen der Festplatte) aus, sobald Dein Linux wieder funktioniert.
 
OP
L

linuxluder

Newbie
Hallo zusammen,

habe eine Partition (Recovery), die zu Anfang meiner Festplatte lag gelöscht und openSUSE neu installiert. GRUB in die root-Partition installiert und wie beschrieben ein "grub.img" erzeugt und dieses in die Windows-Partition installiert. Alles hat soweit funktioniert. Der Windows-Bootmanager startet mit der Auswahl meiner beiden Systeme. :D

Wenn ich nun SUSE starte, dann kommt erneut ein Auswahlfenster mit den beiden Systemen (diesmal der GRUB-Manager).

Also eingentlich, so wie ich es haben wollte. Meine letzte Frage dazu. Wenn ich nun im GRUB-Bootmanager nun nachträglich etwas ändern sollte, z. B. die Bezeichnung der Systeme, muss ich dann wieder ein "Image" davon erzeugen und nach Windows kopieren?

Vielen Dank an josef.wien für seine Hilfe.
 
linuxluder schrieb:
Wenn ich nun im GRUB-Bootmanager nun nachträglich etwas ändern sollte, z. B. die Bezeichnung der Systeme, muss ich dann wieder ein "Image" davon erzeugen und nach Windows kopieren?
Nein, solange Du nur die menu.lst änderst, bleibt das Image gültig. Ein neues Image brauchst Du, sobald Du etwas änderst, das die Stage 1 oder 2 ungültig macht. Die Stage 1 wird zum Beispiel ungültig, wenn sich der Gerätename der Rootpartition ändert (etwa durch Einfügen einer neuen Partition vor der Rootpartition), die Stage 2, wenn sich die Position der Datei /boot/grub/stage2 auf der Festplatte ändert (etwa durch Umkopieren dieser Datei oder Verschieben des Startsektors der Rootpartition).
 

josef-wien

Ultimate Guru
Ein Kernel-Update hat nur insofern mit GRUB zu tun, als die Angaben in der menu.lst angepaßt werden.

P.S. Meine Bitte vom 17. Dezember 2010, 18:13 Uhr, ist noch unerfüllt.
 
OP
L

linuxluder

Newbie
Sorry, hatte ich fast vergessen!

Code:
1+0 Datensätze ein
1+0 Datensätze aus
1104 Bytes (1,1 kB) kopiert, 3,6877e-05 s, 29,9 MB/s
00000000  33 c0 8e d0 bc 00 7c 8e  c0 8e d8 be 00 7c bf 00  |3.....|......|..|
00000010  06 b9 00 02 fc f3 a4 50  68 1c 06 cb fb b9 04 00  |.......Ph.......|
00000020  bd be 07 80 7e 00 00 7c  0b 0f 85 0e 01 83 c5 10  |....~..|........|
00000030  e2 f1 cd 18 88 56 00 55  c6 46 11 05 c6 46 10 00  |.....V.U.F...F..|
00000040  b4 41 bb aa 55 cd 13 5d  72 0f 81 fb 55 aa 75 09  |.A..U..]r...U.u.|
00000050  f7 c1 01 00 74 03 fe 46  10 66 60 80 7e 10 00 74  |....t..F.f`.~..t|
00000060  26 66 68 00 00 00 00 66  ff 76 08 68 00 00 68 00  |&fh....f.v.h..h.|
00000070  7c 68 01 00 68 10 00 b4  42 8a 56 00 8b f4 cd 13  ||h..h...B.V.....|
00000080  9f 83 c4 10 9e eb 14 b8  01 02 bb 00 7c 8a 56 00  |............|.V.|
00000090  8a 76 01 8a 4e 02 8a 6e  03 cd 13 66 61 73 1c fe  |.v..N..n...fas..|
000000a0  4e 11 75 0c 80 7e 00 80  0f 84 8a 00 b2 80 eb 84  |N.u..~..........|
000000b0  55 32 e4 8a 56 00 cd 13  5d eb 9e 81 3e fe 7d 55  |U2..V...]...>.}U|
000000c0  aa 75 6e ff 76 00 e8 8d  00 75 17 fa b0 d1 e6 64  |.un.v....u.....d|
000000d0  e8 83 00 b0 df e6 60 e8  7c 00 b0 ff e6 64 e8 75  |......`.|....d.u|
000000e0  00 fb b8 00 bb cd 1a 66  23 c0 75 3b 66 81 fb 54  |.......f#.u;f..T|
000000f0  43 50 41 75 32 81 f9 02  01 72 2c 66 68 07 bb 00  |CPAu2....r,fh...|
00000100  00 66 68 00 02 00 00 66  68 08 00 00 00 66 53 66  |.fh....fh....fSf|
00000110  53 66 55 66 68 00 00 00  00 66 68 00 7c 00 00 66  |SfUfh....fh.|..f|
00000120  61 68 00 00 07 cd 1a 5a  32 f6 ea 00 7c 00 00 cd  |ah.....Z2...|...|
00000130  18 a0 b7 07 eb 08 a0 b6  07 eb 03 a0 b5 07 32 e4  |..............2.|
00000140  05 00 07 8b f0 ac 3c 00  74 09 bb 07 00 b4 0e cd  |......<.t.......|
00000150  10 eb f2 f4 eb fd 2b c9  e4 64 eb 00 24 02 e0 f8  |......+..d..$...|
00000160  24 02 c3 49 6e 76 61 6c  69 64 20 70 61 72 74 69  |$..Invalid parti|
00000170  74 69 6f 6e 20 74 61 62  6c 65 00 45 72 72 6f 72  |tion table.Error|
00000180  20 6c 6f 61 64 69 6e 67  20 6f 70 65 72 61 74 69  | loading operati|
00000190  6e 67 20 73 79 73 74 65  6d 00 4d 69 73 73 69 6e  |ng system.Missin|
000001a0  67 20 6f 70 65 72 61 74  69 6e 67 20 73 79 73 74  |g operating syst|
000001b0  65 6d 00 00 00 63 7b 9a  3d 9b 07 5f 00 00 00 00  |em...c{.=.._....|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 80 01  |................|
000001d0  01 00 07 fe ff ff 3f 00  00 00 42 44 2d 0d 00 fe  |......?...BD-...|
000001e0  ff ff 0f fe ff ff 81 44  2d 0d c0 07 0b 2d 00 00  |.......D-....-..|
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200  52 56 be 03 21 e8 2a 01  5e bf f8 21 66 8b 2d 83  |RV..!.*.^..!f.-.|
00000210  7d 04 00 0f 84 ca 00 80  7c ff 00 74 3e 66 8b 1d  |}.......|..t>f..|
00000220  66 31 c0 b0 7f 39 45 04  7f 03 8b 45 04 29 45 04  |f1...9E....E.)E.|
00000230  66 01 05 c7 04 10 00 89  44 02 66 89 5c 08 c7 44  |f.......D.f.\..D|
00000240  06 00 70 50 66 31 c0 89  44 04 66 89 44 0c b4 42  |..pPf1..D.f.D..B|
00000250  cd 13 0f 82 9f 00 bb 00  70 eb 56 66 8b 05 66 31  |........p.Vf..f1|
00000260  d2 66 f7 34 88 54 0a 66  31 d2 66 f7 74 04 88 54  |.f.4.T.f1.f.t..T|
00000270  0b 89 44 0c 3b 44 08 7d  74 8b 04 2a 44 0a 39 45  |..D.;D.}t..*D.9E|
00000280  04 7f 03 8b 45 04 29 45  04 66 01 05 8a 54 0d c0  |....E.)E.f...T..|
00000290  e2 06 8a 4c 0a fe c1 08  d1 8a 6c 0c 5a 52 8a 74  |...L......l.ZR.t|
000002a0  0b 50 bb 00 70 8e c3 31  db b4 02 cd 13 72 46 8c  |.P..p..1.....rF.|
000002b0  c3 8e 45 06 58 c1 e0 05  01 45 06 60 1e c1 e0 04  |..E.X....E.`....|
000002c0  89 c1 31 ff 31 f6 8e db  fc f3 a4 1f be 14 21 e8  |..1.1.........!.|
000002d0  60 00 61 83 7d 04 00 0f  85 3c ff 83 ef 08 e9 2e  |`.a.}....<......|
000002e0  ff be 16 21 e8 4b 00 5a  ea 00 22 00 00 be 19 21  |...!.K.Z.."....!|
000002f0  e8 3f 00 eb 06 be 1e 21  e8 37 00 be 23 21 e8 31  |.?.....!.7..#!.1|
00000300  00 eb fe 4c 6f 61 64 69  6e 67 20 73 74 61 67 65  |...Loading stage|
00000310  31 2e 35 00 2e 00 0d 0a  00 47 65 6f 6d 00 52 65  |1.5......Geom.Re|
00000320  61 64 00 20 45 72 72 6f  72 00 bb 01 00 b4 0e cd  |ad. Error.......|
00000330  10 46 8a 04 3c 00 75 f2  c3 00 00 00 00 00 00 00  |.F..<.u.........|
00000340  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000003f0  00 00 00 00 00 00 00 00  02 00 00 00 10 00 20 02  |.............. .|
00000400  ea 70 22 00 00 00 03 02  ff ff ff 00 00 00 00 00  |.p".............|
00000410  02 01 30 2e 39 37 00 ff  ff 0c ff 2f 62 6f 6f 74  |..0.97...../boot|
00000420  2f 67 72 75 62 2f 73 74  61 67 65 32 20 2f 62 6f  |/grub/stage2 /bo|
00000430  6f 74 2f 67 72 75 62 2f  6d 65 6e 75 2e 6c 73 74  |ot/grub/menu.lst|
00000440  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00000450

Hoffe, das ist so richtig dargestellt. Bin gespannt?!
 

josef-wien

Ultimate Guru
traffic hat es am 12. Dezember 2010 um 22:12 Uhr schon geschrieben, aber ich habe die Dinge gern schwarz auf weiß (bzw. in diesem Fall grün auf weiß): stage1_5 befindet sich nach wie vor unmittelbar nach dem MBR (ab Zeile 00000200), wird aber dann nicht gefunden, wenn stage1 nicht im MBR, sondern als Image-Datei vorhanden ist.

Somit kann
linuxluder schrieb:
zusammenfassend war bei meiner SUSE-Installation also der Fehler, dass ich den "Bootcode" in den MBR geschrieben habe und nicht in die "Root-Partition". Den MBR mit BCDEdit anschließend überschrieben habe und mein erzeugtes GRUB.img sozusagen "leer" war.
mit einer Ausnahme mit "ja" beantwortet werden: GRUB.img war nicht "leer", sondern dort war vermerkt, daß stage1_5 ab Stelle 513 beginnt, aber diese Voraussetzung ist nicht erfüllbar, da die Image-Datei nur 512 Stellen lang sein darf.
 
OP
L

linuxluder

Newbie
Ist da jetzt irgendetwas ungewöhnliches vorgefallen oder alles völlig normal?

Jedenfalls bin ich froh, dass jetzt alles gut funktioniert.

Danke nochmal!
 
Nö, alles normal.

Dein aus dem MBR kopiertes Image hätte übrigens evtl. funktionieren können, wenn Du statt nur des ersten Sektors so viele Sektoren kopiert hättest, wie GRUBs Stage1.5 umfasst (keine Ahnung, wie viele das genau sind - hängt wohl auch vom Dateisystem ab -, aber sicher nicht mehr als 63).
 
Oben