La actualización de 13.10 a 14.04 rompió Grub

11

Tengo un arranque dual Ubuntu + Windows 8 en un sistema UEFI. Todo estuvo bien hasta que actualicé a Ubuntu 14.04 desde 13.10.

Ahora, lo que obtengo cuando inicio la PC es una pantalla de rescate de grub como esta con lo siguiente:

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> 

El uso de la reparación de arranque desde un CD en vivo (ya sea 13.10 o 14.10) informa que ocurrió un error y crea este informe: http://paste2.org/Y8mDwa0M

(La reparación de arranque dice que instalará paquetes de Ubuntu 13.10)

Pero nada cambia.

Si presiono f12 en el arranque, llego a una pantalla de BIOS (menú de arranque) donde puedo elegir entre el disco duro, usb, lector de DVD y si hago clic en el disco duro, obtengo tres opciones:

Seleccione un dispositivo para iniciar:

Windows Boot Manager 
ubuntu
Ubuntu

La opción de Windows me lleva de vuelta al rescate de grub.

Con las otras dos opciones llego a un menú de grub donde puedo iniciar Ubuntu pero la opción de ventana no funciona

Ya no se que hacer

Actualización :

Gracias por las respuestas, en realidad las probé todas (reinstalé grub más de 5 veces desde diferentes versiones de Ubuntu en memorias USB y usé muchas veces la reparación de arranque pero nada funcionó)

Al final estoy usando rEFInd ( http://www.rodsbooks.com/refind/getting.html ), lo que me permite acceder a grub desde el cual puedo iniciar Ubuntu (pero no Windows) e iniciar Windows solo. usando el menú rEFInd.

Pero, por supuesto, no es la solución ideal.

Actualización 2:

Solo tengo un disco:

ingrese la descripción de la imagen aquí

Actualización 3:

Este es el error que aparece cuando intento instalar grub o ejecutar 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

(traducido del italiano)

Matteo Pagliazzi
fuente
2
Uhm ... ¿Relacionado? bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977
Shyam K
He probado estos comandos pero me quedo atascado en chroot. Me sale un error: "chroot: no se pudo ejecutar el comando` / bin / bash ': error de formato Exec
Obtuve el mismo error al 14.04, esto me ayuda: wiki.ubuntuusers.de/GRUB_2/Reparatur , casi lo mismo que la respuesta de freeseek
1
@Larry Vea la publicación a continuación, el Método 3 # 1 es su problema, no puede usar una raíz de cambio de 32 bits para reparar un sistema de 64 bits.
eyoung100

Respuestas:

7

No probé esto con un grub roto en 14.04 pero nunca me metí en problemas usando estas instrucciones:
https://wiki.ubuntu.com/Grub2#Recover

En primer lugar, debe iniciar su sistema desde un CD o USB en vivo. Entonces

" MÉTODO 3 - CHROOT

Este método de instalación utiliza el comando chroot para obtener acceso a los archivos del sistema dañado. Una vez que se emite el comando chroot, el LiveCD trata el sistema roto como propio. Los comandos que se ejecutan en un entorno chroot afectarán los sistemas de archivos de los sistemas dañados y no los del LiveCD.

1) Arranque en el LiveCD Desktop (Ubuntu 9.10 o posterior). Tenga en cuenta que el Live CD debe ser el mismo que el sistema que está reparando, ya sea de 32 bits o de 64 bits (si no, el chroot fallará).

2) Abra una terminal (Aplicaciones> Accesorios> Terminal).

3) Determine su partición normal del sistema (el interruptor es una "L" en minúsculas)

sudo fdisk -l

Si no estás seguro, corre

df -Th  

Busque el tamaño de disco correcto y el formato ext3 o ext4.

4) Monte su partición normal del sistema:

Sustituya la partición correcta: sda1, sdb5, etc.

sudo mount /dev/sdXX /mnt  

Ejemplo: sudo mount / dev / sda1 / mnt

5) Solo si tiene una partición de arranque separada: sdYY es la designación de partición / boot (por ejemplo, sdb3)

sudo mount / dev / sdYY / mnt / boot 
6) Montar los sistemas de archivos virtuales críticos:
montaje de sudo --bind / dev / mnt / dev
montaje de sudo --bind / dev / pts / mnt / dev / pts
montaje sudo --bind / proc / mnt / proc
montaje sudo --bind / sys / mnt / sys 
7) Chroot en su dispositivo de sistema normal:

sudo chroot / mnt 

8) Si no hay /boot/grub/grub.cfg o no es correcto, cree uno usando

actualización-grub 

9) Vuelva a instalar GRUB 2:

Sustituya el dispositivo correcto: sda, sdb, etc. No especifique un número de partición.

instalación-grub / dev / sdX 

10) Verifique la instalación (use el dispositivo correcto, por ejemplo sda. No especifique una partición):

sudo grub-install --recheck / dev / sdX 

11) Salga de chroot: CTRL-D en el teclado

12) Desmontar sistemas de archivos virtuales:

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

13) Si montó una partición separada / de arranque:

sudo umount / mnt / boot 

14) Desmontar el directorio / usr del LiveCD:

sudo umount / mnt / usr 

15) Desmontar el último dispositivo:

sudo umount / mnt 

16) reiniciar.

reinicio de sudo 
"

Además, estas son otras formas de reparar grub: ¿Cómo puedo reparar grub? (¿Cómo recuperar Ubuntu después de instalar Windows?)

desgua
fuente
1
Los pasos 3,4 y 9 hicieron el trabajo por mí. Gracias
ezdazuzena
1
la reparación del arranque falló miserablemente, pero esto funcionó perfectamente para mí
Jon Skarpeteig
2

Tenía el mismo error "símbolo 'grub_term_highlight_color' no encontrado", atascado en el rescate de Grub. Intenté reparar el arranque (opción recomendada), ¡pero no funcionó!

Solución: descargué boot-repair.iso de arranque ( http://sourceforge.net/projects/boot-repair-cd/ ) e hice un disco usb de arranque. Arranqué desde allí y me conecté a Internet y comencé la "Reparación recomendada", luego seguí las instrucciones en unos pocos pasos (grub eliminado / desinstalado y luego reinstalé una nueva versión), ¡lo cual funcionó para mí! Supongo que en su caso, grub debe desinstalarse y luego reinstalarse en sda8 en lugar de sdb1.

usuario191413
fuente
esto funciona para mí: he descargado la imagen de CD de reparación de arranque : utilicé x64 ya que la instalación de Ubuntu es x64. Luego instaló ISO a través de unetbootin . Realizó reparaciones regulares y viola!
Meta
El disco de arranque (versión de escritorio 14.04 de 64 bits) con la reparación de arranque también funcionó para mí, después de actualizar de 13.10 a 14.04. Por mi parte, seguí las instrucciones aquí (la segunda opción) e hice clic en "Reparación recomendada" en la herramienta y, de repente, ¡el grub volvió a funcionar!
Krøllebølle
2

Yo he tenido el mismo problema. Supongo que, dado que tengo dos discos duros, el sistema está tratando de comenzar desde el disco equivocado donde está instalada una versión anterior de GRUB. Mi solución fue iniciar Ubuntu con una memoria USB (no importa qué versión). Una vez que comience, estos comandos lo harán, se ejecutarán como 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

Donde sdX1 debe ser la unidad donde está instalado su sistema. Cuando ejecute el último comando, debe seleccionar la unidad sdX, aunque supongo que ejecutarla varias veces instalará la nueva versión de grub en cada unidad y le dará cierta tranquilidad.

Freeseek
fuente
Obtengo mount: mount point / tmp / drive / dev no existe
alemur
1
@Akmur olvidó: ¿posiblemente atar o montar la unidad incorrecta? --bind toma el sistema de archivos en la unidad usb y reemplaza / dex / sdX1 / dev con usedevice / dev
eyoung100
@Akmur probablemente montaste la partición incorrecta. Cuando mencioné sdX1, esto debe referirse a su partición de arranque, que ya debería contener los directorios dev, proc, sys. Si esos no están allí, lo más probable es que esté montando la partición incorrecta. Si cree que ha montado la partición correcta, tal vez simplemente continúe y cree los directorios que faltan con mkdir.
freeseek
1

Tuve el mismo error al actualizar de 13.10 a 14.04. Estas instrucciones me parecieron un poco desalentadoras.

Terminé creando una unidad USB de arranque con Super Grub Disk. http://www.supergrubdisk.org/

Arrancado de eso. En el arranque le dijo que detectara los sistemas operativos instalados. Encontró mi instalación de Ubuntu 14.04, así que le dije que arrancara eso. Arrancado sin problema.

Ya tenía Boot Repair instalado en mi sistema. https://sourceforge.net/p/boot-repair

Ejecuté eso y acepté los cambios predeterminados.

Apagar. Sacó la unidad USB de la ranura, presionó la alimentación y esperó con la respiración contenida.

Sistema arrancado normalmente! Problema resuelto.

Alan
fuente
El OP declaró que Boot Repair no funcionó, por lo que probablemente no sea una respuesta.
mikewhatever
1

Supongo que tienes archivos EFI obsoletos en tu partición EFI. Hay un error de launchpad específico para la situación de EFI que sospecho trata su caso. Funcionó para mí después de que todas las otras sugerencias no lo hicieron. La solución es actualizar los archivos EFI manualmente . A continuación se muestra un recorrido. Tenga en cuenta que tendrá que sustituir su partición EFI en lugar de /dev/sda1.

  1. Arrancar en vivo CD
  2. Xterm abierto
  3. Use parted para determinar su partición EFI: sudo parted -l(sustituya por / dev / sda1 en el siguiente paso)
  4. Monta tu partición EFI: sudo mount /dev/sda1 /mnt
  5. Actualice el archivo Boot EFI: sudo cp /mnt/EFI/ubuntu/grubx64.efi /mnt/EFI/Boot/bootx64.efi
jrennie
fuente