Grub non mostra un'opzione di Windows 8 dopo il doppio avvio


25

Quindi, ho avviato con successo il doppio avvio della mia macchina Windows 8 con Ubuntu 12.04. Tuttavia, non ho ancora un metodo conveniente per scegliere quale sistema operativo caricare al momento dell'avvio.

Dopo aver installato Ubuntu, il mio computer carica ancora Windows 8 direttamente. Ho quindi aggiunto grubx64.efialla lista bianca del mio boot loader. Ma dopo ciò, la mia macchina carica Ubuntu direttamente senza nemmeno l'ombra di GRUB che appare!

Ho usato boot-repair e ho ottenuto questo URL paste.ubuntu : paste.ubuntu.com/1326074 . Dopo aver eseguito boot-repair (e rielaborato il grubx64.efifile in elenco ), GRUB ora appare ma senza alcuna opzione di Windows 8!

Infine, ho corso sudo fdisk -le mi ha dato questo:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Immagino che il mio problema abbia qualcosa a che fare con l'avvertimento fdiskdall'alto, ma non so cosa farne. Come posso procedere ora?

modificare

Il mio etc/default/grubè il seguente:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Inoltre, solo per la cronaca, questo è quello che ho seguito durante l'installazione del mio dual-boot. Il tutorial (che utilizza, 11.10, devo notare), non menziona nulla su questo problema. C'è qualcosa lì che non avrei dovuto fare?


Leggi questa risposta, può aiutarti: askubuntu.com/questions/84501/…
NickTux,

Risposte:


17

Innanzitutto, l' fdisk -loutput non è un problema; che identifica semplicemente il tuo disco come usando il sistema di partizionamento GUID Partition Table (GPT) . Per visualizzare le tue partizioni, devi invece utilizzare uno strumento abilitato per GPT, come gdisko parted, anziché fdisk, che non comprende GPT.

In secondo luogo, potresti essere in grado di fare in modo che GRUB esegua il chainload di Windows aggiungendo una voce adatta /etc/grub.d/40_custome quindi eseguendo un sudo update-grub. Una voce potrebbe assomigliare a questa:

menuentry "Windows 8" {
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

I dettagli potrebbero dipendere dall'installazione, tuttavia.

In terzo luogo, se ritieni che rEFInd sia brutto, puoi sempre provare un altro tema rEFInd o crearne uno tuo, come descritto nella documentazione di rEFInd. In alternativa, se si preferisce un caricatore di avvio in modalità testo, è possibile impostare l' textonlyopzione in refind.conf. Puoi raggiungere un fine simile passando a gummiboot.

In quarto luogo, se rEFInd segnala periodicamente errori, si prega di scrivere quelli o scattare una foto dello schermo con una fotocamera digitale e segnalarmeli. (Sono il manutentore di rEFInd.) I bug non possono essere corretti se nessuno li segnala; o se non sono bug in rEFInd, i messaggi possono fornire indizi su come risolvere il problema.

Infine, è possibile avviare Linux tramite rEFInd (o gummiboot) senza usare GRUB; hai solo bisogno di un boot loader EFI diverso. La mia preferenza personale è il caricatore di stub EFI del kernel Linux . Tuttavia, questo è disponibile solo nei kernel 3.3.0 e successivi. Poiché Ubuntu 12.04 viene fornito con un kernel 3.2.0, dovrai trovare una 3.3.0 preinstallata per Ubuntu 12.04 (ne ho sentito parlare, ma non ho nessun link utile) o costruire il tuo possiede dal codice sorgente. (Potresti anche installare Ubuntu 12.10, che viene fornito con un kernel adatto, ma presumibilmente vuoi una versione LTS, quindi potrebbe non essere ottimale.) Vedi la pagina della documentazione di rEFInd all'avvio di Linuxper ulteriori dettagli su come configurarlo. Puoi anche usare ELILO o GRUB Legacy. Se si oppone semplicemente al ritardo, è possibile ridurre il valore di timeout di GRUB 2 e impostarlo per non visualizzare il menu per impostazione predefinita.


1
Innanzitutto, wow, non mi ero reso conto che sei il manutentore di rEFInd. Quindi, per quanto riguarda il menu di GRUB ... L'ho provato ma non funziona. Tra gli altri scatti al buio, ho provato a impostare la mia partizione ESP, ma senza risultati. Ho anche provato a usare uno di quegli editor grafici GRUB (ho dimenticato il nome). Infine, per quanto riguarda rEFInd, gli errori che sta segnalando non sono critici (modificherò il mio post per notare che) --- all'avvio mi dice solo che non riesce a trovare certi .efi. Non ho idea da dove vengano.
skytreader

Verificare la presenza del file specificato sull'ESP. Assicurati anche che il caso del nome file sia corretto. (Non dovrebbe importare, ma conosco un EFI difettoso dove lo fa!) Se questo non aiuta, quale messaggio di errore (se presente) restituisce GRUB quando si tenta di avviare Windows tramite questa voce?
Rod Smith,

8

Avviare Ubuntu usando il CD,
scegliere "Prova Ubuntu",
connettersi a Internet,
aprire una finestra del terminale usando Ctrl- Alt- ted eseguire:boot-repair

Se il boot-repair non viene trovato, installalo:

sudo add-apt-repository ppa:yannubuntu/boot-repair &&
sudo apt-get update &&
sudo apt-get install -y boot-repair &&
boot-repair

Fai clic su Riparazione consigliata. Scrivi su un foglio il nuovo URL che apparirà. Riavvia il PC, dovresti ottenere un menu GRUB con accesso sia a Ubuntu che a Windows. In caso di problemi, indicare il nuovo URL.


7

Entrambe le risposte con /EFI/Microsoft/Boot/bootmgfw.efilo farebbero. Tuttavia ho hackerato come l'inferno per ottenere le giuste impostazioni per set root='(hd0,gpt1)'. Se sai che è molto semplice

All'avvio di GRUB: premere c dare il comando lssul prompt.
Si ottiene un elenco di partizioni su hard disk come (hd0, gpt1) ecc.
Digitare ls(hd0, gpt1) e provare gli altri.
Guarda l'etichetta e se indica EFI sai che hai un successo.

Attenzione: potrebbero esserci più partizioni etichettate con EFI, a seconda di come hai installato Ubuntu. Provali tutti.


6

Prova a correre sudo update-grub. Si spera che questo riconosca automaticamente Windows 8 e lo aggiunga a GRUB e riconfiguri il menu.

Se fallisce, ti preghiamo di condividere il tuo /etc/default/grubfile qui, daremo un'occhiata.


1
Ciao. sudo update-grubnon ha fatto il trucco. Ho modificato la mia domanda per includere la mia /etc/default/grub. Nel frattempo, sto studiando la risposta collegata da NikTh.
skytreader

3

Prova a creare un file chiamato /etc/grub.d/30_windowsche contenga questo:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
Quindi eseguire sudo update-grube riavviare.

Tutorial completo


1
  1. Scarica Super Grub e segui le sue indicazioni. Non esco mai di casa senza di essa. Molto utile quando il menu di grub non viene visualizzato.

  2. Dovrai caricare su un cd e avviarlo. Segui semplicemente le istruzioni fornite.

  3. Può anche essere usato per riparare anche Windows. Dal momento che è possibile avviare solo Windows 8, si desidera scegliere la correzione di Linux.

Gioca con questo, ma leggi le istruzioni. Ti sentirai un esperto dopo un po '. RS


0

La mia soluzione alternativa definitiva

(* Perché Tom non ha funzionato e il collegamento di NikTh è troppo complicato. Ma hey, grazie per il disturbo!)

Installa rEFInd .


Accetto la mia risposta fino a quando qualcuno non evidenzia un possibile difetto e una soluzione o risolve i miei problemi (che, sfortunatamente, pone solo la domanda "Come posso inserire facilmente Windows 8 in GRUB ?").

( Modifica il 6/8/17: alla fine ho usato rEFInd per risolvere questo problema (vedi risposta accettata sopra).)

Lungi dall'essere una soluzione perfetta, usare rEFInd sembra un lavoro molto hack. Per uno, sembra brutto (mi dispiace rEFInd) e mi dice che l'accesso è stato negato su alcuni file .efi ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) all'avvio --- niente di critico, e se ne va con un pulsante stampa*. E, infine, scegliere Ubuntu efi carica ancora GRUB, il che è un passaggio del tutto inutile, almeno dal momento che non mi preoccuperò di tenere in giro più versioni del kernel.

In sintesi...

Pro: il mio sistema ora funziona più o meno come i miei dual-boot pre-UEFI. Contro: sembra brutto più un tempo di avvio più lungo.

* Devo notare che questo rEFInd è stato installato tramite la install.shmia partizione Ubuntu. Le precedenti esperienze con rEFInd (configurazione tramite Windows) non avevano questo problema.


Se una precedente installazione di rEFInd tramite Windows non produce errori su file che non sono stati trovati ma la tua attuale installazione da Linux fa, allora il mio sospetto è che una delle due cose sta succedendo: 1) Hai una scheda madre con un bug sensibile al maiuscolo / minuscolo, nel qual caso confondere con il caso di file o directory può migliorare le cose; oppure 2) C'è qualcosa di strano nel tuo ESP (FAT16 contro FAT32 o qualche danno minore al filesystem, per esempio). Alcuni EFI sembrano essere molto esigenti riguardo ai filesystem sui loro ESP. Nomi di file esatti possono essere utili per restringere il problema.
Rod Smith,

Ok. Colpa mia. Non stava dicendo che non è possibile trovare determinati efis, solo che l'accesso è stato negato su alcuni efis (quindi prendo il fatto che gli efis detti sono lì, semplicemente inaccessibili?). Ho notato questi file ora, anche se non ho ancora idea da dove provengano.
skytreader

"Accesso negato" è un errore insolito su EFI, nella mia esperienza. AFAIK, EFI non supporta la proprietà o le autorizzazioni come Linux, quindi non ha molto senso a meno che non si sia verificato un errore di lettura del disco. Ho visto strani errori di scrittura su disco in EFI che sono evaporati al successivo riavvio. Se il problema persiste, potresti prendere in considerazione l'esecuzione di un test SMART sul tuo disco nel caso in cui si verifichi un errore hardware e eseguire il backup e riscrivere l'ESP nel caso in cui ci siano alcuni strani danni al filesystem che dosfsck non può risolvere. Oltre a ciò, può essere utile riportare quali file causano problemi.
Rod Smith,

1
Il messaggio "accesso negato" si riferisce quasi sicuramente a Secure Boot. Tale messaggio viene visualizzato se rEFInd tenta di caricare un file binario EFI senza segno mentre è in modalità Avvio protetto. La cosa sorprendente di questo è che sei in grado di avviare rEFInd, dal momento che non è firmato da solo. La mia impressione è che nel tuo firmware ci sia una sorta di strana impostazione di avvio protetto a metà attivazione buggy. La soluzione più semplice al momento è disabilitare completamente Secure Boot, ma ce ne sono altri. Vedere la mia pagina Web all'indirizzo rodsbooks.com/efi-bootloaders/secureboot.html per ulteriori informazioni.
Rod Smith,

Sul mio laptop hp devo premere f9 e quindi avviare boot, altrimenti Windows si carica. Inoltre c'è un'opzione per avviare Windows anche da grub, anche se non lo uso mai. Se mi annoio in Windows, lo accendo e aspetto Windows. Se ho intenzione di avviare Ubuntu, premo semplicemente f9 non appena accendo.
geoffmcc,
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.