Come posso impedire a Windows di sovrascrivere GRUB quando utilizzo una macchina a doppio avvio


19

Ho letto molto sul dual-boot e sembra facile come caricare Windows e quindi caricare Linux con GRUB, ma tutti dicono che Windows ama cestinare GRUB quando ne ha l'opportunità. Quali sono alcuni passaggi che posso fare per evitare che ciò accada (oltre all'utilizzo del bootloader di Windows, voglio mantenerlo il più semplice possibile)?


Risposte:


17

Windows sovrascrivere il settore di avvio ogni volta che lo si installa, l'aggiornamento a una nuova versione, o di utilizzare strumenti come bootrec /fixmbr, bootrec /fixbooto il più vecchio fdisk /mbr. In generale, installa prima Windows, poi Linux. Il settore di avvio rimarrà attivo finché non esegui una delle operazioni sopra indicate. (E forse ci sono anche altri modi per scrivere sull'MBR.) Ma, se perdi GRUB, è facilmente ripristinabile:

  • Avvio da un CD live (CD / DVD o unità flash).
  • Diventa root o usa i sudocomandi seguenti.
  • Elencare le partizioni disponibili se necessario: fdisk -l
  • Windows esisterà quasi sicuramente su / dev / sda1: mount /dev/sda1 /mnt
  • Reinstallare GRUB nell'MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Reboot: shutdown -r now
  • Ripristina il menu di GRUB: update-grub

Puoi anche installare 100% Unix, Linux o BSD ed eseguire semplicemente Windows in una macchina virtuale se il computer è abbastanza forte per quello.

Inoltre: il BIOS del tuo computer potrebbe avere un'opzione per proteggere il settore di avvio.


Per aggiornamento, vuoi dire da Windows 7 a Windows 8 o semplicemente eseguire Windows Update?
Nathan2055,

1
@ Nathan2055 Sì, come da 7 a 8 ... nuove versioni successive di Windows. Windows Update non influirà sull'MBR.
Christopher

Così ho pensato. La cosa buona è che dubito che avrò problemi con l'MBR in Windows, e non potrò andare su Windows 8 dopo aver letto questo .
Nathan2055,

1
In alternativa, puoi provare a configurare il bootloader di Windows per il chainload su grub: oreillynet.com/pub/h/2337 Un po 'più coinvolto e potrebbe essere troppo lavoro per un effetto troppo scarso, ma farlo in questo modo lo rende se Windows sovrascrive il bootloader, sarai comunque in grado di avviare Linux.
Bratchley

@JoelDavis: Sì, ho letto diversi tutorial su come farlo, ma per qualcuno che non ha assolutamente esperienza nemmeno caricando GRUB e il fatto che non penso che Windows mi causerà problemi, considerando che non voglio aggiornare, Penso che andrò con una configurazione GRUB vaniglia e non fare casino con il bootloader.
Nathan2055

4

Penso che andrò con una configurazione GRUB vaniglia e non fare casino con il bootloader.

Se usi qualsiasi forma di grub, stai scherzando con il boot loader. GRUB è l'acronimo di "grand unified bootloader". E ci sono due versioni: grub v1 e grub v2. Tutti i moderni sistemi linux usano automaticamente grub2. Se installi un sistema Linux, grub è il bootloader predefinito a meno che tu non vada specificamente con LILO, cosa che non consiglierei.

Personalmente ho un sistema a doppio avvio con XP e Wheezy. Continuo a xp di scrivere grub disabilitando l'opzione "windows restore".

Prima di disabilitare l'opzione di ripristino, avrei dovuto correggere grub almeno una volta alla settimana poiché il bootloader di Windows continuava a sovrascrivere grub.

Sto riparando per installare Windows 8 su un disco rigido esterno attraverso una porta USB. Spero che questo vada senza intoppi e non faccia casino con il mio mbr.


1
la disabilitazione dell'opzione di ripristino di Windows sembra aver risolto questo problema per me.
DrCord,

2

Questa è una soluzione alternativa che utilizzo, funziona con gli aggiornamenti di Windows senza alcun intervento richiesto: Rinomina EFI / Microsoft in EFI / Microsomething Sostituisci il percorso di avvio di Windows in grub.cfg in EFI / Microsomething / bootmfgw.efi In questo modo:

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

Basta aprire gparted, fare clic con il tasto destro sulla partizione che contiene Grub, andare a gestire i flag e contrassegnare l'avvio.


2
Questo può funzionare se l'installazione di Windows ha semplicemente cambiato la partizione di avvio. Nel mio caso, l'installazione di Windows 8.1 ha sovrascritto l'MBR, richiedendo la grub-installsoluzione di Christopher .
Nathan Kidd,

1

Una soluzione che ho trovato da qualche parte online (unix.stackexchange.com) prevede la disattivazione di Windows Boot Manager. Entra in Linux (l'installazione originale, se puoi o live CD / DVD) ed esegui questo comando:

efibootmgr

Nota che questo metodo funzionerà solo se Linux è stato installato in modalità UEFI, quindi riceverai un errore se Linux è stato installato in modalità Legacy. Se lo hai installato in modalità UEFI, otterrai alcune informazioni e un elenco. Noterai il caricatore / gestore di avvio di Windows e Linux da qualche parte nell'elenco. È probabile che Windows abbia una priorità più alta (l'ordine di avvio è sopra l'elenco).

Ci sono anche stelle * accanto ad alcune, se non tutte, le voci, contrassegnandole come attive.

Guarda il numero di avvio di 4 cifre accanto alla voce di Windows ed esegui

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

Ciò disattiverà la voce di Windows. Inoltre, assicurati che Windows disattivato abbia una priorità più alta se non lo fa già:

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

dove #### è il numero di avvio di Windows.

Se riavvii ora, eseguirai l'avvio su grub, se l'opzione Linux è abilitata con la massima priorità.

Nota che Windows non sembra riconoscere che è stato disattivato, quindi questo non verrà ripristinato avviando Windows o aggiornandolo.

Ho partecipato a un installfest Linux locale in cui installiamo Linux per le persone interessate, molto spesso come sistema operativo secondario accanto a Windows. Devo ancora vedere che questo metodo fallisce e l'ho provato su diverse distro (principalmente Ubuntu e Mint) e su diversi distributori (Asus, Acer, HP, Lenovo).


0

Windows 10 sovrascrive GRUB 2 quando si cambiano il colore del testo, le dimensioni, il carattere o i titoli delle voci di menu.

Esistono due modi per risolverlo.

  1. È possibile installare Linux in modalità Legacy (Impostazioni BIOS> Boot> Supporto legacy + Legacy First).

  2. È possibile disattivare il ripristino di Windows (ovvero Protezione del sistema) (Pannello di controllo> Sistema e sicurezza> Sistema> Protezione del sistema> Configura> Disabilita).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.