I have a EFI dual boot installation on a Lenovo y50-70. I upgraded to win10 without any problems the very first day of win10 availability.
This is the structure of my Hd:
- sda1 - windows recovery partition
- sda2 - Ubuntu EFI partition
- sda3 - LSP_ESP: I think is the ESP for the Lenovo recovery system
- sda4 - Un-mountable partition: i inferred that this is the win10 ESP
- sda5 - win10 main partition
- sda6 - Lenovo recovery partition
- sda7 - PBR_DRV: No idea of the purpose of this partition, it was preconfigured by lenovo.
- sda8 - swap
- sda9 - Ubuntu root partition
I have disabled fast boot on win10, disabled safe-boot on bios, Ubuntu is installed in EFI mode, the Ubuntu ESP has the higher boot priority.
The problem:
For more than a month the dual boot with win10 worked perfectly. Now (probably after the last kernel header update) the laptop automatically boot win10.
Attempt:
I believed that the problem was a corrupted ubuntu ESP, so I followed the standard CHROOT procedure from a live usb to reinstall the ubuntu ESP on sda2, running the command
apt-get install --reinstall grub-efi-amd64
All worked perfectly, but after the re-installation, during the update-grub phase, the windows boot loader was not found, also running a further update-grub command. I exited the chroot and rebooted.
After the reboot the ubuntu ESP started correctly but, as expected, without the Windows boot loader option. I logged in into my Ubuntu and did another update-grub.
This time the Windows Boot Loader was found, Youppie! Problem Solved!
Well that's not that easy. After another reboot, the GRUB prompt was not shown and win10 was automatically booted. Again.
Note:
I repeated the procedure twice, sampe steps, same intermediate results, same final effect.
The loop in bullets:
- Autoboot win10
- Restore from live usb with chroot
- update-grub -> win10 loader not found
- reboot->grub prompt shown -> boot into ubuntu
- update-grub -> win10 found -> reboot
- Autoboot win10
The efibootmgr output before step 6:
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 0004,0003,2003,2001,0002,2002
Boot0000* EFI Network 0 for IPv4 (F8-A9-63-4E-C6-FF)
Boot0001* EFI Network 0 for IPv6 (F8-A9-63-4E-C6-FF)
Boot0002* Lenovo Recovery System
Boot0003* Windows Boot Manager
Boot0004* ubuntu
Boot0005* EFI USB Device (JetFlashTranscend 16GB)
Boot2001* EFI USB Device
Boot2002* EFI DVD/CDROM
Boot2003* EFI Network
uname -a output:
Linux Elianto 3.16.0-48-generic #64~14.04.1-Ubuntu SMP Thu Aug 20 23:03:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
If you need further data from intermediate steps (commands output) ask in the comments.
Thank you.