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?
110
3
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:
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:
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.
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...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 usandosudo apt-get install efibootmgr
in un terminale, poi eseguirlo usandosudo 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, usaefibootmgr -b -B
, dovehex_number
è sostituito dal numero elencato con la voce di boot. Quindi, per rimuovere la voceUSB Drive (UEFI)
(numerata Boot2001) nell'immagine sopra, dovrei usaresudo efibootmgr -b 2001 -B
. Noterai che ho lasciato alcuni duplicati (tutte le oltre 3000 voci numerate). Puoi usareefibootmgr
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 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 usandosudo apt-get install grub-customizer
, e poi eseguisudo 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. NoteNon 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.
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.
Una soluzione un po' più semplice per il problema di cui sopra.