Cada vez que me toca realizar un upgrade de versión de Ubuntu en mi portátil me tengo que pelear con el Boot Manager de UEFI. Mi portátil vino preinstalado con Windows 8 y lo mantuve porque nunca se sabe para que lo puedo necesitar.
La cuestión es que con cada cambio sobre el gestor de arranque hace que o el sistema se quede colgado en el modo rescate de grub o que directamente se salte el grub y entre en Windows.
En la documentación de Ubuntu salen una serie de recomendaciones que no me han servido en ningún caso. Por último recomiendan utilizar el programa Boot repair que en mi caso no me sirvió. Se trata de un arduo proceso de prueba y error hasta que das con la tecla.
En mi caso, al pulsar la tecla F11 arranca el Boot Manager donde me permite arrancar Ubuntu o Windows (en el menú aparece como OS Boot Manager :-O):
Descubrí la herramienta efibootmgr que permite solucionar el problema con unos pocos comandos. Voy con el ejemplo:
- Listado de los sistemas instalados en mi portátil, donde se muestra el orden de arranque y como se ve arranca directamente en el Windows Boot Manager:
root@jupiter:# efibootmgr -v
BootCurrent: 0002
Timeout: 0 seconds
BootOrder: 3002,3000,3001,3003,3004,3005,2001,2002,2003
Boot0000* ubuntu HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\ubuntu\shimx64.efi)
Boot0001* Ubuntu HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\ubuntu\grubx64.efi)RC
Boot0002* Windows Boot Manager HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot0003* Ubuntu HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\ubuntu\grubx64.efi)RC
Boot0004* Ubuntu HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\ubuntu\grubx64.efi)RC
Boot0005* Ubuntu HD(2,c8800,82000,882c04c8-a541-4a44-aeaa-522da6211d8d)File(\EFI\ubuntu\grubx64.efi)RC
Boot2001* USB Drive (UEFI) RC
Boot3000* Internal Hard Disk or Solid State Disk RC
Boot3001* Internal Hard Disk or Solid State Disk RC
Boot3002* Internal Hard Disk or Solid State Disk RC
Boot3003* Internal Hard Disk or Solid State Disk RC
Boot3004* Internal Hard Disk or Solid State Disk RC
Boot3005* Internal Hard Disk or Solid State Disk RC
- Para limpiar el orde de arranque se ejecuta efibootmgr con la opción -O.
- Establezco de nuevo el orden que yo quiero con el siguiente comando:
root@jupiter:# efibootmgr -o 0000,0001,0002
- También cambié el fichero de arranque de EFI de Windows, lo vi comentado en stackoverflow, pero creo que realmente no hacia falta:
root@jupiter:# cd /boot/efi/EFI/Microsoft/Boot/
root@jupiter:# mv bootmgfw.efi bootmgfwB.efi
root@jupiter:# cp ../../ubuntu/grubx64.efi bootmgfw.efi
Espero que este post me sirva para acordarme de lo que hice la última vez!