zisslaweng.de

 Home    CSS    PHP    HTML    JavaScript    Allgemein    Sitemap   exemption-filter

Dual Boot Konfiguration openSuSE 11.4 und Windows 7

Das Problem: die Installation des Service Pack 1 für Windows 7 bricht mit dem Fehlercode 0x800f0a12 ab. Die Windows Hilfe nennt mehrere mögliche Gründe, bei mir war es letztlich das Problem, dass die Windows Boot Partition nicht als aktiv markiert war.

OpenSuSE setzt bei der Installation das Boot-Flag um, da die Distribution standardmäßig den Bootmanager Grub nicht mehr in den MBR, sondern in den Bootsektor der Root-Partition schreibt. Dadurch findet der Installer des Service Pack den BCD Store (Boot Configuration Data Store) nicht mehr.

Abhilfe ist einfach mit YaST möglich.

YaST -> System -> Bootloader
Bootloader-Einstellungen: Abschnittsverwaltung
Anderer Systemabschnitt -> 
ein Häkchen bei "diese Partition bei Bootauswahl aktivieren",
das war's.
Jetzt den neuen Bootloader installieren.

Damit ist das Windows Update möglich:

Boot von Windows, ServicePack 1 einspielen, ein reboot durchführen, damit Windows die Änderungen komplettiert.

Aber wichtig zu wissen, was wurde geändert. In der Datei /boot/grub/menu.lst wurde in die vorletzte Zeile makeactive eingefügt:

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

Windows ist ja so gemein,

denn nach dieser Maßnahme kann Linux nicht mehr gestartet werden, der Bootmanager wurde „abgeklemmt”. Also ist es notwendig, den Bootmanager neu zu installieren und dabei die oben gemachte Änderung rückgängig zu machen. Diesmal aber leider ohne die Unterstützung durch eine grafische Benutzeroberfläche.

Boot des Rettungssystems von der openSUSE DVD.
F2 Sprache Deutsch -- wegen Tastaturbelegung, 
(sonst sucht man sich tot nach den Sonderzeichen).
-> Rettungssystem 
Rescue login: root
Rescue:~ #

Nun benötigen Sie den Bezeichner der root-Partition ihres installierten Systems.. hoffentlich wissen Sie den. Wenn nicht, nicht so schlimm und vor Allem ungefährlich ist das durchprobieren von sda1 bis sdax oder der 2. Festplatte sdb.. mittels

Rescue:~ #mount /dev/sdax /mnt
Rescue:~ #ls /mnt/
Rescue:~ #umount /mnt

bis Sie mit dem ls Kommando den gewünschten Verzeichnisbaum sehen, der etwa so aussieht:

bin  boot  dev  etc  home  lib  lost+found  media  mnt  
opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var

Mit dem soeben ermittelten Device (= Partition) ein letztes Mal mounten, dann das Gerätedateisystem einhängen und dann, wichtig, mit chroot in die change-root-Umgebung wechseln. Das ist jetzt die halbe Miete. (Die hier verwendeten Devicenamen entsprechen meinem System)

Rescue:~ #mount /dev/sda7 /mnt
Rescue:~ #mount --bind /dev /mnt/dev
Rescue:~ #chroot /mnt
Beachten Sie: der Prompt sieht jetzt etwas anders aus. Die folgenden Kommandos mounten das proc- und sys-Dateisystem.
Rescue:/>
Rescue:/>mount /proc
Rescue:/>mount /sys
Rescue:/>mount -a

Der letzte Befehl montiert jetzt ihr gesamtes System (dank /etc/fstab). Fehlermeldungen betreffen das Filesystem unter Windows (ntfs-3g). Das kann ignoriert werden. Das System befindet sich jetzt im runlevel 1 (Single User, kein Netzwerk), alle Dateien wieder da, Sie können aufatmen. Überprüfen Sie die folgenden Dateien auf korrekte Konfiguration:

less /etc/grub.conf
setup --stage2=/boot/grub/stage2 --force-lba (hd0,6) (hd0,6)
quit

less /boot/grub/device.map
(hd0)   /dev/disk/by-id/ata-WDC_WD6400BPVT-80HXZT1_WD-WXH1A31T8757

less /boot/grub/menu.lst
.......
title Windows
	rootnoverify (hd0,1)
	makeactive
	chainloader +1
.......

Löschen Sie den Eintrag makeactive aus /boot/grub/menu.lst mittels vi oder verwenden Sie die Datei menu.lst.old, indem Sie sie nach menu.lst kopieren. Fatal, wenn Sie jetzt mit dem Editor vi nicht umgehen können. Die für diesen Zweck notwendigen Erläuterungen finden Sie über die Linkliste rechts oben.

 Möglicherweise kann der Eintrag makeactive auch bestehen bleiben, bin zu faul, das jetzt zu erproben. Da warte ich bis zum ServicePack 2.

Jetzt kommt der entscheidende Schritt...

... die Installation des GRUB Bootloader's
Rescue:/> grub --batch < /etc/grub.conf
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the 
   first word, TAB lists possible command completions.  
   Anywhere else TAB lists the possible completions of a 
   device/filename. ]
grub> setup --stage2=/boot/grub/stage2 --force-lba (hd0,6) (hd0,6)
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,6)".
    .. failed (this is not fatal)
 Running "embed /boot/grub/e2fs_stage1_5 (hd0,6)".
    .. failed (this is not fatal)
 Running "install --force-lba --stage2=/boot/grub/stage2 
    /boot/grub/stage1 (hd0,6) /boot/grub/stage2 p 
    /boot/grub/menu.lst "... succeeded
Done.
grub> quit
Rescue:/> umount -a
exit

Vergessen Sie vor lauter Freude nicht die Befehle umount und exit.
Beim nächsten Start ist GRUB wieder vorhanden. Falls Sie Windows starten wird eine Bootauswahl "abgesicherter Modus" oder "normal starten" angeboten, weil Windows über den veränderten MBR meckert. Starten Sie im normalen Modus und Sie können bis zum nächsten Servicepack das Problem vergessen.
Vielleicht hat Sie dieses Problem darauf hingewiesen, für den Fall der Fälle mal ein paar Übungen mit dem Texteditor vi zu machen... siehe Linkliste rechts oben.

 zisslaweng 0 Kommentare zu diesem Artikel

Eine umfassende Zusammenstellung von Möglichkeiten, um mit GRUB klarzukommen, im Ubuntu Wiki GRUB

Und noch eine Empfehlung: Editoren für die Benutzung an der Konsole: auf jedem Linux ist der vi verfügbar, damit sollte man ein wenig umgehen können. Hinweise zur Bedienung ebenfalls beim Ubuntu Wiki lesen
Linux Microsoft

Ihr Kommentar zum Artikel

Name:
Ort:
 
Logo