AFAIK, you can't. To the best of my knowledge, the Windows boot loader doesn't provide any means to launch non-Windows EFI boot loaders. I could be wrong about this, though; I admit that my knowledge of the Windows boot loader is limited.
Instead, you can configure any of a number of EFI boot loaders and boot managers for Linux to handle the boot-selection job. When everything works fine, GRUB can do this job; but as of version 13.04, Ubuntu doesn't set up GRUB correctly for dual-booting when it installs. There can also be other problems caused by EFI bugs. To work around the Ubuntu GRUB configuration problem, two solutions are easiest:
- Run Boot Repair on the system. If this works, it will re-install and reconfigure GRUB so that it can launch Windows.
- Install my rEFInd boot manager. This is most easily done by installing the Debian package under Ubuntu. (Be sure that your ESP is mounted at
/boot/efi
, though.) Once installed, rEFInd should enable booting directly into Windows or directly into Linux, bypassing GRUB.
Note that neither of these solutions completely replaces the Windows boot loader; they both just make another boot program (GRUB or rEFInd) run before the Windows boot loader. You can stop reading here if you like, but some background may be helpful in understanding this:
When booting a multi-boot computer, a boot manager gives you a way to choose between two or more OSes, typically through a menu. Most EFIs include an awkward but built-in boot manager. rEFInd is also a boot manager, and GRUB includes a boot manager. A boot loader, by contrast, loads an OS kernel and any associated files and starts the kernel running. The EFI doesn't include a boot loader, so every OS must provide one. GRUB is a boot loader for Linux (but not for Windows) in addition to being a boot manager, the Linux kernel (since version 3.3.0) can function as its own boot loader, and Windows provides its own boot loader. rEFInd is not a boot loader; to boot Linux, it relies on the EFI stub loader or some other boot loader to load the kernel.
Thus, it's not possible to replace the Windows boot loader with GRUB, since GRUB is not a Windows boot loader. GRUB can use its boot manager features to chainload to the Windows boot loader, though.
I really dont know a lot about Linux, but i fixed the same problem by:
Check if grub is installed
grub-install --version
or even
sudo dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
If it is installed, probably he is not recognizing windows boot, so it directly boots into ubuntu and wont show the grub screen. So, if your windows boot file was not deleted, this should make grub appear and recognize windows as a boot option.
sudo -H gedit /etc/default/grub
Insert #
at the start of the line GRUB_HIDDEN_TIMEOUT=0
.
Now save then run:
sudo update-grub
This should be fine to make Grub menu appears on every boot.
( Grub menu won't show on dual Boot )
Best Answer
First try to change the boot order in BIOS (UEFI) settings.
Select Ubuntu to be the default operating system to boot.
If this is not possible boot into Windows and disable hibernation and Fast Boot.
To disable hibernation open command prompt as administrator and execute this command:
To disable Fast Boot open Control Panel (the old version - not the modern design),
select the Energy Settings, enable show hidden settings and uncheck Fast Boot.
After having done this shutdown the machine completely - do NOT reboot!
Then reinstall the GRUB boot loader to your Ubuntu installation in EFI mode.
Boot from the Ubuntu installation media - then open a terminal and execute:
Now you can choose which operating system you want to boot from the GRUB boot loader menu.
Note :
sd*
= disk |sd**
= efi partition |sd***
= system partitionTo identify the partition numbers use GParted.
The tool is included in the Ubuntu install media.