L'aggiornamento dal 13.10 al 14.04 ha rotto Grub


11

Ho un doppio avvio Ubuntu + Windows 8 su un sistema UEFI. Tutto è andato bene fino a quando non ho eseguito l'aggiornamento a Ubuntu 14.04 dal 13.10.

Ora quello che ottengo quando avvio il PC è una schermata di salvataggio di GRUB come questa con il seguente:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E
Failed to load image
Failed to open \EFI\Microsoft\Boot\MokManager.efi.efi - 800000000000000E
Failed to load image
Welcome to GRUB!

error: symbol 'grub_term_highlight_color' not found.
grub rescue> 

L'uso di boot-repair da un cd live (13.10 o 14.10) segnala che si è verificato un errore e crea questo rapporto: http://paste2.org/Y8mDwa0M

(La riparazione del boot dice che installerà i pacchetti da Ubuntu 13.10)

ma non cambia nulla.

Se premo f12 all'avvio, accedo a una schermata del BIOS (menu di avvio) in cui posso scegliere tra hdd, usb, lettore dvd e se faccio clic sull'HDD ho tre opzioni:

Seleziona un dispositivo per l'avvio:

Windows Boot Manager 
ubuntu
Ubuntu

L'opzione di Windows mi riporta al salvataggio di GRUB.

Con le altre due opzioni arrivo a un menu di Grub in cui sono in grado di avviare Ubuntu ma l'opzione della finestra non funziona

Non so più cosa fare

Aggiornamento :

Grazie per le risposte, in realtà le ho provate tutte (ho reinstallato grub più di 5 volte da diverse versioni di Ubuntu su chiavette USB e ho usato molte volte la riparazione di avvio ma nulla ha funzionato)

Alla fine sto usando rEFInd ( http://www.rodsbooks.com/refind/getting.html ) che mi sta permettendo di ottenere da dove posso avviare Ubuntu (ma non Windows) e avviare Windows da solo usando il menu di ricerca.

Ma ovviamente non è la soluzione ideale

Aggiornamento 2:

Ho un solo disco:

inserisci qui la descrizione dell'immagine

Aggiornamento 3:

questo è l'errore che appare quando provo ad installare grub o eseguo grub-install:

Installing for i386-pc platform. 
grub-install: Warning: This GPT partition label has no BIOS Boot Partition, the embed is not possible. 
grub-install: Warning: This embed is not possible. GRUB can only be installed in this configuration using blocklist. The blocklist however, are not reliable and it is not recommended to use ..
Installation completed, no errors reported.
Generating grub configuration file ... 
Found linux image: / boot/vmlinuz-3.13.0-24-generic 
Found initrd image: / boot/initrd.img-3.13.0-24-generic 
Found linux image: / boot/vmlinuz-3.11.0-19-generic 
Found initrd image: / boot/initrd.img-3.11.0-19-generic 
Found linux image: / boot/vmlinuz-3.11.0-7-generic 
Found initrd image: / boot/initrd.img-3.11.0-7-generic 
Found linux image: / boot/vmlinuz-3.11.0-5-generic 
Found initrd image: / boot/initrd.img-3.11.0-5-generic 
Found linux image: / boot/vmlinuz-3.11.0-4-generic 
Found initrd image: / boot/initrd.img-3.11.0-4-generic 
Found linux image: / boot/vmlinuz-3.11.0-3-generic 
Found initrd image: / boot/initrd.img-3.11.0-3-generic 
Found linux image: / boot/vmlinuz-3.11.0-2-generic 
Found initrd image: / boot/initrd.img-3.11.0-2-generic 
Found Windows Boot Manager on / dev/sda2 @ / EFI / Microsoft / Boot / Bootmgfw.efi 
Adding boot menu entry for the EFI firmware configuration 
done

(tradotto dall'italiano)



Ho provato questi comandi ma mi sono bloccato su chroot. Ottengo un errore: "chroot:

Ho avuto lo stesso errore andando al 14.04, questo mi aiuta: wiki.ubuntuusers.de/GRUB_2/Reparatur , quasi lo stesso della risposta di freeseek

1
@Larry Vedi Post sotto, Metodo 3 # 1 è il tuo problema, non puoi usare un root di cambiamento a 32 bit per riparare un sistema a 64 bit.
eyoung100,

Risposte:


7

Non ho provato questo con un grub rotto in 14.04 ma non ho mai avuto problemi usando queste istruzioni:
https://wiki.ubuntu.com/Grub2#Recover

Prima di tutto, devi avviare il tuo sistema da un cd o usb live. Poi

" METODO 3 - CHROOT

Questo metodo di installazione utilizza il comando chroot per accedere ai file del sistema non funzionanti. Una volta emesso il comando chroot, il LiveCD considera il sistema rotto / come suo. I comandi eseguiti in un ambiente chroot influenzeranno i filesystem dei sistemi rotti e non quelli del LiveCD.

1) Avviare sul desktop LiveCD (Ubuntu 9.10 o successivo). Si noti che il Live CD deve essere uguale al sistema che si sta riparando - a 32-bit o 64-bit (in caso contrario il chroot fallirà).

2) Aprire un terminale (Applicazioni> Accessori> Terminale).

3) Determina la tua normale partizione di sistema - (l'interruttore è una "L" minuscola)

sudo fdisk -l

Se non sei sicuro, corri

df -Th  

Cerca le dimensioni corrette del disco e il formato ext3 o ext4.

4) Montare la normale partizione di sistema:

Sostituisci la partizione corretta: sda1, sdb5, ecc.

sudo mount /dev/sdXX /mnt  

Esempio: sudo mount / dev / sda1 / mnt

5) Solo se si dispone di una partizione di avvio separata: sdYY è la designazione della partizione / boot (ad esempio sdb3)

sudo mount / dev / sdYY / mnt / boot 
6) Montare i filesystem virtuali critici:
sudo mount --bind / dev / mnt / dev
sudo mount --bind / dev / pts / mnt / dev / pts
sudo mount --bind / proc / mnt / proc
sudo mount --bind / sys / mnt / sys 
7) Chroot nel tuo normale dispositivo di sistema:

sudo chroot / mnt 

8) Se non c'è /boot/grub/grub.cfg o non è corretto, creane uno usando

update-grub 

9) Reinstalla GRUB 2:

Sostituire il dispositivo corretto: sda, sdb, ecc. Non specificare un numero di partizione.

grub-install / dev / sdX 

10) Verificare l'installazione (utilizzare il dispositivo corretto, ad esempio sda. Non specificare una partizione):

sudo grub-install --recheck / dev / sdX 

11) Esci da chroot: CTRL-D sulla tastiera

12) Smonta filesystem virtuali:

sudo umount / mnt / dev / pts
sudo umount / mnt / dev
sudo umount / mnt / proc
sudo umount / mnt / sys 

13) Se hai montato una partizione separata / di avvio:

sudo umount / mnt / boot 

14) Smonta la directory / usr di LiveCD:

sudo umount / mnt / usr 

15) Smonta l'ultimo dispositivo:

sudo umount / mnt 

16) Riavvia.

riavvio sudo 
"

Anche questi sono altri modi per riparare grub: come posso riparare grub? (Come riavere Ubuntu dopo aver installato Windows?)


1
I passaggi 3,4 e 9 hanno fatto il lavoro per me. Grazie
ezdazuzena,

1
boot-repair fallito miseramente - ma questo ha funzionato perfettamente per me
Jon Skarpeteig,

2

Aveva lo stesso errore "simbolo 'grub_term_highlight_color' non trovato", bloccato al salvataggio di Grub. Ho provato a riparare il bagagliaio (opzione consigliata), ma non ha funzionato!

Soluzione: Boot-repair.iso ( http://sourceforge.net/projects/boot-repair-cd/ ) avviabile scaricato e creato un disco USB avviabile. Avviato da esso, si è connesso a Internet e ha avviato "Riparazione consigliata", quindi ha seguito le istruzioni in pochi passaggi (cancellato / disinstallato grub e quindi reinstallato una nuova versione), che ha funzionato per me! Immagino che nel tuo caso grub dovrebbe essere disinstallato e quindi reinstallato su sda8 anziché su sdb1.


questo funziona per me: ho scaricato l' immagine cd di riparazione di avvio - ho usato x64 poiché l'installazione di Ubuntu è x64. Quindi installato ISO tramite unetbootin . Eseguite riparazioni regolari e viola!
Meta

Anche il disco di avvio (versione desktop 64.04 14.04) con la riparazione di avvio ha funzionato per me, dopo l'aggiornamento da 13.10 a 14.04. Da parte mia ho seguito le istruzioni qui (la seconda opzione) e ho cliccato su "Riparazione consigliata" nello strumento e poi il grub ha improvvisamente funzionato di nuovo!
Krøllebølle

2

Ho avuto lo stesso problema. La mia ipotesi è che, poiché ho due dischi rigidi, il sistema sta tentando di avviarsi da un'unità sbagliata in cui è installata una vecchia versione di GRUB. La mia soluzione era avviare Ubuntu con una chiavetta USB (non importa quale versione). Una volta avviato, questi comandi lo faranno, eseguiranno come root:

mkdir /tmp/drive
sudo mount /dev/sdX1 /tmp/drive
sudo mount --bind /dev /tmp/drive/dev
sudo mount --bind /proc /tmp/drive/proc
sudo mount --bind /sys /tmp/drive/sys
sudo chroot /tmp/drive
dpkg-reconfigure grub-pc

Dove sdX1 deve essere l'unità in cui è installato il sistema. Quando esegui l'ultimo comando dovresti selezionare l'unità sdX, anche se immagino che eseguirla più volte installerà la nuova versione di grub su ogni unità e ti darà un po 'di idea.


Ottengo mount: mount point / tmp / drive / dev non esiste
alemur

1
@Akmur hai dimenticato - eventualmente legare o montare l'unità sbagliata? --bind prende il filesystem nell'unità usb e sostituisce / dex / sdX1 / dev con usedevice / dev
eyoung100

@Akmur probabilmente hai montato la partizione sbagliata. Quando ho citato sdX1, questo deve fare riferimento alla partizione di avvio, che dovrebbe già contenere le directory dev, proc, sys. Se quelli non ci sono, molto probabilmente stai montando la partizione sbagliata. Se ritieni di aver montato la partizione giusta, forse vai avanti e crea quelle directory mancanti con mkdir.
Freeseek,

1

Ho avuto lo stesso errore durante l'aggiornamento dal 13.10 al 14.04. Queste istruzioni mi sono sembrate un po 'scoraggianti per me.

Ho finito per creare un'unità USB avviabile con Super Grub Disk su di essa. http://www.supergrubdisk.org/

Avviato da quello. All'avvio ha detto di rilevare i sistemi operativi installati. Ha trovato la mia installazione di Ubuntu 14.04, quindi gli ho detto di avviarlo. Avviato nessun problema.

Ho già installato Boot Repair sul mio sistema. https://sourceforge.net/p/boot-repair

L'ho eseguito e ho accettato le modifiche predefinite.

Spegnimento. Estrasse l'unità USB dallo slot, premette l'alimentazione e attese trattenendo il respiro.

Sistema avviato normalmente! Problema risolto.


L'OP ha dichiarato che Boot Repair non ha funzionato, quindi probabilmente non è una risposta.
mikewhatever,

1

Suppongo che tu abbia file EFI non aggiornati nella tua partizione EFI. C'è un bug del launchpad specifico della situazione EFI che sospetto risolva il tuo caso. Ha funzionato per me dopo che tutti gli altri suggerimenti non hanno funzionato. La correzione è aggiornare manualmente i file EFI . Di seguito è riportato un walk-through. Nota che dovrai sostituire la tua partizione EFI al posto di /dev/sda1.

  1. Avvia il CD live
  2. Apri xterm
  3. Usa parted per determinare la tua partizione EFI: sudo parted -l(sostituisci a / dev / sda1 nel prossimo passaggio)
  4. Montare la partizione EFI: sudo mount /dev/sda1 /mnt
  5. Aggiorna il file Boot EFI: sudo cp /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi

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.