Adding Linux to GRUB boot menu in UEFI mode to dual boot with Windows 10
up vote
1
down vote
favorite
I have a Dell Inspiron 5559. At present it is booting in UEFI mode with inbuilt Windows 10. I need to dual boot between Kali Linux and Windows 10. I followed the many tutorials online but they all are variant.
Can anyone tell me how to dual boot Kali Linux with Windows? I have installed Kali by booting it with live USB. But my problem is the GRUB loader is installed but it is not asking me whether to choose Windows or Linux. The boot loader booting Windows 10 default.
When i try add Linux with easy BCD in windows it is showing:
EFI boot loader Detected--- Easy BCD has detected that your machine is currently booting in EFI mode. Due to limitations set by Microsoft, many of easy BCD multi booting features cannot be used in EFi mode and have been disabled.
kali-linux dual-boot grub uefi
add a comment |
up vote
1
down vote
favorite
I have a Dell Inspiron 5559. At present it is booting in UEFI mode with inbuilt Windows 10. I need to dual boot between Kali Linux and Windows 10. I followed the many tutorials online but they all are variant.
Can anyone tell me how to dual boot Kali Linux with Windows? I have installed Kali by booting it with live USB. But my problem is the GRUB loader is installed but it is not asking me whether to choose Windows or Linux. The boot loader booting Windows 10 default.
When i try add Linux with easy BCD in windows it is showing:
EFI boot loader Detected--- Easy BCD has detected that your machine is currently booting in EFI mode. Due to limitations set by Microsoft, many of easy BCD multi booting features cannot be used in EFi mode and have been disabled.
kali-linux dual-boot grub uefi
add a comment |
up vote
1
down vote
favorite
up vote
1
down vote
favorite
I have a Dell Inspiron 5559. At present it is booting in UEFI mode with inbuilt Windows 10. I need to dual boot between Kali Linux and Windows 10. I followed the many tutorials online but they all are variant.
Can anyone tell me how to dual boot Kali Linux with Windows? I have installed Kali by booting it with live USB. But my problem is the GRUB loader is installed but it is not asking me whether to choose Windows or Linux. The boot loader booting Windows 10 default.
When i try add Linux with easy BCD in windows it is showing:
EFI boot loader Detected--- Easy BCD has detected that your machine is currently booting in EFI mode. Due to limitations set by Microsoft, many of easy BCD multi booting features cannot be used in EFi mode and have been disabled.
kali-linux dual-boot grub uefi
I have a Dell Inspiron 5559. At present it is booting in UEFI mode with inbuilt Windows 10. I need to dual boot between Kali Linux and Windows 10. I followed the many tutorials online but they all are variant.
Can anyone tell me how to dual boot Kali Linux with Windows? I have installed Kali by booting it with live USB. But my problem is the GRUB loader is installed but it is not asking me whether to choose Windows or Linux. The boot loader booting Windows 10 default.
When i try add Linux with easy BCD in windows it is showing:
EFI boot loader Detected--- Easy BCD has detected that your machine is currently booting in EFI mode. Due to limitations set by Microsoft, many of easy BCD multi booting features cannot be used in EFi mode and have been disabled.
kali-linux dual-boot grub uefi
kali-linux dual-boot grub uefi
edited Feb 3 '17 at 12:00
Jeff Schaller
38.1k1053124
38.1k1053124
asked Jan 9 '17 at 16:36
saivinay
612
612
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
0
down vote
are you trying to install Kali (or whatever distribution) of linux on to the existing hard drive having windows 10?
if not and your linux is on another hard disk then the easiest method is to F12 prior to booting to access the UEFI boot menu; this is not the GRUB2 menu. at this point the EFI boot menu (not the BIOS menu and not the GRUB2 menu) will allow you to choose which .efi file on which boot partition to kick off. And you can dual-boot this way.
recognizing you have a dell inspiron, a laptop, then you are most likely on 1 drive for everything. Reports are windows 10 when booting/rebooting will repair/remove any boot loader installed in to the windows 10 boot partition.
https://ubuntuforums.org/showthread.php?t=2294337
When you do F2 to enter SETUP and go to BOOT menu, you will then have a menu option to choose which .efi boot files. Your laptop only has 1 drive so there will only be one choice presented and that would kick off windows 10. But for example if you had a tower pc that could hold 4 hard drives each having their own boot partition you would then have 4 choices in this EFI boot menu.
I believe what you need to do, because windows 10 is Microsoft and it doesn't play nice sharing boot menus/partitions,
you need to get the motherboard EFI menu to automatically select a boot partition different from the OEM Windows 10 boot partition where this different partition just has GRUB2 on it.
Grub2 will precede the windows 10 boot loader in when things happen,
and then have GRUB2's menu give the choices to choose either the windows 10 partition or your linux partition for booting.
This way windows 10 only sees it's own boot manager on it's own partition unmolested. In windows 7 at least it was more forgiving on modifying the windows boot partition; I believe that has all ceased with windows 10 and the secure boot mentality.
So you want to create a new partition on your Dell oem win10 hard disk, completely separate from the windows partition, and install GRUB2 on it. this might be partition #4 for example.
Whether you can then have the motherboard firmware/EFI point to partition #4 on a disk instead of partition #1 to launch GRUB2 I don't know. I am more of an ELILO guy than a GRUB2 guy and have always had my boot partition as partition #1 on the disk. But if you can, then configure GRUB2 to provide your 2 menu options for launching either windows 10 or linux.
add a comment |
up vote
0
down vote
There are several possible things that might be going wrong.
1.) The Kali installer may have installed a traditional BIOS/MBR-style version of GRUB instead of an UEFI version. If your firmware prefers UEFI-style boot over legacy BIOS style, this bootloader will be completely ineffective, as the firmware just won't load the old-style Master Boot Record at all, once it sees that the Windows UEFI bootloader is in place.
2.) The Kali installer may have installed an UEFI version of GRUB, but without the shim.efi
that is necessary for Secure Boot - and the Secure Boot implementation of your system's UEFI firmware may silently bypass any bootloader that does not have the necessary Secure Boot signatures, if Secure Boot is enabled.
(Other UEFI implementations will output a scary security error message if Secure Boot is enabled and they encounter a bootloader with a missing or invalid Secure Boot signature. That at least would make this case easier to troubleshoot.)
3.) The Kali installer may have successfully installed a Secure Boot-capable UEFI bootloader, but failed to register it in the firmware NVRAM. Or maybe the firmware implementation will only accept the boot filename of a standard Windows bootloader - that would qualify as a firmware bug.
The first step for identifying between these cases would be letting the system boot to Windows 10, running a Command Prompt as an Administrator, and using the bcdedit /enum firmware
command. This will list the boot options registered in NVRAM and the BootOrder settings. If there is no mention of Kali in the output, you can tentatively exclude problem #2 for now - you definitely have at least problem #1 or #3.
If problem #2 seems likely, it can be worked around by disabling Secure Boot, or by clearing the Secure Boot Primary Key (PK) variable. Often (but maybe not always) the UEFI BIOS Setup offers a way to do one or both of these things.
The next step would require booting Kali (or some other Linux) from live USB and using it to gain access to the Kali installation on the HDD. After mounting the Linux partition(s) on the HDD, go to the directory <mountpoint>/usr/lib/grub
and list the contents of that directory. If there is a sub-directory named x86_64-efi
, you have an UEFI version of GRUB installed and can definitely exclude problem #1.
If, on the other hand, there is a sub-directory named i386-pc
, you have a traditional BIOS/MBR version of GRUB installed, confirming problem #1. Fixing it would require chrooting to the HDD-based installation and using the package management tools to replace the grub-pc
and grub-pc-bin
packages with grub-efi-amd64[-signed]
and grub-efi-amd64-bin
respectively. (If you cannot disable Secure Boot, get the -signed version of the first package if available, and also the shim
package.)
If it turns out you have problem #3, you can fix it by using the efibootmgr
command in your Kali Live USB - but only if that Live USB is bootable in the UEFI native style. If the Live USB is booting in the legacy BIOS/MBR style, the legacy compatibility firmware code will hide away the interface that is needed by the efibootmgr
command.
Alternative tools for fixing problem #3 in the Windows side:
- there used to be a program named
EasyUEFI
from the same manufacturer asEasyBCD
. Even the completely free version of that program would have been sufficient. Unfortunately, only a trial version of it is now available for free. - there seems to be a program called
BOOTICE
from a Chinese developer that apparently could do the job. I haven't tested it. - I think Windows 10's native
bcdedit
command might be able to register a new UEFI bootloader, but the procedure seems a bit awkward and I haven't tested this. - You can use
mountvol X: /S
as an administrator to gain access to the EFI System Partition in Windows. Once done, hide the ESP again withmountvol X: /D
.
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f336038%2fadding-linux-to-grub-boot-menu-in-uefi-mode-to-dual-boot-with-windows-10%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
are you trying to install Kali (or whatever distribution) of linux on to the existing hard drive having windows 10?
if not and your linux is on another hard disk then the easiest method is to F12 prior to booting to access the UEFI boot menu; this is not the GRUB2 menu. at this point the EFI boot menu (not the BIOS menu and not the GRUB2 menu) will allow you to choose which .efi file on which boot partition to kick off. And you can dual-boot this way.
recognizing you have a dell inspiron, a laptop, then you are most likely on 1 drive for everything. Reports are windows 10 when booting/rebooting will repair/remove any boot loader installed in to the windows 10 boot partition.
https://ubuntuforums.org/showthread.php?t=2294337
When you do F2 to enter SETUP and go to BOOT menu, you will then have a menu option to choose which .efi boot files. Your laptop only has 1 drive so there will only be one choice presented and that would kick off windows 10. But for example if you had a tower pc that could hold 4 hard drives each having their own boot partition you would then have 4 choices in this EFI boot menu.
I believe what you need to do, because windows 10 is Microsoft and it doesn't play nice sharing boot menus/partitions,
you need to get the motherboard EFI menu to automatically select a boot partition different from the OEM Windows 10 boot partition where this different partition just has GRUB2 on it.
Grub2 will precede the windows 10 boot loader in when things happen,
and then have GRUB2's menu give the choices to choose either the windows 10 partition or your linux partition for booting.
This way windows 10 only sees it's own boot manager on it's own partition unmolested. In windows 7 at least it was more forgiving on modifying the windows boot partition; I believe that has all ceased with windows 10 and the secure boot mentality.
So you want to create a new partition on your Dell oem win10 hard disk, completely separate from the windows partition, and install GRUB2 on it. this might be partition #4 for example.
Whether you can then have the motherboard firmware/EFI point to partition #4 on a disk instead of partition #1 to launch GRUB2 I don't know. I am more of an ELILO guy than a GRUB2 guy and have always had my boot partition as partition #1 on the disk. But if you can, then configure GRUB2 to provide your 2 menu options for launching either windows 10 or linux.
add a comment |
up vote
0
down vote
are you trying to install Kali (or whatever distribution) of linux on to the existing hard drive having windows 10?
if not and your linux is on another hard disk then the easiest method is to F12 prior to booting to access the UEFI boot menu; this is not the GRUB2 menu. at this point the EFI boot menu (not the BIOS menu and not the GRUB2 menu) will allow you to choose which .efi file on which boot partition to kick off. And you can dual-boot this way.
recognizing you have a dell inspiron, a laptop, then you are most likely on 1 drive for everything. Reports are windows 10 when booting/rebooting will repair/remove any boot loader installed in to the windows 10 boot partition.
https://ubuntuforums.org/showthread.php?t=2294337
When you do F2 to enter SETUP and go to BOOT menu, you will then have a menu option to choose which .efi boot files. Your laptop only has 1 drive so there will only be one choice presented and that would kick off windows 10. But for example if you had a tower pc that could hold 4 hard drives each having their own boot partition you would then have 4 choices in this EFI boot menu.
I believe what you need to do, because windows 10 is Microsoft and it doesn't play nice sharing boot menus/partitions,
you need to get the motherboard EFI menu to automatically select a boot partition different from the OEM Windows 10 boot partition where this different partition just has GRUB2 on it.
Grub2 will precede the windows 10 boot loader in when things happen,
and then have GRUB2's menu give the choices to choose either the windows 10 partition or your linux partition for booting.
This way windows 10 only sees it's own boot manager on it's own partition unmolested. In windows 7 at least it was more forgiving on modifying the windows boot partition; I believe that has all ceased with windows 10 and the secure boot mentality.
So you want to create a new partition on your Dell oem win10 hard disk, completely separate from the windows partition, and install GRUB2 on it. this might be partition #4 for example.
Whether you can then have the motherboard firmware/EFI point to partition #4 on a disk instead of partition #1 to launch GRUB2 I don't know. I am more of an ELILO guy than a GRUB2 guy and have always had my boot partition as partition #1 on the disk. But if you can, then configure GRUB2 to provide your 2 menu options for launching either windows 10 or linux.
add a comment |
up vote
0
down vote
up vote
0
down vote
are you trying to install Kali (or whatever distribution) of linux on to the existing hard drive having windows 10?
if not and your linux is on another hard disk then the easiest method is to F12 prior to booting to access the UEFI boot menu; this is not the GRUB2 menu. at this point the EFI boot menu (not the BIOS menu and not the GRUB2 menu) will allow you to choose which .efi file on which boot partition to kick off. And you can dual-boot this way.
recognizing you have a dell inspiron, a laptop, then you are most likely on 1 drive for everything. Reports are windows 10 when booting/rebooting will repair/remove any boot loader installed in to the windows 10 boot partition.
https://ubuntuforums.org/showthread.php?t=2294337
When you do F2 to enter SETUP and go to BOOT menu, you will then have a menu option to choose which .efi boot files. Your laptop only has 1 drive so there will only be one choice presented and that would kick off windows 10. But for example if you had a tower pc that could hold 4 hard drives each having their own boot partition you would then have 4 choices in this EFI boot menu.
I believe what you need to do, because windows 10 is Microsoft and it doesn't play nice sharing boot menus/partitions,
you need to get the motherboard EFI menu to automatically select a boot partition different from the OEM Windows 10 boot partition where this different partition just has GRUB2 on it.
Grub2 will precede the windows 10 boot loader in when things happen,
and then have GRUB2's menu give the choices to choose either the windows 10 partition or your linux partition for booting.
This way windows 10 only sees it's own boot manager on it's own partition unmolested. In windows 7 at least it was more forgiving on modifying the windows boot partition; I believe that has all ceased with windows 10 and the secure boot mentality.
So you want to create a new partition on your Dell oem win10 hard disk, completely separate from the windows partition, and install GRUB2 on it. this might be partition #4 for example.
Whether you can then have the motherboard firmware/EFI point to partition #4 on a disk instead of partition #1 to launch GRUB2 I don't know. I am more of an ELILO guy than a GRUB2 guy and have always had my boot partition as partition #1 on the disk. But if you can, then configure GRUB2 to provide your 2 menu options for launching either windows 10 or linux.
are you trying to install Kali (or whatever distribution) of linux on to the existing hard drive having windows 10?
if not and your linux is on another hard disk then the easiest method is to F12 prior to booting to access the UEFI boot menu; this is not the GRUB2 menu. at this point the EFI boot menu (not the BIOS menu and not the GRUB2 menu) will allow you to choose which .efi file on which boot partition to kick off. And you can dual-boot this way.
recognizing you have a dell inspiron, a laptop, then you are most likely on 1 drive for everything. Reports are windows 10 when booting/rebooting will repair/remove any boot loader installed in to the windows 10 boot partition.
https://ubuntuforums.org/showthread.php?t=2294337
When you do F2 to enter SETUP and go to BOOT menu, you will then have a menu option to choose which .efi boot files. Your laptop only has 1 drive so there will only be one choice presented and that would kick off windows 10. But for example if you had a tower pc that could hold 4 hard drives each having their own boot partition you would then have 4 choices in this EFI boot menu.
I believe what you need to do, because windows 10 is Microsoft and it doesn't play nice sharing boot menus/partitions,
you need to get the motherboard EFI menu to automatically select a boot partition different from the OEM Windows 10 boot partition where this different partition just has GRUB2 on it.
Grub2 will precede the windows 10 boot loader in when things happen,
and then have GRUB2's menu give the choices to choose either the windows 10 partition or your linux partition for booting.
This way windows 10 only sees it's own boot manager on it's own partition unmolested. In windows 7 at least it was more forgiving on modifying the windows boot partition; I believe that has all ceased with windows 10 and the secure boot mentality.
So you want to create a new partition on your Dell oem win10 hard disk, completely separate from the windows partition, and install GRUB2 on it. this might be partition #4 for example.
Whether you can then have the motherboard firmware/EFI point to partition #4 on a disk instead of partition #1 to launch GRUB2 I don't know. I am more of an ELILO guy than a GRUB2 guy and have always had my boot partition as partition #1 on the disk. But if you can, then configure GRUB2 to provide your 2 menu options for launching either windows 10 or linux.
answered Jan 9 '17 at 19:14
ron
8861714
8861714
add a comment |
add a comment |
up vote
0
down vote
There are several possible things that might be going wrong.
1.) The Kali installer may have installed a traditional BIOS/MBR-style version of GRUB instead of an UEFI version. If your firmware prefers UEFI-style boot over legacy BIOS style, this bootloader will be completely ineffective, as the firmware just won't load the old-style Master Boot Record at all, once it sees that the Windows UEFI bootloader is in place.
2.) The Kali installer may have installed an UEFI version of GRUB, but without the shim.efi
that is necessary for Secure Boot - and the Secure Boot implementation of your system's UEFI firmware may silently bypass any bootloader that does not have the necessary Secure Boot signatures, if Secure Boot is enabled.
(Other UEFI implementations will output a scary security error message if Secure Boot is enabled and they encounter a bootloader with a missing or invalid Secure Boot signature. That at least would make this case easier to troubleshoot.)
3.) The Kali installer may have successfully installed a Secure Boot-capable UEFI bootloader, but failed to register it in the firmware NVRAM. Or maybe the firmware implementation will only accept the boot filename of a standard Windows bootloader - that would qualify as a firmware bug.
The first step for identifying between these cases would be letting the system boot to Windows 10, running a Command Prompt as an Administrator, and using the bcdedit /enum firmware
command. This will list the boot options registered in NVRAM and the BootOrder settings. If there is no mention of Kali in the output, you can tentatively exclude problem #2 for now - you definitely have at least problem #1 or #3.
If problem #2 seems likely, it can be worked around by disabling Secure Boot, or by clearing the Secure Boot Primary Key (PK) variable. Often (but maybe not always) the UEFI BIOS Setup offers a way to do one or both of these things.
The next step would require booting Kali (or some other Linux) from live USB and using it to gain access to the Kali installation on the HDD. After mounting the Linux partition(s) on the HDD, go to the directory <mountpoint>/usr/lib/grub
and list the contents of that directory. If there is a sub-directory named x86_64-efi
, you have an UEFI version of GRUB installed and can definitely exclude problem #1.
If, on the other hand, there is a sub-directory named i386-pc
, you have a traditional BIOS/MBR version of GRUB installed, confirming problem #1. Fixing it would require chrooting to the HDD-based installation and using the package management tools to replace the grub-pc
and grub-pc-bin
packages with grub-efi-amd64[-signed]
and grub-efi-amd64-bin
respectively. (If you cannot disable Secure Boot, get the -signed version of the first package if available, and also the shim
package.)
If it turns out you have problem #3, you can fix it by using the efibootmgr
command in your Kali Live USB - but only if that Live USB is bootable in the UEFI native style. If the Live USB is booting in the legacy BIOS/MBR style, the legacy compatibility firmware code will hide away the interface that is needed by the efibootmgr
command.
Alternative tools for fixing problem #3 in the Windows side:
- there used to be a program named
EasyUEFI
from the same manufacturer asEasyBCD
. Even the completely free version of that program would have been sufficient. Unfortunately, only a trial version of it is now available for free. - there seems to be a program called
BOOTICE
from a Chinese developer that apparently could do the job. I haven't tested it. - I think Windows 10's native
bcdedit
command might be able to register a new UEFI bootloader, but the procedure seems a bit awkward and I haven't tested this. - You can use
mountvol X: /S
as an administrator to gain access to the EFI System Partition in Windows. Once done, hide the ESP again withmountvol X: /D
.
add a comment |
up vote
0
down vote
There are several possible things that might be going wrong.
1.) The Kali installer may have installed a traditional BIOS/MBR-style version of GRUB instead of an UEFI version. If your firmware prefers UEFI-style boot over legacy BIOS style, this bootloader will be completely ineffective, as the firmware just won't load the old-style Master Boot Record at all, once it sees that the Windows UEFI bootloader is in place.
2.) The Kali installer may have installed an UEFI version of GRUB, but without the shim.efi
that is necessary for Secure Boot - and the Secure Boot implementation of your system's UEFI firmware may silently bypass any bootloader that does not have the necessary Secure Boot signatures, if Secure Boot is enabled.
(Other UEFI implementations will output a scary security error message if Secure Boot is enabled and they encounter a bootloader with a missing or invalid Secure Boot signature. That at least would make this case easier to troubleshoot.)
3.) The Kali installer may have successfully installed a Secure Boot-capable UEFI bootloader, but failed to register it in the firmware NVRAM. Or maybe the firmware implementation will only accept the boot filename of a standard Windows bootloader - that would qualify as a firmware bug.
The first step for identifying between these cases would be letting the system boot to Windows 10, running a Command Prompt as an Administrator, and using the bcdedit /enum firmware
command. This will list the boot options registered in NVRAM and the BootOrder settings. If there is no mention of Kali in the output, you can tentatively exclude problem #2 for now - you definitely have at least problem #1 or #3.
If problem #2 seems likely, it can be worked around by disabling Secure Boot, or by clearing the Secure Boot Primary Key (PK) variable. Often (but maybe not always) the UEFI BIOS Setup offers a way to do one or both of these things.
The next step would require booting Kali (or some other Linux) from live USB and using it to gain access to the Kali installation on the HDD. After mounting the Linux partition(s) on the HDD, go to the directory <mountpoint>/usr/lib/grub
and list the contents of that directory. If there is a sub-directory named x86_64-efi
, you have an UEFI version of GRUB installed and can definitely exclude problem #1.
If, on the other hand, there is a sub-directory named i386-pc
, you have a traditional BIOS/MBR version of GRUB installed, confirming problem #1. Fixing it would require chrooting to the HDD-based installation and using the package management tools to replace the grub-pc
and grub-pc-bin
packages with grub-efi-amd64[-signed]
and grub-efi-amd64-bin
respectively. (If you cannot disable Secure Boot, get the -signed version of the first package if available, and also the shim
package.)
If it turns out you have problem #3, you can fix it by using the efibootmgr
command in your Kali Live USB - but only if that Live USB is bootable in the UEFI native style. If the Live USB is booting in the legacy BIOS/MBR style, the legacy compatibility firmware code will hide away the interface that is needed by the efibootmgr
command.
Alternative tools for fixing problem #3 in the Windows side:
- there used to be a program named
EasyUEFI
from the same manufacturer asEasyBCD
. Even the completely free version of that program would have been sufficient. Unfortunately, only a trial version of it is now available for free. - there seems to be a program called
BOOTICE
from a Chinese developer that apparently could do the job. I haven't tested it. - I think Windows 10's native
bcdedit
command might be able to register a new UEFI bootloader, but the procedure seems a bit awkward and I haven't tested this. - You can use
mountvol X: /S
as an administrator to gain access to the EFI System Partition in Windows. Once done, hide the ESP again withmountvol X: /D
.
add a comment |
up vote
0
down vote
up vote
0
down vote
There are several possible things that might be going wrong.
1.) The Kali installer may have installed a traditional BIOS/MBR-style version of GRUB instead of an UEFI version. If your firmware prefers UEFI-style boot over legacy BIOS style, this bootloader will be completely ineffective, as the firmware just won't load the old-style Master Boot Record at all, once it sees that the Windows UEFI bootloader is in place.
2.) The Kali installer may have installed an UEFI version of GRUB, but without the shim.efi
that is necessary for Secure Boot - and the Secure Boot implementation of your system's UEFI firmware may silently bypass any bootloader that does not have the necessary Secure Boot signatures, if Secure Boot is enabled.
(Other UEFI implementations will output a scary security error message if Secure Boot is enabled and they encounter a bootloader with a missing or invalid Secure Boot signature. That at least would make this case easier to troubleshoot.)
3.) The Kali installer may have successfully installed a Secure Boot-capable UEFI bootloader, but failed to register it in the firmware NVRAM. Or maybe the firmware implementation will only accept the boot filename of a standard Windows bootloader - that would qualify as a firmware bug.
The first step for identifying between these cases would be letting the system boot to Windows 10, running a Command Prompt as an Administrator, and using the bcdedit /enum firmware
command. This will list the boot options registered in NVRAM and the BootOrder settings. If there is no mention of Kali in the output, you can tentatively exclude problem #2 for now - you definitely have at least problem #1 or #3.
If problem #2 seems likely, it can be worked around by disabling Secure Boot, or by clearing the Secure Boot Primary Key (PK) variable. Often (but maybe not always) the UEFI BIOS Setup offers a way to do one or both of these things.
The next step would require booting Kali (or some other Linux) from live USB and using it to gain access to the Kali installation on the HDD. After mounting the Linux partition(s) on the HDD, go to the directory <mountpoint>/usr/lib/grub
and list the contents of that directory. If there is a sub-directory named x86_64-efi
, you have an UEFI version of GRUB installed and can definitely exclude problem #1.
If, on the other hand, there is a sub-directory named i386-pc
, you have a traditional BIOS/MBR version of GRUB installed, confirming problem #1. Fixing it would require chrooting to the HDD-based installation and using the package management tools to replace the grub-pc
and grub-pc-bin
packages with grub-efi-amd64[-signed]
and grub-efi-amd64-bin
respectively. (If you cannot disable Secure Boot, get the -signed version of the first package if available, and also the shim
package.)
If it turns out you have problem #3, you can fix it by using the efibootmgr
command in your Kali Live USB - but only if that Live USB is bootable in the UEFI native style. If the Live USB is booting in the legacy BIOS/MBR style, the legacy compatibility firmware code will hide away the interface that is needed by the efibootmgr
command.
Alternative tools for fixing problem #3 in the Windows side:
- there used to be a program named
EasyUEFI
from the same manufacturer asEasyBCD
. Even the completely free version of that program would have been sufficient. Unfortunately, only a trial version of it is now available for free. - there seems to be a program called
BOOTICE
from a Chinese developer that apparently could do the job. I haven't tested it. - I think Windows 10's native
bcdedit
command might be able to register a new UEFI bootloader, but the procedure seems a bit awkward and I haven't tested this. - You can use
mountvol X: /S
as an administrator to gain access to the EFI System Partition in Windows. Once done, hide the ESP again withmountvol X: /D
.
There are several possible things that might be going wrong.
1.) The Kali installer may have installed a traditional BIOS/MBR-style version of GRUB instead of an UEFI version. If your firmware prefers UEFI-style boot over legacy BIOS style, this bootloader will be completely ineffective, as the firmware just won't load the old-style Master Boot Record at all, once it sees that the Windows UEFI bootloader is in place.
2.) The Kali installer may have installed an UEFI version of GRUB, but without the shim.efi
that is necessary for Secure Boot - and the Secure Boot implementation of your system's UEFI firmware may silently bypass any bootloader that does not have the necessary Secure Boot signatures, if Secure Boot is enabled.
(Other UEFI implementations will output a scary security error message if Secure Boot is enabled and they encounter a bootloader with a missing or invalid Secure Boot signature. That at least would make this case easier to troubleshoot.)
3.) The Kali installer may have successfully installed a Secure Boot-capable UEFI bootloader, but failed to register it in the firmware NVRAM. Or maybe the firmware implementation will only accept the boot filename of a standard Windows bootloader - that would qualify as a firmware bug.
The first step for identifying between these cases would be letting the system boot to Windows 10, running a Command Prompt as an Administrator, and using the bcdedit /enum firmware
command. This will list the boot options registered in NVRAM and the BootOrder settings. If there is no mention of Kali in the output, you can tentatively exclude problem #2 for now - you definitely have at least problem #1 or #3.
If problem #2 seems likely, it can be worked around by disabling Secure Boot, or by clearing the Secure Boot Primary Key (PK) variable. Often (but maybe not always) the UEFI BIOS Setup offers a way to do one or both of these things.
The next step would require booting Kali (or some other Linux) from live USB and using it to gain access to the Kali installation on the HDD. After mounting the Linux partition(s) on the HDD, go to the directory <mountpoint>/usr/lib/grub
and list the contents of that directory. If there is a sub-directory named x86_64-efi
, you have an UEFI version of GRUB installed and can definitely exclude problem #1.
If, on the other hand, there is a sub-directory named i386-pc
, you have a traditional BIOS/MBR version of GRUB installed, confirming problem #1. Fixing it would require chrooting to the HDD-based installation and using the package management tools to replace the grub-pc
and grub-pc-bin
packages with grub-efi-amd64[-signed]
and grub-efi-amd64-bin
respectively. (If you cannot disable Secure Boot, get the -signed version of the first package if available, and also the shim
package.)
If it turns out you have problem #3, you can fix it by using the efibootmgr
command in your Kali Live USB - but only if that Live USB is bootable in the UEFI native style. If the Live USB is booting in the legacy BIOS/MBR style, the legacy compatibility firmware code will hide away the interface that is needed by the efibootmgr
command.
Alternative tools for fixing problem #3 in the Windows side:
- there used to be a program named
EasyUEFI
from the same manufacturer asEasyBCD
. Even the completely free version of that program would have been sufficient. Unfortunately, only a trial version of it is now available for free. - there seems to be a program called
BOOTICE
from a Chinese developer that apparently could do the job. I haven't tested it. - I think Windows 10's native
bcdedit
command might be able to register a new UEFI bootloader, but the procedure seems a bit awkward and I haven't tested this. - You can use
mountvol X: /S
as an administrator to gain access to the EFI System Partition in Windows. Once done, hide the ESP again withmountvol X: /D
.
answered Aug 27 at 14:56
telcoM
15.6k12143
15.6k12143
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f336038%2fadding-linux-to-grub-boot-menu-in-uefi-mode-to-dual-boot-with-windows-10%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown