Wie kann ich verhindern, dass Windows GRUB überschreibt, wenn ein Dual-Boot-Computer verwendet wird?


19

Ich habe viel über Dual-Boot gelesen, und es scheint so einfach wie das Laden von Windows und dann das Laden von Linux mit GRUB zu sein, aber jeder sagt, dass Windows es liebt, GRUB in den Papierkorb zu werfen, wenn sich die Gelegenheit dazu bietet. Welche Maßnahmen kann ich ergreifen, um dies zu verhindern (außer mit dem Windows-Bootloader möchte ich dies so einfach wie möglich halten)?


Antworten:


17

Windows wird den Bootsektor überschreiben , wenn Sie es installieren, aktualisieren Sie sie auf eine neue Version, oder Werkzeuge wie bootrec /fixmbr, bootrec /fixbootoder älter fdisk /mbr. Installieren Sie in der Regel zuerst Windows und dann Linux. Der Bootsektor bleibt bestehen, bis Sie eine der oben genannten Aktionen ausführen. (Und vielleicht gibt es auch andere Möglichkeiten, auf den MBR zu schreiben.) Wenn Sie jedoch GRUB verlieren, kann dieser problemlos wiederhergestellt werden:

  • Booten Sie von einer Live-CD (CD / DVD oder Flash-Laufwerk).
  • Werden Sie root oder verwenden Sie die folgenden sudoBefehle.
  • Listen Sie bei Bedarf die verfügbaren Partitionen auf: fdisk -l
  • Windows wird mit ziemlicher Sicherheit unter / dev / sda1 existieren: mount /dev/sda1 /mnt
  • Installieren Sie GRUB erneut im MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Neustart: shutdown -r now
  • Stellen Sie das GRUB-Menü wieder her: update-grub

Sie können auch 100% Unix, Linux oder BSD installieren und Windows einfach auf einer virtuellen Maschine ausführen, wenn der Computer dafür stark genug ist.

Außerdem: Das BIOS Ihres Computers verfügt möglicherweise über eine Option zum Schutz des Startsektors.


Meinen Sie mit Upgrade Windows 7 auf Windows 8 oder nur Windows Update?
Nathan2055

1
@ Nathan2055 Ja, wie 7 bis 8 ... neue, höhere Versionen von Windows. Windows Update hat keine Auswirkungen auf den MBR.
Christopher

Ich dachte auch. Das Gute ist, dass ich bezweifle, dass ich unter Windows mit dem MBR in Konflikt geraten werde, und dass ich nach dem Lesen auf keinen Fall zu Windows 8 wechseln kann .
Nathan2055

1
Alternativ können Sie versuchen, den Windows-Bootloader so zu konfigurieren, dass er Chainloading-to-Grub ausführt : oreillynet.com/pub/h/2337 Ein bisschen aufwändiger und möglicherweise zu viel Arbeit für zu wenig Wirkung Windows überschreibt den Bootloader, Sie können jedoch weiterhin mit Linux booten.
Bratchley

@JoelDavis: Ja, ich habe einige Tutorials dazu gelesen, aber für jemanden, der überhaupt keine Erfahrung mit dem Laden von GRUB hat und der nicht der Meinung ist, dass Windows mir Probleme bereitet, wenn ich bedenke, dass ich kein Upgrade durchführen möchte. Ich denke, ich werde mit einem Vanille-GRUB-Setup gehen und mich nicht mit dem Bootloader anlegen.
Nathan2055

4

Ich denke, ich werde mit einem Vanille-GRUB-Setup gehen und mich nicht mit dem Bootloader anlegen.

Wenn Sie irgendeine Form von Grub verwenden, spielen Sie mit dem Bootloader herum. GRUB steht für "Grand Unified Bootloader". Und es gibt zwei Versionen - grub v1 und grub v2. Alle modernen Linux-Systeme verwenden grub2 automatisch. Wenn Sie ein Linux-System installieren, ist grub der Standard-Bootloader, es sei denn, Sie entscheiden sich speziell für LILO, was ich nicht vorschlagen würde.

Ich persönlich habe ein Dual-Boot-System mit XP und Wheezy. Ich verhindere, dass XP überschreibt, indem ich die Option "Windows Restore" deaktiviere.

Bevor ich die Wiederherstellungsoption deaktivierte, musste ich grub mindestens einmal pro Woche reparieren, da der Windows-Bootloader grub immer wieder überschrieb.

Ich habe vor, Windows 8 über einen USB-Anschluss auf einer externen Festplatte zu installieren. Ich hoffe, dass dies reibungslos verläuft und nicht mit meinem mbr in Konflikt gerät.


1
Das Deaktivieren der Windows-Wiederherstellungsoption scheint dieses Problem für mich behoben zu haben.
DrCord

2

Dies ist eine Problemumgehung, die ich verwende. Sie funktioniert mit Windows-Updates, ohne dass Eingriffe erforderlich sind. Benennen Sie EFI / Microsoft in EFI / Microsomething um. Ersetzen Sie den Windows-Startpfad in grub.cfg durch EFI / Microsomething / bootmfgw.efi.

menuentry "Microsoft Windows UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
    chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}

1

Einfach öffnen gparted, mit der rechten Maustaste auf die Partition klicken, die Grub enthält, Flags verwalten und Boot markieren.


2
Dies funktioniert möglicherweise, wenn die Windows-Installation lediglich die Startpartition geändert hat. In meinem Fall Die Windows 8.1-Installation überschrieb den MBR und erforderte die Christopher- grub-installLösung.
Nathan Kidd

1

Eine Lösung, die ich irgendwo online gefunden habe (unix.stackexchange.com), besteht darin, den Windows-Boot-Manager zu deaktivieren. Rufen Sie Linux auf (entweder die ursprüngliche Installation, falls möglich, oder Live-CD / DVD) und führen Sie den folgenden Befehl aus:

efibootmgr

Beachten Sie, dass diese Methode nur funktioniert, wenn Linux im UEFI-Modus installiert wurde. Wenn Linux im Legacy-Modus installiert wurde, wird eine Fehlermeldung angezeigt. Wenn Sie es im UEFI-Modus installiert haben, erhalten Sie einige Informationen und eine Liste. Sie werden bemerken, dass Windows-Bootloader / -Manager und Linux irgendwo in der Liste stehen. Es ist wahrscheinlich, dass Windows eine höhere Priorität hat (die Startreihenfolge steht über der Liste).

Es gibt auch Sterne * neben einigen, wenn nicht allen Einträgen, die sie als aktiv markieren.

Schauen Sie sich die 4-stellige Startnummer neben dem Windows-Eintrag an und führen Sie sie aus

sudo efibootmgr --bootnum #### --inactive

Dadurch wird der Windows-Eintrag deaktiviert. Stellen Sie außerdem sicher, dass jetzt deaktiviertes Windows eine höhere Priorität hat, wenn dies noch nicht geschehen ist:

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

Dabei ist #### die Windows-Startnummer.

Wenn Sie jetzt neu starten, starten Sie zu grub, wenn die Linux-Option mit der höchsten Priorität aktiviert ist.

Beachten Sie, dass Windows anscheinend nicht erkennt, dass es deaktiviert wurde, sodass dies nicht durch Booten oder Aktualisieren von Windows wiederhergestellt wird.

Ich habe an einem lokalen Linux-Installationsfest teilgenommen, bei dem wir Linux für Interessierte installieren, meist als sekundäres Betriebssystem neben Windows. Ich habe diese Methode noch nicht erfolgreich getestet und sie in verschiedenen Distributionen (hauptsächlich Ubuntu und Mint) und bei verschiedenen Anbietern (Asus, Acer, HP, Lenovo) getestet.


0

Windows 10 überschreibt GRUB 2, wenn Sie die Textfarbe, -größe, -schriftart oder die Titel von Menüeinträgen ändern.

Es gibt zwei Möglichkeiten, dies zu lösen.

  1. Sie können Linux im Legacy-Modus installieren (BIOS-Einstellungen> Booten> Legacy-Support + Legacy First).

  2. Sie können die Windows-Wiederherstellung (auch als Systemschutz bezeichnet) deaktivieren (Systemsteuerung> System & Sicherheit> System> Systemschutz> Konfigurieren> Deaktivieren).

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.