Compré una nueva computadora portátil Sony Vaio S series. Utiliza Insyde H2O BIOS EFI, e intentar instalar Linux en él me está volviendo loco.
root@kubuntu:~# parted /dev/sda print
Model: ATA Hitachi HTS72756 (scsi)
Disk /dev/sda: 640GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI system partition hidden
2 274MB 20.8GB 20.6GB ntfs Basic data partition hidden, diag
3 20.8GB 21.1GB 273MB fat32 EFI system partition boot
4 21.1GB 21.3GB 134MB Microsoft reserved partition msftres
5 21.3GB 342GB 320GB ntfs Basic data partition
6 342GB 358GB 16.1GB ext4 Basic data partition
7 358GB 374GB 16.1GB ntfs Basic data partition
8 374GB 640GB 266GB ntfs Basic data partition
Lo sorprendente es que hay 2 particiones del sistema EFI en el disco. La partición sda2 es una partición de recuperación de 20 gb que carga ventanas con una interfaz de recuperación básica. Se puede acceder presionando el botón "AYUDAR" en lugar del botón de encendido normal. Supongo que la partición del sistema sda1 EFI (ESP) se carga en esta recuperación.
El sda3 ESP tiene más entradas desarrolladas para Microsoft Windows, que en realidad entra en Windows 7 (como lo confirma bcdedit.exe en Windows). Ubuntu está instalado en sda6, y durante la instalación elegí sda3 como mi partición de arranque. El instalador creó correctamente una aplicación sda3 / EFI / ubuntu / grubx64.efi.
El verdadero problema: por mi vida, ¡no puedo configurarlo como predeterminado! Intenté crear un sda3 / startup.nsh que llamaba grubx64.efi, pero no ayudó, al reiniciar, el sistema aún se inicia en Windows. Intenté usar efibootmgr, y eso muestra cómo funcionaba:
root@kubuntu:~# efibootmgr
BootCurrent: 0000
BootOrder: 0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
root@kubuntu:~# efibootmgr --create --gpt --disk /dev/sda --part 3 --write-signature --label "GRUB2" --loader "\\EFI\\ubuntu\\grubx64.efi"
BootCurrent: 0000
BootOrder: 0002,0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
Boot0002* GRUB2
root@kubuntu:~# efibootmgr
BootCurrent: 0000
BootOrder: 0002,0000,0001
Boot0000* EFI USB Device
Boot0001* Windows Boot Manager
Boot0002* GRUB2
Sin embargo, al reiniciar, como adivinó, la máquina se reinició directamente en Windows.
Las únicas cosas que puedo pensar son:
- La partición sda1 se está utilizando de alguna manera
- Sobrescriba /EFI/Boot/bootx64.efi y /EFI/Microsoft/Boot/bootmgfw.efi con grubx64.efi [pero esto parece realmente radical].
¿Por favor, puede alguien ayudarme? Gracias, cualquier ayuda es muy apreciada, ya que este problema me está volviendo loco.
Respuestas:
Finalmente pude resolver esto. Reemplacé el EFI / Microsoft / boot / bootmgfw.efi con el grub64.efi. Cambié el nombre del primero a bootmgfw.efi.old y usé grub para agregar una opción de menú para encadenarlo.
Esto implica que el firmware está codificado para buscar el gestor de arranque de microsoft windows y no respeta la configuración de efibootmgr o startup.nsh. Eso es realmente terrible
Descubrí cómo funciona el proceso de arranque Sony EFI:
En Linux, la herramienta efibootmgr funciona, pero muestra muchas tonterías generadas automáticamente, incluida la última unidad USB que ha utilizado.
Así es como aprendí todo esto:
La única forma en que podía obtener REFInd para hacer lo que quería era esto:
Mueva fwbootmgr.efi a su directorio padre; rEFInd todavía lo encontrará, y Windows no se quejará de que le haya cambiado el nombre.
(Quizás sea posible usar el Administrador de arranque de Windows para hacer todo esto, pero el soporte EFI de EeasyBCD sigue siendo un desastre en mi experiencia. Me niego a tocarlo nuevamente por un tiempo).
fuente
Primero, no tienes dos ESP. Un ESP es una partición con un código de tipo de partición de C12A7328-F81F-11D2-BA4B-00A0C93EC93B, que se identifica como una partición con su conjunto de "indicador de arranque". Su salida indica que solo / dev / sda3 tiene su "indicador de arranque" establecido, por lo que solo tiene un ESP - / dev / sda3. Bajo GPT, las particiones pueden tener nombres, y usted tiene dos particiones con el nombre "partición del sistema EFI", pero estos nombres se usan solo con fines de identificación humana. Por lo tanto, supongo que usted (o alguna utilidad automática) creó un / dev / sda1 con la intención de convertirlo en un ESP, pero hubo un error al establecer su código de tipo de partición o alguna otra utilidad cambió incorrectamente su código de tipo de C12A7328-F81F-11D2-BA4B-00A0C93EC93B a otra cosa.
Hay varias formas de corregir esto. Lo más simple es cambiar el nombre de / dev / sda1 para evitar confusiones. Si cree que / dev / sda1 no sirve para nada, puede hacer una copia de seguridad y eliminarlo. Esto lo quitará del camino y evitará confusiones, pero, por supuesto, tendrá 273 MB de espacio en disco no utilizado. Alternativamente, puede dedicar el espacio a algún otro propósito, si es necesario, cambiar el nombre y el código de tipo para evitar confusiones. EFI permite explícitamente múltiples ESP, por lo que puede cambiar el código de tipo (configurando el "indicador de arranque" usando parted, por ejemplo) y usar ambos ESP; Pero esto podría ser confuso.
Lo más probable es que este problema no esté relacionado con su incapacidad para arrancar Linux, ya que parece que todos los archivos relevantes están en / dev / sda3. Se me ocurren varias razones posibles para este problema:
Puede intentar ajustar su comando efibootmgr, localizar un nuevo binario o cualquier otra cosa para probar estas posibilidades. Si todo lo demás falla, le recomiendo que haga lo siguiente:
Esto debería hacer que GRUB arranque con el nombre predeterminado del gestor de arranque (EFI / Boot / bootx64.efi). Un problema con esto es que GRUB podría no tener una entrada funcional para Windows. Probablemente pueda crear uno manualmente; una entrada como esta debería funcionar:
Alternativamente, puede instalar rEFIt o rEFInd como EFI / Boot / bootx64.efi. Tenga en cuenta que los archivos binarios de rEFIt disponibles en su sitio no funcionarán en las PC basadas en UEFI; deberás usar la versión en los repositorios de Ubuntu. rEFInd es una bifurcación de rEFIt con numerosas correcciones de errores y actualizaciones, incluido un mejor soporte UEFI. (rEFIt parece haber sido abandonado hace aproximadamente dos años). Por lo tanto, recomiendo usar rEFInd en lugar de rEFIt, pero soy el mantenedor de rEFInd, así que no soy un observador independiente en este puntaje. Desafortunadamente, AFAIK rEFInd no está (todavía) incluido en los repositorios de Ubuntu, por lo que deberá descargarlo e instalarlo manualmente.
fuente
La misma posición inicial aquí en una nueva serie de Sony Vaio. Gracias Rod por tu respuesta.
En caso de que alguien necesite un tutorial, esto es lo que funcionó para mí:
Instaló ubuntu 12.04 desde USB junto con win7.
montaje / dev / sda3 de sesión en vivo
ahora arranca directamente en grub2, pero sin entrada win7
después de cargar ubuntu edité
/etc/grub.d/40_custom
agregando
y después
todo funciona bien
fuente
Sugiero dos alternativas diferentes:
No sobrescriba Windows mbr, pero úselo para iniciar grub
cambiar la configuración de la BIOS ( f2o f3al inicio) en las opciones de arranque de UEFI a LEGACY, luego normalmente lanzará el último sistema instalado como siempre
fuente
Recommended Repair
botón. (esto instalará automáticamente los parámetros correctos para grub-efi, incluidos los parámetros de SecureBoot si es necesario, y renombrará los archivos EFI en caso de que el firmware UEFI esté bloqueado a los archivos de Windows). Indique la URL que aparecerá si hay algún problema.fuente