Come faccio ad avviare il mio laptop HP in grub dal mio nuovo file efi?


28

Ho un laptop HP Pavilion Sleekbook 14 su cui ho installato Ubuntu 12.10 dual boot con Windows 8. Ho usato boot-repair per essere configurato per l'avvio in grub.

Il mio problema è che non sono stato in grado di avviarlo immediatamente dal nuovo file efi che è stato creato. Ho guardato intorno alle opzioni di avvio nella schermata del BIOS, ma non mi dà una scelta per Ubuntu. L'unico modo in cui posso avviare Ubuntu è premere F9 quando accendo il sistema e quindi navigare manualmente nel file efi di Ubuntu. Funziona ma se non sto prestando molta attenzione, si avvierà in Windows.

Dopo aver terminato l'esecuzione di boot-repair, mi ha detto di avviare da sda2 / EFI / ubuntu / shimx64.efi ho visto alcuni suggerimenti che dovrei spostare questo file al posto del bootmgfw.efi di Windows, ma sono preoccupato che lo farò rompere le cose e non essere in grado di avviare l'installazione di Windows 8. Mentre già non mi piace win8 anche più di win7, di tanto in tanto ne ho bisogno per un paio di compiti ...

I dettagli del mio boot-repair sono qui: http://paste.ubuntu.com/1418009/


shimx64.efi ha funzionato per me, anche se nel mio caso Ubuntu Gnome non si è avviato dopo l'installazione e ha dovuto selezionare il file creando una nuova opzione di avvio nel BIOS.
timkofu,

Ci sono un sacco di risposte su Windows qui, stai provando ad avviare Linux o Windows?
Evan Carroll,

molte cattive risposte inutilmente complesse a causa delle preoccupazioni di Windows fanno solo la ridenominazione sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efidell'efi di grub dalla risposta di @Vitor Abella
Evan Carroll,

Risposte:


29

Ho avuto lo stesso problema con il mio HP Pavilion g6 quando ho provato a eseguire il dual boot di Ubuntu 12.04.3 LTS e Windows 8. Cioè, anche dopo aver eseguito con successo Boot-Repair, il notebook si avviava direttamente su Windows 8. Se ho premuto F9 prima che venisse visualizzato il simbolo HP, sono stato in grado di entrare in un menu di avvio (menu HP? Non lo so ...) e da lì, selezionare la voce "Ubuntu", che a sua volta mi ha portato a GRUB 2 e infine alla mia installazione di Ubuntu.

Tuttavia, volevo poter avviare il computer direttamente su Linux, senza la necessità di alcun intervento da parte dell'utente.

Alla fine, la risposta di Rod Smith sopra , combinata con le informazioni che ho trovato in un altro forum, ha funzionato per me. Ho Secure Boot disabilitato e anche Legacy Boot disabilitato.

Questo è quello che ho fatto:

  • Ho avviato l'installazione di Ubuntu usando il trucco del tasto F9 all'avvio per poter scegliere il boot loader.
  • Una volta in Ubuntu, ho aperto un terminale.
  • Utilizzando il comando seguente, ho verificato dove si trovava il caricatore di avvio di Windows:

    $ sudo efibootmgr -v
    
  • Nel mio caso, il boot loader originale era qui: /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi. Si noti che nel computer potrebbe trovarsi in un posto diverso. In tal caso, dovrai regolare i comandi di seguito.

  • Come da raccomandazione di Rod nella sua risposta (quella su come riparare manualmente il boot loader), ho fatto un backup di quel file spostandolo di livello superiore:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
    
  • Infine, ho copiato il boot loader di GRUB2 in quel posto, "ingannando" il sistema nel caricamento del boot loader che volevo invece del boot loader originale di Windows.

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    

Quindi finalmente ho avuto il mio dual boot funzionante con GRUB2. Nel caso in cui Windows sovrascriva nuovamente il boot loader dopo un aggiornamento (come ha fatto con me), conosco già i passaggi per riportare grub al suo posto.

Spero che questo aiuti qualcuno. Per favore fatemi sapere se ci sono problemi con la mia soluzione.


9
Grazie, mi ha aiutato, tuttavia non ho potuto avviare Windows. All'avvio, avvia GRUB e in GRUB, l'opzione "Windows Boot Manager" passa nuovamente al menu di GRUB (prevedibile poiché si collega allo stesso file .efi). Sembrava quel problema anche se non sono stato fortunato con la riparazione del bagagliaio. L'ho risolto andando su Ubuntu, in /etc/grub.d/ riempiendo il file 40_custom copiando la voce di avvio di Windows che avevo nel mio incolla ubuntu e modificando l'URL del file .efi per puntare al backup di bootmgfw.efi. Quindi il menuentry contienechainloader /EFI/Microsoft/bootmgfw.efi
Vince

1
quel menuentry non funziona per me
Pierre,

@Pierre May: Forse usando la seguente voce di menu funzionerà per te: menuentry 'Real Windows' {set root = (hd0, gpt2) chainloader /EFI/Microsoft/bootmgfw.efi} (supponiamo che la tua partizione efi sia sulla prima disco rigido, su sda2. Per essere sicuri, puoi digitare "c" quando sei nel grub e digitare "ls" per vedere le partizioni disponibili.
tobiasBora

12

Ho riscontrato lo stesso problema su HP ProBook 4340s con Windows 8 originale già sovrascritto dal nuovo Kubuntu 15.04 (preferisco nessun doppio avvio). Tra gli altri tentativi, ho anche provato Boot-Repair (sia da HD dopo la sua installazione sia tramite disco di riparazione di avvio ), ma quell'esercizio probabilmente non era necessario.

Ciò che ha reso il trucco sono state le seguenti modifiche all'installazione del BIOS (dopo l'avvio del computer premi F10 - vai a Configurazione del sistema - apri le Opzioni di avvio ):

  1. Controlla avvio personalizzato

  2. Seleziona SecureBoot

  3. Modalità di avvio : scegli UEFI Hybrid o UEFI Native (ho scelto UEFI Native)

  4. Ordine di avvio UEFI : imposta l'avvio personalizzato in alto

  5. Definisci opzione di avvio personalizzata : scegli Aggiungi + inserisci l'impostazione:\EFI\ubuntu\grubx64.efi

Abbiamo trovato la stringa di percorso corretta all'apertura di GRUB tramite l' opzione Boot from EFI File in Fast Boot Options (F9). All'inizio, l'elenco delle opzioni conteneva:

  • Gestione avvio del sistema operativo
  • Avvio da file EFI

Dopo aver aggiunto l'opzione di avvio personalizzato, è stata aggiunta all'elenco:

  • Avvio personalizzato
  • Gestione avvio del sistema operativo
  • Avvio da file EFI

Fatto esattamente qui su un HP Zbook 15, senza fortuna
cmbarbu il

Se usi un sistema uefi e installi UBUNTU 16.10 dopo Windows 10, questa risposta è quella corretta
leoredi

grazie, dovevo farloDefine Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
m3asmi

6

La UEFI di Hewlett-Packard mi ha dato il mal di cuore per un po '. La tua correzione mi ha aiutato a riavviare nuovamente il mio laptop HP in GRUB, senza prima premere F9.

Ho avuto un problema: dopo la tua correzione, ho potuto selezionare Windows 8 in GRUB, ma Windows 8 ha quindi rifiutato di avviarsi e mi è stato mostrato di nuovo il menu di GRUB.

La mia correzione:

  1. Copia del file efi originale Microsoft in /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. Modifica /boot/grub/grub.cfgper riconoscere il file efi Microsoft rinominato

Il laptop ora si avvia su GRUB, Ubuntu e Windows 8 ora si avvia OK da GRUB.


5

Di solito, l'esecuzione di Boot Repair esegue il backup del file del caricatore di avvio originale di Microsoft ( bootmgfw.efi) come bootmgfw.efi.bkpe sostituisce il bootmgfw.efifile originale con una copia di GRUB (o shim) e l'output di Boot Repair che hai pubblicato lo mostrerebbe; tuttavia, non vedo un tale file di backup. Pertanto, ti consiglio di fare una delle tre cose:

  • Eseguire di nuovo Boot Repair, ma cercare le opzioni relative al backup e alla sostituzione del caricatore di avvio Microsoft. Attiva quelle opzioni per continuare il processo. GRUB potrebbe o non potrebbe essere in grado di avviare Windows; sembra incostante, e più "miss" se lasci Secure Boot attivo.
  • Esegui il lavoro manualmente: da Linux, esegui il backup /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi(ti consiglio di spostarlo di un livello verso /boot/efi/EFI/Microsoft/bootmgfw.efi, invece di rinominarlo bootmgfw.efi.bkp, poiché quest'ultimo non è standard e rende strumenti diversi da Boot Repair e GRUB di Ubuntu in grado di localizzarlo). Copia /boot/efi/EFI/ubuntu/grubx64.efial suo posto; o se prevedi di far funzionare Secure Boot, copia /boot/efi/EFI/ubuntu/shimx64.efial suo posto e copia grubx64.efisu/boot/efi/EFI/Microsoft/Bootusando il suo nome originale. Dovrai quindi modificare la configurazione di GRUB per consentirgli di avviare il boot loader di Windows nella sua nuova posizione o con il suo nuovo nome. (Ho sentito che GRUB non può ancora avviare il boot loader di Windows in modalità Avvio protetto, quindi, se si desidera avviare Windows da GRUB, potrebbe essere necessario disabilitare Avvio protetto. OTOH, non l'ho mai provato da solo , quindi potrei sbagliarmi sulle capacità di GRUB in questo senso.)
  • Disabilita Secure Boot, quindi avvia Linux e installa il mio boot manager rEFInd usando il pacchetto Debian. Una volta fatto, digita sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot. Quest'ultimo comando sposta e rinomina i file in modo analogo alla procedura manuale che ho appena descritto o a ciò che fa Boot Repair, ma imposta rEFInd come boot loader predefinito anziché GRUB. Se vuoi usare Secure Boot, sarai in grado di destreggiarti tra i file e installare una nuova versione di shim (lo shim di Ubuntu è abbastanza presto da non funzionare correttamente con rEFInd). L'installazione di rEFInd in questo modo consente di avviare senza usare GRUB e la combinazione dello script di installazione (eseguito dal sistema del pacchetto quando si installa il pacchetto Debian) e lo mvrefind.shscript risolvono i problemi che si verificano.

Per la cronaca, i problemi riscontrati sono correlati a bug noti nell'implementazione EFI di HP. Fondamentalmente, il firmware è hardcoded per l'avvio dal boot loader di Microsoft e per rendere difficile o impossibile l'avvio da qualsiasi altra cosa. Consiglio vivamente di lamentarsi con HP per questo; non risolveranno tali problemi a meno che le persone non si lamentino.

Delle tre soluzioni, l'utilizzo di Boot Repair è probabilmente il più facile da far funzionare; ma, come ho notato, la denominazione non standard utilizzata da Boot Repair può finire per causare problemi per altre utility in futuro. Le regolazioni manuali richiederanno maggiori sforzi per funzionare, ma saranno più pulite a lungo termine. Alcune persone hanno segnalato problemi nel far caricare a catena GRUB il boot loader di Windows, quindi entrambe le opzioni potrebbero farti venire il mal di testa su quel punteggio. rEFInd ha molte più probabilità di avviare Linux o Windows senza problemi, ma come si può vedere dalla procedura, farla funzionare richiederà probabilmente un po 'più di sforzo che riavviare Boot Repair, anche se probabilmente meno che fare juggling manuale di file. L'uso di rEFInd in combinazione con Secure Boot richiede attualmente un maggiore salto del cerchio. (Vedi la documentazione di rEFInd per i dettagli.

C'è rischio in tutte e tre le soluzioni; Le implementazioni EFI variano troppo tra loro, il che significa che una procedura automatizzata o manuale che funziona bene su un computer può fallire miseramente su un altro. Per proteggerti, ti consiglio di eseguire il backup del tuo ESP (normalmente /boot/efisotto Linux); basta imballare i file in un tarball o copiarli in una directory di backup. Se qualcosa va storto, è possibile eseguire l'avvio con un disco di emergenza e ripristinare i file. Questo probabilmente riavvierà il computer.


Grazie mille! Non ho ancora provato nessuna delle tue opzioni, ma lo farà questo fine settimana.
maddentim,

Il tuo boot manager rEFInd sembra interessante. Quindi, stai dicendo che posso disabilitare Secure Boot e continuare a usare Win8? Una domanda che ho è che quando ho provato a tar / boot / efi, tar mi ha dato errori su alcuni dei file nella cartella ubuntu. Hanno nomi strani come 'ame = "App.lic'. Vedi le righe da 809 a 817 in paste.ubuntu.com/1418009 Quest'ultima installazione è stata in realtà il mio terzo tentativo. Penso che siano spazzatura e possano essere rimosse. Cosa fai pensi? Ti riporterò indietro dopo aver completato uno dei tuoi passi.
maddentim,

Ho visto diverse segnalazioni di persone che disabilitavano Secure Boot e non avevano problemi ad avviare Windows, quindi non è un problema. Se vuoi mantenerlo abilitato per i vantaggi di sicurezza, è comprensibile, ma non dovresti preoccuparti che Windows non possa essere avviato. Per quanto riguarda il tuo tarerrore, sembra che uno script abbia avuto un bug e abbia creato file con nomi strani. Non avevo notato quei file nel tuo output prima, ma è concepibile che qualunque bug li abbia creati sia anche responsabile dei tuoi problemi di avvio. In tal caso, l'utilizzo di rEFInd potrebbe aggirare il problema, ma le altre soluzioni potrebbero non riuscire.
Rod Smith,

rEFInd non è stato installato correttamente. Penso che LovinBuntu abbia identificato il problema. / boot / EFI è di sola lettura. Ecco parte dell'output: mkdir: impossibile creare la directory /boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi ': nessun file o directory di questo tipo Installazione driver per ext4 (ext4_x64.efi) mkdir: impossibile creare la directory `/ boot / efi // EFI / refind ': file system di sola lettura File binari rEFInd copiati
maddentim

3

Ho trascorso una giornata per lo stesso problema e alla fine l'ho risolto. Di seguito è la soluzione esatta. L'articolo completo per risolvere il problema è qui che è stato scritto da Rod Smith .

Informazioni utili

Per avviare la tabella delle partizioni GPT con caricatori di avvio efi. efii file vengono creati dai sistemi operativi al momento dell'installazione che devono essere forniti al BIOS UEFI del computer per dargli la possibilità di avviare i sistemi operativi corrispondenti.

Per contenere i file efi abbiamo bisogno di una partizione EFI. Di solito si tratta di una partizione inferiore a 200 MB con fat32formato con l'etichetta di EFI system. Include i .efifile e le relative dipendenze (a forma di .dllo .efi) necessari per l'avvio in una delle partizioni avviabili (di solito sistemi operativi). Nel mio computer questa partizione ha una struttura mostrata dal seguente schema:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

Normalmente i .efifile possono avere qualsiasi nome ma sembra che alcuni computer stiano cercando nomi specifici. Quindi cito anche i nomi standard.

  1. BootCartella: viene riconosciuta come opzione di avvio predefinita e se NVRAM viene cancellata per un motivo. Questo verrà utilizzato per impostazione predefinita. Il nome del caricatore di avvio efi è "bootx64.efi". Quando si desidera scegliere un caricatore di avvio efi predefinito, copiare il file efi e tutti i file circostanti nella cartella di avvio e rinominare il file efi del proprio sorgente in "bootx64.efi".

  2. MicrosoftCartella: contiene i file di avvio efi di Windows. Esistono diversi file efi, ma quello principale è "efibootmgfw.efi". Sono sicuro che questo è usato da Windows per l'avvio.

  3. UbuntuCartella: contiene il file efi di Ubuntu o Mint. Esistono diversi .efifile, ma quello principale ègrubx64.efi

Cosa fare?

Esistono già alcune opzioni di avvio installate al momento dell'installazione del sistema operativo. Tuttavia, possono essere passati dalle opzioni di avvio del BIOS per diversi motivi come la rimozione e la reinstallazione di un HDD o l'installazione di un nuovo sistema operativo o persino una nuova batteria della scheda madre. Esistono due soluzioni per ripristinare le opzioni di avvio.

  1. (Non consigliato) Come descritto in alcune risposte, possiamo sostituire un'opzione di avvio funzionante con quella che non funziona. Ma il problema rimane al contrario.

  2. Registrare manualmente il file mancante del caricatore di avvio efi.

Come fare?

  1. Avvio dal flash di avvio di Linux (utilizzo il flash di avvio di Linux Mint). Questo deve essere un USB EFI. (GPT usb che può essere creato da programmi come rufus)

  2. Montare la partizione EFI, la distribuzione potrebbe farlo automaticamente. Salta questo passaggio se /bootè disponibile e mostra una struttura simile a quella sopra. I moderni Ubuntu dovrebbero farlo per te.

    1. Trova l'indirizzo della tua partizione EFI. Questo può essere fatto usando il partedcomando o il Disksprogramma. Di solito è la prima o la seconda partizione nel disco di avvio. ( /dev/sda1O /dev/sda2) Questa partizione è in genere compresa tra 100 MB e 200 MB con FAT32 e il tipo di partizione del sistema EFI.

    2. Montare la partizione EFI. È possibile utilizzare il dfcomando per verificare se la partizione è stata montata in precedenza.

      df  /boot/efi
      

      Se la partizione non è stata montata prima (non è mostrato nel comando precedente) Montare la partizione usando il mountcomando:

      mount  /dev/sda1  /boot/efi
      
  3. Ora se navighi /boot/efivedrai la struttura del file simile a quella mia spiegata sopra. Controlla se riesci a trovare la cartella del sistema operativo perso. Nel mio caso, il BIOS del computer è stato in grado di vedere solo l'opzione di avvio di Windows, tuttavia avevo anche l'opzione di avvio Grub di Linux Mint.

    • (Non consigliato) La mia opzione di avvio di Windows funzionava, quindi per prima cosa a scopo di test ho fatto un backup della cartella Microsoft che contiene un mucchio di file con il file efi di avvio di Windows. ( bootmgfw.efi) Poi ho rinominato la cartella di Ubuntu in Microsoft, il prossimo ho rinominato il grubx64.efia bootmgfw.efi. Dopo il riavvio, invece di avviare il menu grub di Windows viene caricato, tuttavia, questa volta l'avvio su Windows era possibile solo con grub. E l'avvio diretto a Windows non era possibile.

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • ( Modo consigliato ) Basta scrivere l'indirizzo del file efi che si desidera vedere il relativo sistema operativo nelle opzioni di avvio del BIOS. Nel mio caso Linux Mint mancava dall'elenco di avvio del BIOS del computer. L'indirizzo del suo file efi era /efi/ubuntu/grubx64.efirelativo alla radice della partizione EFI. Quindi l'ho registrato su NVRAM usando il comando efibootmgr .

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      in p 1parte del comando 1 definisce il numero di partizione della partizione efi nel dato disco. nameForBootOptionè un nome personalizzato assegnato all'opzione di avvio

* Abbi cura di scrivere l'indirizzo corretto. Quando si monta la partizione in Linux. Monta la partizione in una cartella sotto la radice, che estende l'indirizzo reale in qualcosa del genere, /media/mint/CC1F-9708/EFI/ubuntuma dobbiamo solo dare /EFI/ubuntuparte.

* Il Disksprogramma è un meraviglioso strumento grafico che si trova sul flash di avvio di Linux Mint per impostazione predefinita. Può essere usato per controllare e trovare la partizione EFI e può anche essere usato per montare la partizione EFI senza usare alcun comando mount o parted. Devi solo cercarlo nel menu, Preferenze, Dischi.


È andato nel modo non raccomandato. Ha funzionato perfettamente.
Evan Carroll,

1

Sei interessato da questo errore: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

Soluzione:

  1. tramite Gparted, crea un'altra partizione EFI (FAT32, 200 MB, situata all'interno dei primi 100 GB del disco)
  2. sposta il flag 'boot' su di esso
  3. fare in modo che Ubuntu utilizzi questo nuovo ESP (ad es. tramite Boot-Repair -> Riparazione consigliata).

Bene, creare un altro ESP all'interno dei primi 100 GB significa spostare la partizione win8 su 200 MB ... Devo stare attento lì penso. Potrebbe interrompere l'avvio di Windows. Forse dovrei semplicemente spazzarlo via. Non mi piace nemmeno comunque. Ne ho davvero bisogno solo per guardare Netflix!
maddentim,

Aggiorna Boot-Repair (pacchetti 'boot-sav' e 'boot-repair'), quindi esegui la riparazione consigliata e indica il nuovo URL che verrà visualizzato.
LovinBuntu il


1

Ho riscontrato il problema simile dopo aver installato Cent-OS 7 su Windows 10. ecco il processo di seguito che ho seguito.

  • il sistema operativo iniziale era Windows 10
  • cent-os 7 installato usando uefi usb creato da rufus

problema: Windows 10 si stava caricando e il menu di avvio del sistema operativo cent non era nemmeno visualizzato.

  1. Come ho risolto:
  2. andato al bios
  3. avvio legacy abilitato (solo un ulteriore passaggio per future precauzioni)
  4. vai su Opzioni di avvio
  5. fare clic su Gestione avvio del sistema operativo
  6. Sposta CentOS UEFI sopra le finestre: premi f10 per salvare
  7. fare di nuovo clic su Bootmanager OD e verificarlo.
  8. premere f10 per salvare ed uscire

Ora il tuo sistema si avvierà in centos UEFI

poiché abbiamo abilitato l'avvio legacy, possiamo scegliere il tasto esc per passare al BIOS o ad altre opzioni di avvio


1

Ho trovato un modo per ottenere il mio HP Pavilion g7-2269wm (UEFI) per avviare rEFInd (potrebbe anche essere possibile GRUB) senza sostituirlo bootmgfw.eficon rEFInd o GRUB

Ho installato rEFInd e ho aggiunto rEFInd all'elenco dei boot manager usando sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

Riavviato utilizzando F9 per selezionare rEFInd e quindi selezionato Ubuntu.

Quindi rinominato bootmgfw.efiin bootmgfwms.efiutilizzo

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

Quindi ho riavviato e si è riavviato in rEFInd senza dover usare F9. La voce di Windows 10 mancava ora, quindi ho selezionato Ubuntu.

Quindi per tornare alla voce di Windows 10 ho eseguito

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

Quindi ho riavviato e rEFInd arriva senza premere F9 e Windows 10 appare come una voce.


1

È un'ulteriore risposta a quella di Mairabc per coloro che, come Vince o io, non possono avviare Windows. Ti servirà il fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

e il hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

Quindi devi modificare il file /etc/grub.d/40_custom in questo modo:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

Salvalo e fai un

# update-grub

riavviare in Windows ...


1

Sul mio laptop HP ho fatto come segue, passo dopo passo:

1 - Avvia in Ubuntu con F9

2 - Controlla dove si trova il caricatore di avvio di Windows

sudo efibootmgr -v

Nel mio caso /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3 - Backup del file .efi:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4 - Sostituisci il file .efi originale con quello di Ubuntu ( il trucco ):

sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

5 - Aggiungi Windows 10 menuentry su grub. Apri /etc/grub.d/40_custome aggiungi questa voce di menu alla fine del file:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6 - Salva 40_custome:

sudo update-grub

7 - Nel BIOS disabilita Secure Boot (non sono sicuro che sia necessario)

8 - Se tutto è andato per il verso giusto, si avvierà su Ubuntu di default e Windows 10 sarà un'altra opzione su GRUB.

È stato più facile di quanto pensassi.


sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efiha funzionato perfettamente.
Evan Carroll,

@EvanCarroll, pensi che dovrei migliorare la mia risposta? Sono davvero i passi che faccio.
Vitor Abella,

Beh, non sono sicuro che questa risposta sia assolutamente necessaria per essere onesti. Sono molte le parole ma il tuo metodo lì è la stessa cosa che Tekin ha nella sezione non raccomandata. Ma, per quelli degli utenti solo Linux, questo metodo è ottimo per la sua semplicità.
Evan Carroll,

1

Ho un laptop HP 2018, da 14 pollici con Windows 10 e doppio avvio Ubuntu. Premevo F9 per scegliere il sistema operativo che volevo e lo faccio da alcune settimane.

Soluzione:

  • Arrestare e premere F10 per accedere al BIOS

  • Passare alla parte del BIOS che elenca l'ordine di avvio

  • Premere Invio sul gestore di avvio del sistema operativo.

  • usa F5 o F6 per cambiare Ubuntu con Windows.

  • Salva ed esci.


0

Questo NON è un problema di Windows! Il firmware HP è completamente difettoso in quanto non utilizza (o addirittura non supporta correttamente) la variabile firmata UEFI "BootOrder". Penso che l'unica soluzione sia sostituire il file del caricatore di avvio di Windows (come alcuni già menzionato) con il tuo grub.efi.


0

Il mio scenario è simile a quello di Michal Žarnay il 19 agosto 15 alle 15:20 post: ho ottenuto alcune mini torri HP Pavillion Slimline 400-314, non avevo bisogno di Windows 8 preinstallato, quindi ho subito ripartizionato l'HDD e ho installato Ubuntu 14.04 e Grub2.

Sfortunatamente, il menu BIOS del Pavillion è estremamente limitato nella configurazione di avvio. Non ha la maggior parte delle scelte fantasiose che molti altri descrivono qui. Persino tentare di cambiare l'ordine di avvio non riesce a restare.

L'unica soluzione che ho avuto modo di lavorare è utilizzare la soluzione alternativa "denominazione alternativa" come descritto nella sezione "Soluzioni di denominazione alternative" di questo blog .


1
Benvenuto in Ask Ubuntu! Sebbene ciò possa teoricamente rispondere alla domanda, sarebbe preferibile includere qui le parti essenziali della risposta e fornire il collegamento come riferimento.
Mark Kirby,

0

Confermo che i passaggi di @Vitor Abella hanno risolto il problema del doppio avvio per il mio notebook HP 2000, tranne per il fatto che dovrò fare una delle seguenti operazioni (come menzionato da @mairabc):

  • abilita avvio legacy (per impostazione predefinita, l'avvio di sicurezza è disabilitato)

o

  • disabilitare l'avvio legacy e abilitare l'avvio di sicurezza.

0

Se non desideri spostarti tra i file di avvio , puoi provare a cambiare manualmente la sequenza di avvio:

Entra in Ubuntu manualmente e controlla la sequenza di avvio corrente e i loro ID usando:

sudo efibootmgr -v

quindi cambia le sequenze di avvio usando -o e gli ID (nell'ordine di avvio da sinistra a destra):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



Esempio :
1. Mostra le impostazioni di avvio correnti

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.Cambia l'ordine di avvio (vogliamo prima avviare Ubuntu, che mostrerà il menu di avvio all'avvio):
Nota che il primo tentativo ha dato un errore perché non è stato possibile trovare Boot2003 (unità floppydisk?), Come puoi vedere è ricreato dopo il riavvio però.

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3.Reboot. Ora dovrebbe apparire il menu di avvio. (2003 viene aggiunto automaticamente di nuovo):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

0

La mia soluzione è stata realizzata dopo aver saputo che stava caricando grub4dos

fare questa voce in men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi

0

Dopo l'installazione di Ubuntu 14.04 64 bit su un notebook HP-15-r248nf con Windows 8 aggiornato a 10 installato che si è verificato senza problemi oltre a un problema con una connessione Wifi interrotta con un driver Realtek Wifi (risolto usando echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf), il PC si è ancora avviato sotto Windows.

Ubuntu tramite grub è diventato disponibile solo quando si utilizza il tasto ESC durante la fase di avvio. boot-repair non ha aiutato, in realtà ha installato una serie di opzioni in grub, ma grub non era ancora direttamente accessibile.

In effetti era semplicemente richiesto di cambiare l'ordine di avvio da quello predefinito.

  • Al passaggio di avvio dopo aver acceso il PC digitare Esc, quindi F10 per accedere alla configurazione del BIOS.
  • Vai alla scheda "Configurazione del sistema", fino a "Opzioni di avvio". Premere Invio. Disabilita "Avvio sicuro"
  • Passare all'ordine di avvio UEFI. Ho messo usando F5 / F6 il gestore di avvio del sistema operativo in alto (probabilmente non richiesto).
  • Selezionare "Gestione avvio del sistema operativo" con Invio. Usando F5 / F6 sposta Ubuntu nella parte superiore sopra Windows Boot Manager.
  • Lasciare la configurazione del BIOS con F10 Salva / esci e confermare le modifiche apportate.

Ora verrai indirizzato a grub dove hai scelto l'opzione Ubuntu contrassegnata con una stella in alto che si avvierà automaticamente dopo un breve ritardo.


2
Si prega di formattare un po '. Non so nemmeno se è una risposta.
TheWanderer,

0

Risolto il mio problema di avvio EFI in questo modo:

Il efibootmgr -o opzione viene sovrascritta dopo il riavvio, quindi non funzionerà.

Tuttavia, ho scoperto che l' -nopzione fa. Quindi, esegui live usb-ubuntu efibootmgre scopri il numero di quattro cifre per ubuntu e carica quel numero con l' -nopzione. Quindi, per poter riavviare dal tuo sistema, crea uno script come questo:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

Sostituendo 0000con la voce ubuntu. L'esecuzione crontab -eti permetterà di modificare il tuo cron. Aggiungi una linea come questa ad essa:

@reboot /home/"user"/"path"/efibootsj

questo eseguirà lo script efibootsj(o qualunque sia il nome) una volta avviato il computer.

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.