Wie starte ich Windows 7, wenn grub auf der Windows-Partition installiert ist?


15

Originaltitel: Wie kann ich das (Un) Booten von Windows 7 auf derselben Partition mit Grub lösen?

Ich habe dieses Problem zwei bis drei Tage lang untersucht, bin aber leer ausgegangen.

Grundsätzlich ist Partition 1 Windows 7 und Partition 2 Ubuntu 12.04. Ich habe Ubuntu angewiesen, in Partition 2 zu installieren und GRUB auf Partition 1 zu installieren, und das funktioniert einwandfrei. Aber das Problem ist jetzt, dass ich Windows 7 nicht booten kann. Es kehrt nur zum GRUB-Menü zurück, nachdem ich es ausgewählt habe.

Nach meinen Recherchen kann ich GRUB bearbeiten, um Windows 7 "mbr" oder den Bootloader zu starten \windows\system32\winload.exe(ohne eine Windows 7-Reparaturdiskette zu verwenden). Mein Problem ist damit behoben. Ist das überhaupt möglich?


Die URL der Boot-Repair-Info lautet http://paste.ubuntu.com/981952/


Ausgabe des Befehls sudo blkid

/dev/sda1: UUID="1EA0019AA0017A13" TYPE="ntfs" 
/dev/sda2: UUID="e4402f9e-83df-4dc3-8913-69b28314d253" TYPE="ext4" 
/dev/sda3: LABEL="Vault Drive" UUID="74145BFD145BC132" TYPE="ntfs" 
/dev/sda4: UUID="1c030d32-657f-4a78-9468-307d9e09a977" TYPE="ext4"

Antworten:


14

Könnten Sie einen Bootinfo-Zusammenfassungsbericht mit dem Boot-Repair-Tool wie unten beschrieben erstellen und dann den Link zum Bericht bereitstellen?

Ich weiß, dass Sie bereits einige Details zu Ihrer Startkonfiguration angegeben haben. Der angeforderte Bericht enthält jedoch detailliertere Informationen und gibt uns möglicherweise ein besseres Verständnis dafür, warum Sie Windows nicht mit GRUB starten können.

So verwenden Sie Boot-Repair, um eine "Bootinfo-Zusammenfassung" bereitzustellen


Da Sie Ubuntu immer noch booten können, können Sie das Boot-Repair-Tool mit dem apt-getBefehl installieren und ausführen und dann verwenden, um Create a Bootinfo summary.

Führen Sie die folgenden Befehle in einem Terminalfenster aus, um das boot-repairTool zu installieren .

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. Geben Sie anschließend den Befehl ein boot-repair, um das Tool zu starten.
  2. Nach einer kurzen Verzögerung boot-repairwerden Sie gefragt, ob Sie die neueste Version herunterladen möchten. Da Sie gerade die neueste Version installiert haben, antworten Sie No.
  3. Wenn Sie boot-repairaufgefordert werden, das pastebinitPaket zu installieren , antworten Sie mit Yes.
  4. Das Tool scannt nun Ihr System und zeigt (eventuell) das im Bild unten gezeigte Fenster an. Klicken Sie auf das Create a Bootinfo summaryKästchen / die Schaltfläche. Dadurch werden Informationen zur Startkonfiguration Ihres Systems erfasst, jedoch keine Änderungen vorgenommen.


    Erstes Boot-Repair-Fenster

  5. Wenn die Zusammenfassung boot erstellt wurde, boot-repairwird eine Meldung angezeigt , eine URL enthalten , die wie folgt aussehen sollte: http://paste.ubuntu.com/123456/.

    Bitte aktualisieren / bearbeiten Sie Ihre Frage und fügen Sie diese URL hinzu. Die Informationen im Pastebin, auf die dieser Link verweist, werden uns (wie ich hoffe) bei der Diagnose des Problems helfen.

Ich denke, das Überschreiben des VBR der Windows-Partition hat dieses Problem verursacht.

Ich verstehe, dass es mehrere Schritte zum Starten eines Betriebssystems gibt. In Ihrem Fall passiert meiner Meinung nach so etwas wie die folgenden Schritte.

  1. Das BIOS Ihres Computers versucht, den Code im ersten Sektor der Festplatte auszuführen. Dieser erste Sektor wird normalerweise als MBR (Master Boot Record) bezeichnet .
  2. Zusätzlich zum MBR kann jede Partition auch einen Startdatensatz haben. Es wird oft als Volume Boot Record oder VBR bezeichnet . Der MBR auf Ihrer Festplatte überträgt die Steuerelemente an den VBR von Partition 1, Ihrer Windows-Partition.
  3. Windows erwartet, dass der VBR einer Partition den nächsten Schritt zum Booten eines Betriebssystems wie Windows 7 unternimmt. Windows hätte also ursprünglich einen VBR installiert, der die Steuerung an das Windows- bootmgrProgramm in Ihrer Windows-Partition überträgt .

    Wenn Sie Ubuntu angewiesen haben, GRUB in der Windows-Partition zu installieren, hat GRUB anscheinend die Windows-VBR durch eine eigene ersetzt. Diese GRUB-VBR zeigt das GRUB-Startmenü an.
  4. Die Anweisungen, die GRUB derzeit zum Booten von Windows verwendet, lauten im Wesentlichen, die VBR in der Windows-Partition zu lokalisieren und die Steuerung darauf zu übertragen. Die VBR in der Windows-Partition ist die VBR von GRUB. Wenn Sie die Steuerung darauf übertragen, wird nur das GRUB-Startmenü (erneut) angezeigt.

Leider bin ich mir noch nicht sicher, wie ich das am besten beheben kann. Wir möchten darauf achten, dass wir GRUB nicht beschädigen und es unmöglich machen, irgendetwas auf Ihrem Computer zu booten, wenn wir versuchen, das Problem beim Booten von Windows zu beheben.

Unten finden Sie eine Kopie einiger Informationen aus Ihrer Bootinfo-Zusammenfassung als Referenz. Meine obigen Kommentare basieren auf diesen Informationen.

============================= Boot Info Summary: ===========================

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 
    of the same hard drive for core.img. core.img is at this location and 
    looks for (,msdos2)/boot/grub on this drive.

sda1: ______________________________________________________________________

    File system:       ntfs
    Boot sector type:  Grub2 (v1.99)
    Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1
                       and looks at sector 44090872 of the same hard drive 
                       for core.img. core.img is at this location and looks
                       for (,msdos2)/boot/grub on this drive. No errors 
                       found in the Boot Parameter Block.
    Operating System:  Windows 7
    Boot files:        /bootmgr /Boot/BCD /Windows/System32/winload.exe

sda2: ______________________________________________________________________

    File system:       ext4
    Boot sector type:  -
    Boot sector info: 
    Operating System:  Ubuntu 12.04 LTS
    Boot files:        /boot/grub/grub.cfg /etc/fstab /boot/grub/core.img

Eine mögliche Problemumgehung zum Starten von Windows 7

Im Folgenden finden Sie einen Vorschlag zum Bearbeiten Ihrer GRUB-Startbefehle, mit denen Sie möglicherweise Windows 7 starten können. Ich bin nicht sicher, ob dies funktioniert, aber es scheint sich zu lohnen, es zu versuchen.

Derzeit grub.cfgwerden die folgenden GRUB-Startbefehle zum Starten von Windows 7 verwendet.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    chainloader +1
}

Ich schlage vor, dass Sie versuchen, dies zu ändern, und stattdessen diese Befehle verwenden.

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Hier sind die Schritte dazu.

  1. Booten Sie Ihr System über das GRUB-Menü.
  2. Wählen Sie den GRUB-Startmenüeintrag aus (markieren Sie ihn) Windows 7 (loader) (on /dev/sda1).
  3. Drücken Sie e, um die GRUB-Startbefehle für Windows 7 zu bearbeiten.
  4. Nehmen Sie zwei Änderungen an dieser Befehlsliste vor, wie menuentryoben dargestellt.
    • Fügen Sie den Befehl hinzu insmod ntldr
    • Ändern Sie den Befehl
      chainloader +1
      in
      ntldr ($root)/bootmgr
  5. Drücken Sie entweder Ctrl+ Xoder F10, um mit diesen bearbeiteten Befehlen zu starten.

Anmerkung 1:

Wenn die obige Problemumgehung das Windows 7-Startmenü erfolgreich lädt, können Sie es durch halbpersistent machen

  1. Verwenden Sie sudo, um die Datei zu bearbeiten /etc/grub.d/40_customund die zweite, menuentryoben gezeigte , geänderte hinzuzufügen . (Wenn Sie dies tun, würde ich auch vorschlagen, dass Sie den Titel dieses "benutzerdefinierten" Eintrags ändern.)
  2. Führen Sie den Befehl sudo update-grubzum Aktualisieren aus /boot/grub/grub.cfg, um Ihren benutzerdefinierten Eintrag einzuschließen. (Es befindet sich beim Booten unten im GRUB-Menü.)

Ich würde den obigen Vorschlag als nur teilweise gebackene Lösung ansehen. Eine bessere Lösung besteht darin, die Windows-VBR auf der Windows-Partition wiederherzustellen, ohne auch die Bootfähigkeit von GRUB zu beeinträchtigen.

Ich denke ... bin mir aber nicht zu 100% sicher ..., dass der Windows-Wiederherstellungsbefehl bootsectdazu verwendet werden kann. Wenn Sie dieses Risiko eingehen möchten, wird im Folgenden ein möglicher Weg beschrieben, dies zu tun.

  • Drücken Sie F8beim Starten von Windows, um das Advanced Boot OptionsMenü aufzurufen.
  • Wählen Sie den Repair Your ComputerEintrag aus.
  • Gehen Sie durch die nächsten Fenster, bis Sie erreichen System Recovery Options.
  • Wählen Command Prompt
  • Führen Sie den Befehl aus bootsect /nt60 C:

Vielleicht möchten Sie aber auch etwas warten und sehen, welche anderen Antworten Sie auf Ihre Frage erhalten, bevor Sie das Risiko eingehen, das oben Genannte zu versuchen.

Anmerkung 2:

Bei der Suche nach anderen Dingen bin ich auf AskUbuntu auf zwei andere Fragen gestoßen, die mit Ihrem Problem zusammenhängen.

  1. Windows 7 startet nach der Installation von Ubuntu 11 nicht mehr
  2. Windows 7 startet nach der Installation von Ubuntu nicht mehr

Ich bin mir nicht sicher, wie viel Hilfe diese Fragen bieten. Die Antwort auf die zweite Frage bestand darin, den Befehl bootrec /fixbootzum Wiederherstellen des VBR für die Windows-Partition zu verwenden. Aus dieser Frage ging hervor, dass die Verwendung des bootrec /fixbootBefehls das Problem löste.

Aber die zweite Frage besteht darauf , dass bootrec /fixboothat nicht das Problem zu lösen.

(Verrückt nach mir, was dort vor sich gehen könnte.)


Danke für Ihre Antwort. Ich habe es in Ordnung, zum Glück, aber wenn andere Leute nichts davon wussten, tun sie es jetzt. Die URL von Boot-Repair-Info ist http://paste.ubuntu.com/981952/
Sim

1
Ich denke, Ihr Problem wurde durch die Installation von GRUB auf Ihrer Windows-Partition verursacht. Siehe das Update zu meiner Antwort.
irrational John

Also, was denkst du, kann ich tun? Sollte ich bootrec verwenden und dann grub neu installieren? oder gibt es einen anderen weg
Sim

Sie können den Windows-Start wie gewohnt reparieren. Anschließend wird Windows automatisch gestartet, ohne dass Sie dazu aufgefordert werden (Windows erkennt Linux nicht). Wenn das behoben ist, können Sie Linux von einem USB-Stick booten und GRUB erneut ausführen. Berühren Sie diesmal nicht die Windows-Partition;)
pzkpfw

Meiner Antwort wurde ein Vorschlag für eine mögliche vorübergehende Problemumgehung hinzugefügt.
irrational John

7
menuentry "Windows 7" {
    insmod ntfs
    set root=(hd0,1)
    drivemap -s (hd0) ($root)
    ntldr /bootmgr
    #or chainloader +1
}

Wenn Sie Windows auf einer anderen Partition als (hd0,1) installiert haben, müssen Sie den Befehl drivemap verwenden, um Windows zu starten. Chainloader +1 oder ntldr / bootmgr können beide zum Booten von Windows 7 verwendet werden.

Sie haben den VBR der ersten Partition geändert. Sie können dies wiederherstellen, indem Sie diese Befehle im Windows-Wiederherstellungsmodus in cmd ausführen, wenn Sie von der Installations-CD booten:

bootrec.exe /FixMbr  

bootrec.exe /FixBoot  

bootrec.exe /RebuildBcd

Dies ist die einzige Antwort, die tatsächlich funktioniert. +1
Gänseblümchen

1

Ich weiß nicht wirklich über „(UN) Boote)“ Sie shoud versuchen Ihr Windows zu beheben , indem Sie Windows - Reparatur - Diskette (wählen Sie Command Promptdas ausführen bootsect.exeDienstprogramm. Bootsect im Schuh - Ordner befindet , damit Ihr Verzeichnis wechseln boot. Jetzt laufen bootsect /nt60 C:\(ohne Anführungszeichen) Wenn Sie Windows 7 ursprünglich auf der C:Partition installiert hatten , können Sie alternativ "bootsect / nt60 SYS" oder "bootsect / nt60 ALL" ausführen.

Und dann installieren Sie GRUB erneut.


Danke für Ihre Antwort. Was ich meinte, waren die Madenstiefel, aber keine Fenster, nachdem ich sie ausgewählt hatte. Nachforschungen zufolge sollten wir zum Reparieren des Starts für mbr "bootrec.exe / fixboot" und dann "bootrec.exe / fixmbr" verwenden. Ist Ihre Methode dieselbe wie bootrec oder anders?
Sim

Nach meiner Erfahrung ist es nach der Installation von Ubuntu als Dual-Boot besser, Windows beim Neustart auszuführen und die Reparatur selbst durchzuführen, und dann zu Ubuntu zurückzukehren. Ich habe diese Methode jedes Mal befolgt und für erfolgreich befunden.
Beeju

Wahr. Für Windows benutze ich EasyBCD
Sim

0

GRUB ist in Ihrem Windows-Partitions-Bootsektor (PBR) installiert, wie Ihre BootInfo zeigt:

sda1: __________________________________________________________________________

File system:       ntfs
Boot sector type:  Grub2 (v1.99)
Boot sector info:  Grub2 (v1.99) is installed in the boot sector of sda1 
                   and looks at sector 44090872 of the same hard drive 
                   for core.img. core.img is at this location and looks 
                   for (,msdos2)/boot/grub on this drive. No errors found 
                   in the Boot Parameter Block.
Operating System:  Windows 7

Dies verhindert, dass Windows startet.

Die Lösung ist hier gut beschrieben: http://ubuntuforums.org/showpost.php?p=11693662&postcount=1


0

Ich hatte das gleiche Problem und möchte die Lösung bestätigen, die für mich funktioniert hat, in der Hoffnung, dass sie anderen hilft ...

Ich habe grub.cfg bearbeitet, um die Änderungen hier wiederzugeben:

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13
    ntldr ($root)/bootmgr
}

Das heißt, ich fügte hinzu ...

insmod ntldr

und änderte die letzte Zeile auf ...

ntldr ($ root) / bootmgr

Ich werde versuchen, den VBR in Kürze wiederherzustellen, und werde berichten, wie es sich herausstellt.


0

Mein Windows 10 Boot Problem wurde gelöst ....

menuentry "Windows 10 (loader) (on /dev/sda1)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    insmod ntldr
    set root='(hd0,msdos1)'
    search --no-floppy --fs-uuid --set=root 1EA0019AA0017A13 
    ntldr ($root)/bootmgr
}

hexadec.code kann abweichen


2
Ich bin nicht sicher, ob dies wirklich zu dieser Frage gehört ...
Zanna
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.