Grub no muestra una opción de Windows 8 después del arranque dual

25

Entonces, he arrancado con éxito mi máquina Windows 8 con Ubuntu 12.04. Sin embargo, todavía no tengo un método conveniente para elegir qué sistema operativo cargar en el momento del arranque.

Después de instalar Ubuntu, mi computadora todavía carga Windows 8 directamente. Luego agregué grubx64.efia la lista blanca de mi gestor de arranque. ¡Pero después de eso, mi máquina carga Ubuntu directamente sin que aparezca una sombra de GRUB!

Utilicé boot-repair y obtuve esta URL de paste.ubuntu : paste.ubuntu.com/1326074 . Después de ejecutar la reparación de arranque (y volver a grubx64.efiponer en blanco el archivo), GRUB ahora aparece pero sin ninguna opción de Windows 8.

Por último, corrí sudo fdisk -ly me dio esto:

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.

Supongo que mi problema tiene algo que ver con la advertencia de fdiskarriba, pero no sé qué hacer con ella. ¿Cómo procedo ahora?

Editar

Mi etc/default/grubes el siguiente:

# 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"

Además, solo para que conste, esto es lo que seguí al instalar mi arranque dual. El tutorial (que usa, 11.10, debo señalar), no menciona nada sobre este problema. ¿Hay algo allí que no debería haber hecho?

Skytreader
fuente
Lea esta respuesta, puede ayudarle: askubuntu.com/questions/84501/…
NickTux

Respuestas:

17

Primero, su fdisk -lsalida no es un problema; que simplemente identifica su disco como si utilizara el sistema de partición de tabla de particiones GUID (GPT) . Para ver sus particiones, debe utilizar una herramienta habilitada para GPT, como gdisko parted, en lugar de fdisk, que no comprende GPT.

En segundo lugar, puede hacer que GRUB cargue en cadena Windows agregando una entrada adecuada /etc/grub.d/40_customy luego haciendo una sudo update-grub. Una entrada podría verse así:

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

Sin embargo, los detalles pueden depender de su instalación.

Tercero, si considera que rEFInd es feo, siempre puede probar con otro tema de rEFInd o crear uno propio, como se describe en la documentación de rEFInd. Alternativamente, si prefiere un cargador de arranque en modo texto, puede configurar la textonlyopción en refind.conf. Puede lograr un fin similar cambiando a gummiboot.

Cuarto, si rEFInd informa periódicamente de errores, escríbalos o tome una foto de la pantalla con una cámara digital e infórmeme. (Soy el mantenedor de rEFInd.) Los errores no pueden repararse si nadie los denuncia; o si no son errores en rEFInd, los mensajes pueden proporcionar pistas sobre cómo resolver el problema.

Finalmente, es posible arrancar Linux a través de rEFInd (o gummiboot) sin usar GRUB; solo necesita un cargador de arranque EFI diferente. Mi preferencia personal es el cargador de código auxiliar EFI del kernel de Linux . Sin embargo, esto solo está disponible en los núcleos 3.3.0 y posteriores. Como Ubuntu 12.04 viene con un kernel 3.2.0, necesitará encontrar un 3.3.0 precompilado para Ubuntu 12.04 (he oído hablar de esas cosas, pero no tengo ningún enlace a mano) o construir su propio del código fuente. (También puede instalar Ubuntu 12.10, que se entrega con un kernel adecuado, pero presumiblemente desea una versión LTS, por lo que esto puede no ser óptimo). Consulte la página de documentación de rEFInd sobre el arranque de Linuxpara obtener detalles adicionales sobre cómo configurar esto. También puede usar ELILO o GRUB Legacy. Si simplemente se opone al retraso, podría reducir el valor de tiempo de espera de GRUB 2 y configurarlo para que no muestre el menú de forma predeterminada.

Rod Smith
fuente
1
Primero, wow, no me di cuenta de que eres el mantenedor de rEFInd. A continuación, con respecto a la menuentry GRUB ... He intentado eso pero no funciona. Entre otras tomas en la oscuridad, he intentado configurar mi partición ESP pero fue en vano. Incluso intenté usar uno de esos editores gráficos de GRUB (olvidé el nombre). Por último, con respecto a rEFInd, los errores que informa no son críticos (editaré mi publicación para tener en cuenta eso) --- al inicio solo me dice que no puede encontrar ciertos .efi. No tengo idea de dónde vinieron.
Skytreader
Verifique la presencia del archivo especificado en el ESP. También asegúrese de que el caso del nombre del archivo sea correcto. (¡No debería importar, pero sé de un EFI con errores donde sí lo hace!) Si eso no ayuda, ¿qué mensaje de error (si lo hay) devuelve GRUB cuando intenta iniciar Windows a través de esta entrada?
Rod Smith el
8

Inicie en Ubuntu usando el CD,
elija "Probar Ubuntu",
conéctese a internet,
abra una ventana de terminal usando Ctrl- Alt- ty luego ejecute:boot-repair

Si no se encuentra la reparación de arranque, instálela:

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

Haga clic en Reparación recomendada. Escriba en un papel la nueva URL que aparecerá. Reinicie la PC, debería obtener un menú GRUB con acceso a Ubuntu y Windows. Si hay algún problema, indique la nueva URL.

Scott Stensland
fuente
7

Ambas respuestas con /EFI/Microsoft/Boot/bootmgfw.efiharían. Sin embargo, pirateé como el infierno para obtener la configuración correcta set root='(hd0,gpt1)'. Si sabes es muy simple

Cuando GRUB comienza: presione c dar el comando lsen el indicador.
Obtiene una lista de particiones en discos duros como (hd0, gpt1) etc.
Escriba ls(hd0, gpt1) y pruebe los otros.
Mire la etiqueta y si dice EFI, sabe que tiene éxito.

Advertencia: podría haber más particiones etiquetadas con EFI, dependiendo de cómo instaló Ubuntu. Prueba todos ellos.

Jørgen
fuente
6

Intenta correr sudo update-grub. Con suerte, esto debería reconocer Windows 8 automáticamente y agregarlo a GRUB y reconfigurar el menú.

Si eso falla, comparta su /etc/default/grubarchivo aquí, lo revisaremos.

Tom Klino
fuente
1
Hola. sudo update-grubno hizo el truco. Edité mi pregunta para incluir mi /etc/default/grub. Mientras tanto, estoy estudiando la respuesta que NikTh enlazó.
Skytreader
3

Intenta crear un archivo llamado /etc/grub.d/30_windowsque contenga esto:

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

Tutorial completo

tradeJmark
fuente
1
  1. Descargue super Grub y siga sus instrucciones. Nunca salgo de casa sin ella. Muy útil cuando el menú de grub no aparece.

  2. Tendrás que cargarlo en un CD y arrancarlo. Simplemente siga las instrucciones que vienen con él.

  3. También se puede usar para arreglar ventanas. Como solo puede iniciar Windows 8, desea elegir la solución de Linux.

Juega un poco con esto pero lee las instrucciones. Te sentirás como un experto después de un tiempo. RS

zorro
fuente
0

Mi solución definitiva

(* Porque Tom no funcionó y el enlace de NikTh es demasiado complicado. Pero bueno, ¡gracias por molestarse!)

Instalar rEFInd .


Estoy aceptando mi propia respuesta hasta que alguien señale una posible falla y una solución o solucione mis problemas (que, desafortunadamente, solo hace la pregunta "¿Cómo pongo Windows 8 en GRUB fácilmente ?").

( Editar 8/6/17: finalmente utilicé rEFInd para resolver este problema (ver la respuesta aceptada arriba).)

Lejos de ser una solución perfecta, usar rEFInd parece un trabajo muy hack. Por un lado, se ve feo (lo siento rEFInd) y me dice que el acceso fue denegado en ciertos .efi ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) en el inicio --- sin embargo, nada crítico, y desaparece con un botón prensa*. Y, por último, elegir Ubuntu efi todavía carga GRUB, que es un paso completamente innecesario, al menos ya que no me molestaré en mantener varias versiones de kernel.

En resumen...

Pros: mi sistema ahora funciona más o menos como mis botas dobles anteriores a UEFI. Contras: se ve feo más un tiempo de arranque más largo.

* Debo tener en cuenta que este rEFInd se instaló a través install.shde mi partición de Ubuntu. Las experiencias anteriores con rEFInd (configuradas a través de Windows) no tuvieron este problema.

Skytreader
fuente
Si una instalación previa de rEFInd a través de Windows no produce errores sobre archivos que no se pudieron encontrar pero su instalación actual de Linux sí, entonces mi presentimiento es que una de las dos cosas está sucediendo: 1) Tiene una placa base con un error de distinción entre mayúsculas y minúsculas, en cuyo caso el mucking con el caso de archivos o directorios puede mejorar las cosas; o 2) Hay algo extraño en su ESP (FAT16 vs. FAT32 o algún daño menor en el sistema de archivos, por ejemplo). Algunos EFI parecen ser muy exigentes con los sistemas de archivos en sus ESP. Los nombres de archivo exactos pueden ser útiles para reducir el problema.
Rod Smith
Okay. Mi error. No estaba diciendo que no puede encontrar ciertos efis, solo que su acceso fue denegado en ciertos efis (así que supongo que dichos efis están allí, ¿simplemente inaccesibles?). He notado estos archivos ahora, aunque todavía no tengo idea de dónde provienen.
Skytreader
"Acceso denegado" es un error inusual en EFI, en mi experiencia. AFAIK, EFI no admite la propiedad o los permisos como lo hace Linux, por lo que no tiene sentido a menos que haya un error de lectura de disco. He visto errores de escritura de disco extraños en EFI que se evaporaron en el próximo reinicio. Si este problema persiste, puede considerar ejecutar una prueba SMART en su disco en caso de que haya una falla de hardware, y hacer una copia de seguridad y volver a escribir el ESP en caso de que haya algún daño extraño en el sistema de archivos que dosfsck no pueda solucionar. Aparte de eso, informar qué archivos están dando problemas podría ser útil.
Rod Smith
1
El mensaje de "acceso denegado" casi seguramente se relaciona con el arranque seguro. Este mensaje aparece si rEFInd intenta cargar un binario EFI sin firmar mientras está en modo de arranque seguro. Lo sorprendente de esto es que puedes iniciar rEFInd en absoluto, ya que no está firmado. Mi presentimiento es que tienes algún tipo de configuración de arranque seguro con errores medio activados en tu firmware. La solución más fácil en este momento es deshabilitar completamente el Arranque seguro, pero hay otros. Consulte mi página web en rodsbooks.com/efi-bootloaders/secureboot.html para obtener más información.
Rod Smith
En mi computadora portátil HP tengo que presionar f9 y luego arrancar grub, de lo contrario, Windows se carga. También hay una opción para iniciar Windows desde grub, aunque nunca lo uso. Si estoy aburrido con Windows, solo lo enciendo y espero a Windows. Si planeo arrancar ubuntu, solo presiono f9 tan pronto como lo enciendo.
geoffmcc