Come ottenere che GRUB sia il bootloader predefinito invece di Windows Boot Manager su un portatile UEFI?

Ho un notebook HP Pavilion Touchsmart che è venuto con Windows 8. Ho aggiornato a 8.1, e ora voglio fare il dual-boot di una distribuzione Ubuntu con Windows 10. Quando faccio il dual-boot con Windows 8.1, il Windows Boot Manager ha sempre la priorità, anche dopo aver installato GRUB. Cosa devo fare per far sì che GRUB sia il bootloader predefinito al posto di Windows Boot Manager?

Soluzione

Questo è il post più lungo che abbia mai fatto su un sito StackExchange, ma questo processo richiede un sacco di spiegazioni e attenzione ai dettagli. E' anche un po' specifico per l'hardware in questione, che richiede più spiegazioni. Dopo un sacco di mal di testa, due riformattazioni accidentali del disco rigido, e un sacco di frustrazione con l'implementazione del firmware buggy di HP, ho finalmente ottenuto Xubuntu e Windows 10 in esecuzione piacevolmente fianco a fianco. Ho fatto questo con Windows 10, ma dovrebbe funzionare anche con Windows 8.1. Entrambi questi sistemi operativi più recenti utilizzano il nuovo (circa) sistema di firmware UEFI, invece del tradizionale sistema BIOS, che è dove la maggior parte delle confusioni con il dual-boot sembrano sorgere. Ho letto molte cose da molti posti con istruzioni per il dual-boot con un sistema BIOS, che parlano di UEFI come se fosse solo un diverso tipo di BIOS, o un livello opzionale tra il BIOS e un OS. UEFI e BIOS non sono la stessa cosa; un UEFI non è un BIOS, e un BIOS non è un UEFI. Sono completamente diversi. Ci sono alcune cose che devono essere fatte diversamente quando si fa il dual-boot con un sistema UEFI. In primo luogo, non usate EasyBCD. Ho visto un sacco di tutorial sul dual-boot non aggiornati che raccomandano EasyBCD, ma è progettato per funzionare con il firmware BIOS tradizionale utilizzato da Windows 7 e Windows Vista, e non funziona bene con i firmware UEFI più recenti (Windows 8, 8.1, o 10). Se avete già giocherellato con EasyBCD, non preoccupatevi, il peggio che ha fatto è stato fare un po' di confusione nelle voci di avvio EFI scrivendo cose nell'MBR. Lo ripuliremo al punto 4. Parlando di MBR, evitatelo come la peste. Il Master Boot Record è quello che viene utilizzato nei tradizionali firmware BIOS come un elenco di bootloader memorizzati nella partizione di avvio (o, se scritto da Windows, in qualsiasi partizione sia la prima) del disco rigido. Ha lo scopo di elencare i sistemi operativi sul disco rigido, e dire al firmware quale viene avviato per primo. Questo non funziona bene con il firmware UEFI di HP. Sembra che se c'è qualche modifica all'MBR fatta, il firmware UEFI dell'HP si confonde e torna al Boot Manager di Windows, che bypassa completamente GRUB. Di cosa avrete bisogno:

  • Una USB live o un CD di installazione con la vostra distribuzione preferita di Ubuntu.
  • Un supporto di installazione per il vostro sistema operativo Windows. Se stai aggiornando da Windows 8.1, puoi farlo senza scaricare l'intero .iso di 3+ GB per Windows 10 - c'è un programma di installazione web che lo scarica mentre si installa - ma, per questo metodo, hai bisogno dell'iso estratto su un CD o drive USB. È anche una buona idea averla a portata di mano per il futuro, quindi tanto vale crearla ora. Poiché questa domanda riguarda il dual-boot con un sistema UEFI, avrete bisogno di il sistema operativo a 64 bit.
  • Assicurati di avere il tuo Product Key, o non sarai in grado di aggiornare/installare.
  • Opzionale, ma altamente raccomandato: Un'unità abbastanza grande per il backup dei tuoi attuali file di Windows.
  • Abbastanza spazio sul disco rigido per entrambi i sistemi operativi, una partizione di avvio (solo 200 MB), e una partizione di swap linux (di solito la stessa dimensione della vostra RAM fisica). Passo 1: fare un backup

    Fate il backup di tutti i vostri file e cartelle di Windows che non volete perdere. Finché avete abbastanza spazio libero sul disco rigido per la vostra nuova partizione Ubuntu, questo processo non dovrebbe interferire con i file di Windows. Dovrebbe è una parola rischiosa, però. Windows 8.1 ha uno strumento "make a recovery disk", ma l'ho trovato inutile e non funzionale quando si è trattato di ripristinare il backup che ho fatto con esso. Il modo più diretto per preservare i file che non vuoi perdere è semplicemente aprire Windows Explorer, e copiarli su un disco di backup. Ci vuole una vita, ma ne vale la pena. Passo 2: Disabilitare l'avvio veloce, e spegnere il computer

    *Dovrai essere loggato come amministratore per fare questo. E' molto importante disabilitare Fast Startup prima di installare GRUB, perché se il programma di installazione di Ubuntu può rilevare la presenza di Windows dipende da come Windows si rappresenta nella partizione di avvio. Con Fast Startup correttamente disabilitato, dovrebbe essere rilevato. Il rilevamento sarà trattato al punto 4. Windows 8, 8.1, e 10 usano questa nuova cosa fantastica chiamata Fast Startup, che dice al tuo firmware di caricare uno speciale bootloader che ripristina il sistema al suo stato pre-spegnimento molto velocemente. Piuttosto fico, eh? Bene, perché cambia l'opzione di avvio successivo del sistema EFI, questa caratteristica dovrà essere disabilitata mentre si installa GRUB. Questo può essere fatto facendo quanto segue:

  1. Aprire il Pannello di controllo (Windows+X->Pannello di controllo dal desktop in Windows 8+) (apparentemente Microsoft odia gli utenti esperti, quindi cercare nel menu Start "Pannello di controllo" è ora il modo più veloce per aprirlo)
  2. Navigare fino a Opzioni energia
  3. Fai clic su "Scegli cosa fa il pulsante di accensione"
  4. Clicca su "Modifica impostazioni che non sono attualmente disponibili"
  5. Assicuratevi che la casella che dice "Attiva l'avvio veloce (raccomandato)" in basso sia non selezionata. Istruzioni più dettagliate possono essere trovate qui. È possibile riabilitare Fast Startup dopo l'installazione di GRUB, e sembra non causare alcun problema con l'avvio di Ubuntu/GRUB. Basta assicurarsi che sia disabilitato durante l'installazione. Dopo aver disabilitato Fast Startup, spegnete il computer. Poiché Fast Startup è disabilitato, Windows farà un arresto completo, e non cambierà l'opzione di avvio successivo nel gestore EFI del firmware. (Termini profani: Windows non dirà al vostro sistema HP di avviare il suo file Fast Startup alla prossima accensione, quindi userà la lista del gestore di avvio EFI, come dovrebbe. GRUB si metterà per primo in questa lista). Passo 3: Impostare le partizioni con gparted

    Prima di installare Ubuntu, vorrete usare il vostro live CD/USB per creare una partizione separata per esso. In questo modo, non sovrascriverà Windows. Assicuratevi di avere un backup. Nessuna garanzia - questo dipende da ciò che Windows ha deciso di fare nella vostra partizione di avvio, e può anche dipendere da quale versione/distribuzione di Ubuntu state usando - non le ho usate tutte. Per fare le partizioni, è necessario avviare il vostro CD live/USB, e aprire gparted. Ci sono molti tutorial sull'uso di gparted, ed è abbastanza facile da capire, quindi lascerò le specifiche a voi e a Internet.

  • Avrete bisogno di 4 partizioni:
  1. Una partizione di avvio. Se avete già installato Windows, non dovreste aver bisogno di fare nulla - dovrebbe essere già una delle prime partizioni del vostro disco. A volte Windows crea anche un'altra piccola partizione all'inizio del disco chiamata Recovery. Lasciatela stare.
  • Se state facendo una nuova installazione, e volete iniziare tutto da zero (questo cancellerà tutti i vostri dati), andate avanti e cancellate tutte le partizioni sul vostro disco, e poi fate questa partizione. Dovrebbe essere la prima partizione; il suo formato dovrebbe essere FAT32; e dovrebbe avere almeno 200 MB di dimensione. Se gparted ha un'opzione per etichettarla, chiamatela semplicemente boot. Se non c'è l'opzione etichetta, non preoccupatevi. Si deve, tuttavia, impostare le bandiere "boot" e "esp" su questa partizione; senza di esse, il programma di installazione di Ubuntu la ignorerà e userà un'installazione in modalità legacy, e Windows (10) si rifiuterà di installarla del tutto con l'errore "we couldn't create a new partition or locate an existing one". Oppure no. Sembra dipendere da come Windows si sente quel giorno...
  1. Una partizione Windows. Di nuovo, se avete già installato Windows, questa partizione dovrebbe ovviamente essere qui, dopo le partizioni di avvio e di ripristino. Questo è dove vuoi, ma devi ridimensionarlo per fare spazio alla tua partizione Ubuntu e alla partizione linux-swap. Usate l'opzione di ridimensionamento/spostamento di gparted per farlo. Ubuntu ha bisogno di almeno 5 GB, e la partizione linux-swap dovrebbe essere almeno la metà della dimensione della vostra RAM fisica, quindi ridimensionate la partizione di windows per fare abbastanza spazio per questo. gparted vi avvertirà di una potenziale perdita di dati - ridurre la partizione non dovrebbe distruggere o corrompere i dati, fino a quando non la riducete nello spazio utilizzato.
  • Se installate entrambi i sistemi operativi da zero (di nuovo, questo cancellerà tutti i vostri dati), Microsoft dice che avrete bisogno di almeno 20 GB per il sistema operativo a 64 bit, quindi questa partizione deve essere almeno 20 GB. Probabilmente vorrete più di questo, però: ho appena usato metà dello spazio dopo la partizione di avvio per Windows, e metà per Ubuntu e linux-swap. Se state partendo da zero, questa partizione deve essere formattata come FAT32. Quando installerete Windows, la formatterà in NTFS. Non fatelo con gparted; l'implementazione di Windows di NTFS è diversa da quella di gparted, e Windows potrebbe non essere in grado di riconoscere la partizione. Nel programma di installazione di Windows 10, si dovrebbe avere la possibilità di selezionare la partizione su cui mettere Windows 10. Se è formattata come FAT32, Windows dovrebbe essere in grado di vederla e installarsi lì. Se potete etichettare questa partizione, etichettatela "Windows". Questo ti renderà più facile durante l'installazione di Windows. Parlando del programma di installazione di Windows, non iniziate ancora. Se state facendo nuove installazioni di Ubuntu e Windows allo stesso tempo, invece di aggiornare da 8 o 8.1 a 10, è molto più facile installare prima Ubuntu.
  1. Una partizione Linux. Come la partizione di Windows, questa può variare in dimensione, ma il sito web di Ubuntu raccomanda almeno 5 GB. Di nuovo, probabilmente ne vorrete molti di più. Se state aggiornando invece di fare una nuova installazione di entrambi i sistemi operativi, dovreste essere in grado di creare questa partizione nel nuovo spazio "non allocato" mostrato in gparted. Fatela grande quanto volete, ma ricordatevi di lasciare spazio per una partizione linux-swap se pensate di usarne una. Dovrebbe essere formattata come ext4. Anche ext2 o ext3 dovrebbero funzionare, se preferite quelle per qualche motivo.
  • Se installate da zero, fate la vostra partizione Ubuntu proprio come descritto sopra. Assicuratevi che sia formattata come ext4, ext3, o ext2. Questo permetterà a Ubuntu di usarla, ma impedirà al programma di installazione di Windows 10 di riconoscerla, il che dovrebbe causare l'impostazione predefinita della partizione FAT32 che avete fatto al punto 3, che può leggere.
  1. Opzionale, ma raccomandato: una partizione linux-swap. Almeno la metà della dimensione della vostra RAM fisica è un buon inizio, ma vi consiglio di leggere i dettagli. Ho 8 GB di RAM e un disco rigido da 1 TB, quindi ho appena fatto questa partizione della stessa dimensione della mia RAM fisica. Passo 4: Installare prima Ubuntu

    Se state aggiornando a Windows 10 da un sistema operativo Windows esistente, o installando sia Windows 10 che una distribuzione Ubuntu su un disco rigido nuovo o appena partizionato, è molto più facile installare prima Ubuntu. Ubuntu utilizza GRUB 2 come bootloader, che fa le cose nel modo in cui un bootloader EFI dovrebbe. Windows 10 utilizza Windows Boot Manager, che fa le cose... beh, come le fa Windows... Se si installa Windows per primo, probabilmente non sarà possibile avviare Ubuntu senza tenere premuto un tasto speciale durante il processo di avvio per fermare il caricamento di Windows Boot Manager, perché Windows Boot Manager non rispetta GRUB quando viene aggiunto alla sua lista di bootloader. Quindi, invece, installate prima Ubuntu e GRUB, poi aggiungete una voce a GRUB per il Windows Boot Manager. Passo 4.1: Pulire le vecchie voci EFI (opzionale). Si prega di fare attenzione qui. Cancellare la cosa sbagliata può causare enormi problemi. Prima di installare Ubuntu, vogliamo assicurarci che i fantasmi delle passate installazioni del sistema operativo non tornino a perseguitarci in futuro. In un sistema UEFI, i sistemi operativi usano i file EFI (extensible firmware interface) per dire al firmware: "Ehi, io esisto. Quando un nuovo sistema operativo viene installato, aggiunge una voce alla lista dell'EFI Boot Manager, che gli dà un numero di voce unico, e dice all'EFI Boot Manager dove sono i suoi file EFI (Windows registra diversi file EFI - uno per l'avvio regolare, uno per l'avvio di ripristino, uno per l'avvio veloce - forse più a seconda del firmware e della versione del sistema operativo). L'EFI Boot Manager tiene anche traccia dell'ordine di avvio: una lista di numeri di voce che specificano cosa viene avviato per primo. Se avete usato EasyBCD; bcdedit; Windows; strumenti di riparazione del boot o di ripristino; riparazione del boot in un sistema operativo Linux; o anche se avete aggiornato Windows o lo avete reinstallato, c'è una buona probabilità che la vostra lista di voci EFI abbia ora alcuni duplicati. Almeno, questo è stato il caso del mio. Avere duplicati qui può impantanare il processo di avvio, poiché il firmware setaccia le voci non aggiornate o con file errati fino a trovare un bootloader che funziona. Può anche causare un boot-loop, dove il bootloader A indirizza il firmware al bootloader B, che lo indirizza di nuovo ad A, e poi le cose iniziano a richiedere molto, molto tempo... Ad ogni modo, per visualizzare l'elenco delle voci EFI e vedere cosa deve essere pulito, usate il pacchetto efibootmgr con il vostro live CD/USB. Dovrai installarlo usando sudo apt-get install efibootmgr in un terminale, poi eseguirlo usando sudo efibootmgr. Per impostazione predefinita, si otterrà un elenco di voci che assomiglia a questo: Quando ho usato per la prima volta questo strumento dopo aver giocherellato con EasyBCD e bcdedit cercando di far avviare le cose nel giusto ordine, avevo più di cento voci qui, la maggior parte delle quali duplicate. Se la vostra lista di boot manager non è troppo ingombrante, o se non vi sentite a vostro agio nel decidere cosa può essere cancellato e cosa non deve essere cancellato, passate al punto 4.2. Per pulire tutte le voci che non ti servono, usa efibootmgr -b -B, dove hex_number è sostituito dal numero elencato con la voce di boot. Quindi, per rimuovere la voce USB Drive (UEFI) (numerata Boot2001) nell'immagine sopra, dovrei usare sudo efibootmgr -b 2001 -B. Noterai che ho lasciato alcuni duplicati (tutte le oltre 3000 voci numerate). Puoi usare efibootmgr con diverse opzioni per vedere altri attributi delle voci, come i percorsi dei file a cui puntano. Queste voci sembrano duplicati, ma puntano tutte a file diversi usati dal mio portatile HP per aggiornare il BIOS. Fate attenzione a ciò che rimuovete. Può essere molto difficile o impossibile sostituire le cose qui. Puoi anche usare efibootmgr per cambiare il BootOrder, che visualizza. Vedi la pagina man per maggiori informazioni su questo utile strumento. Fase 4.2: Installazione di Ubuntu Dopo aver pulito le voci di EFI Boot Manager, se avete scelto di farlo, è finalmente il momento di installare Ubuntu. Con il vostro live CD/USB caricato, selezionate l'opzione di installazione dal menu del bootloader, o lanciatelo dal desktop dopo il login. Scegliete le vostre opzioni nella prima pagina del programma di installazione. La seconda parte sarà qualcosa di simile a questo: (io sto usando Xubuntu 14.04, quindi il vostro programma di installazione può variare, ma le opzioni dovrebbero essere abbastanza simili). Se il vostro programma di installazione non rileva la vostra installazione di Windows (come il mio), è necessario selezionare l'opzione "Qualcos'altro". Da lì, otterrete una schermata simile al menu di gparted che avete usato per impostare le partizioni. Selezionate semplicemente le partizioni che avete fatto, e assegnatele al punto di montaggio corretto selezionando una partizione e cliccando su "Cambia".

  • Se state installando entrambi i sistemi operativi da zero, fate la stessa cosa. Non usare l'opzione di installazione automatica. Devi assicurarti che Ubuntu venga installato nella partizione ext2/ext3/ext4, non** nella partizione FAT32 di Windows. Passo 5: Aggiornare o installare Windows secondo

    Dovresti avere un disco di installazione per Windows 10. Prima di iniziare l'installazione, assicurati di avere il tuo product key nelle vicinanze, o non sarai in grado di installare/aggiornare. Quando si avvia il CD/USB di installazione, il programma di installazione è abbastanza semplice. Un po' troppo semplice per il mio comfort - l'unico pulsante era "Installa Windows 10" o qualcosa del genere, e Windows 8, 8.1, e 10, sono famigerati per le loro installazioni dietro le quinte, dove dice semplicemente "Stiamo preparando le cose", e non fornisce dettagli su cosa sta effettivamente facendo al vostro sistema. Se avete seguito queste istruzioni fino ad ora, dovrebbe essere OK per iniziare l'installazione regolarmente.

  • Se stai aggiornando da Windows 8 o Windows 8.1, non dovresti fare nulla di speciale con il processo di installazione. Supera l'installazione (molto lunga) e procedi al passo 6.
  • Se stai facendo una nuova installazione, il programma di installazione ti chiederà dove vuoi installare Windows 10. Assicuratevi di selezionare la partizione FAT32 che avete fatto nel passaggio 2, e non un'altra partizione, o quella partizione sarà cancellata e formattata. Poiché Ubuntu è già installato, Windows 10 dovrebbe rispettare la partizione di avvio e non riformattarla. Avere le voci spazzatura pulite dalla lista di EFI Boot Manager libererà anche spazio nella piccola partizione di avvio di 200 MB, riducendo le possibilità che Windows si confonda e si arrabbi e cancelli tutto per sé. Passo 6: Aggiornare e (opzionalmente) personalizzare GRUB

    Dopo l'installazione o l'aggiornamento a Windows 10, è necessario riavviare Ubuntu per aggiornare GRUB in modo che includa Windows Boot Manager nella sua lista. Prima di fare questo, disabilitate di nuovo Fast Startup. Questo viene fatto in modo molto simile a come avete fatto nel passo 2. Il pannello di controllo e l'interfaccia utente delle impostazioni sono un po' diversi, ma la maggior parte delle opzioni sono ancora lì. Dopo aver disabilitato di nuovo Fast Startup, riavviate il computer. Se Windows si avvia di default, avrete bisogno di tenere premuto il tasto speciale per il vostro portatile per arrivare al menu del firmware del sistema. Sul mio HP Touchsmart, quel tasto è Esc. Altri tasti comuni sono F12, Delete, F10... Il manuale del tuo computer dovrebbe essere in grado di aiutarti. Dal menu del firmware, avvia in GRUB. Ci dovrebbe essere un'opzione per "selezionare un dispositivo di avvio" o qualcosa di simile, e Ubuntu o GRUB dovrebbero essere elencati lì. Se non è elencato, cercate un'opzione per avviare da un file EFI, e navigate verso /EFI/ubuntu/grubx64.efi o (se avete Secure Boot abilitato), EFI/ubuntu/shimx64.efi invece. I percorsi effettivi di questi file possono variare a seconda delle vostre opzioni e di come è impostata la vostra partizione di avvio, ma i nomi dei file dovrebbero essere gli stessi. Selezionando uno di questi file .efi si dovrebbe avviare GRUB, dove è possibile avviare la propria distribuzione Ubuntu. Una volta effettuato l'accesso, aprire un terminale e digitare sudo update-grub. Questo eseguirà lo script os-prober che GRUB utilizza per compilare grub.cfg, che dice al file EFI di grub quali voci includere, quali colori utilizzare, ecc. Lo script os-prober dovrebbe identificare Windows Boot Manager, e aggiungerlo automaticamente alla lista. Opzionalmente, è possibile installare Grub Customizer per cambiare l'ordine delle voci di menu e cambiare il comportamento, il colore e lo sfondo del menu di GRUB. Puoi installarlo da un terminale usando sudo apt-get install grub-customizer, e poi esegui sudo grub-customizer. Quando si usa GRUB su un sistema UEFI condiviso con un sistema operativo Windows, NON installare in MBR. Alcuni tutorial elencano come passo cruciale l'uso di Grub Customizer "Install to MBR" opzione sotto il menu File. Non dovreste non farlo sulla maggior parte dei sistemi UEFI. L'MBR (Master Boot Record) è progettato per i firmware BIOS, ed è ancora usato dal Boot Loader di Windows in una certa misura. Aggiungere GRUB all'MBR, quando è già nella lista delle voci EFI, può causare un sacco di palle di pelo. Se è necessario assicurarsi che GRUB sia la prima voce nell'elenco dell'ordine di avvio (cioè se Windows si avvia sempre, anche se si è fatto tutto bene), utilizzare efibootmgr (vedi passo 4.1) per visualizzare/modificare l'ordine di avvio di EFI Manager. Note

    Non ho menzionato Secure Boot a tutti, perché normalmente non dovrebbe influenzare l'installazione di Ubuntu. Molti tutorial sul dual-boot parlano di disabilitarlo, ma di solito non è necessario con un installatore a 64 bit. Tuttavia, ogni PC è diverso, e Secure Boot è abbastanza nuovo (2012), quindi diversi firmware possono implementare le cose in modo diverso. Per esempio, la versione del mio firmware HP include un'opzione "legacy boot", che disabilita Secure Boot e tratta i sistemi operativi installati come se fossero firmware BIOS: alcune persone raccomandano di abilitarla per l'installazione per il dual-boot. Installare Ubuntu in modalità legacy boot sul mio sistema ha impedito a GRUB di aggiungersi alla lista delle voci EFI, quindi tutto quello che poteva fare era aggiungersi all'MBR, di cui Windows Boot Manager aveva il pieno controllo. Windows Boot Manager ha richiesto un sacco di tweak per visualizzare l'elenco delle voci, e dopo tutto ciò, avrebbe avviato solo le voci di Windows, rendendo GRUB inutilizzabile senza selezionare manualmente il suo file EFI ogni volta che lo accendevo. Vedere qui per ulteriori informazioni su Ubuntu e Secure Boot e Legacy Boot, e informazioni sulla differenza tra installazioni UEFI e BIOS in generale.

Commentari (26)

Non voglio duplicare un post per una potenziale violazione della policy, quindi vi linkerò la mia risposta per questo problema. In breve ho un portatile Samsung con Windows 10 già installato e stavo tentando di installare linux con più istanze; Ubuntu 12.04, 14.04, e 16.04. Ho usato Boot-Repair e ho cambiato Boot Priority nel mio Setup BIOS che ha portato ad un caricamento GRUB funzionale, ma disordinato. Risposta dell'utente Michael Hoffmann fornisce una buona spiegazione per l'installazione su disco vuoto e come pulire GRUB, ma non volevo rimuovere la mia installazione di Windows 10.

Una spiegazione dettagliata può essere trovata nel mio post QUI.

Commentari (1)

Una soluzione un po' più semplice per il problema di cui sopra.

  1. Premere F10 durante l'avvio per passare alle impostazioni avanzate del BIOS
  2. Nelle impostazioni BIOS Boot Order abilitare Legacy Boot order che abiliterà sia UEFI che Legacy Boot Order.
  3. Aumentare il Boot Delay a 5 secondi darà un po' di tempo durante la selezione del sistema operativo in fase di avvio.
  4. Salvate le impostazioni del BIOS e uscite.
  5. Al prossimo avvio vi verrà chiesta l'opzione di selezione del boot. Premere F9 per entrare e selezionare l'opzione di avvio appropriata (Windows OS Boot Manager o Ubuntu)
Commentari (2)