Editor: For a more recent version of this article, using the latest edition of Kali Linux and Windows 10, see Dual-boot Kali Linux Rolling 2016.2, Windows 10 on a PC with UEFI firmware.
The last dual-boot tutorial on Kali Linux I wrote was back in March 2013 (see Dual-boot Windows 7 and Kali Linux), and that was on a computer with Legacy BIOS. That means it’s not a very useful guide if you wish to dual-boot a recent edition of Kali Linux and Windows 7 or Windows 8 on a computer with UEFI firmware.
So, following an exchange with a recent visitor to this site, I decided to make an attempt to dual-boot the latest edition of Kali Linux and Windows 7 on a computer with UEFI firmware. And since Windows 7 and Windows 8 share the same installer, it can also be used as a guide if Windows 8 is your choice of a Microsoft operating system.
The first attempt failed, but I quickly figured out why. So for the benefit of those who might want to do the same, this tutorial provides a step-by-step guide on how to get it done. If you are new to Linux and have never installed any distribution or attempted to dual-boot a Windows operating system and a Linux distribution, this guide gives you all you need to dual-boot Windows 7 or Windows 8 and the latest edition of Kali Linux on a computer with UEFI firmware. It will, however, help if you read A beginner’s guide to disks and disk partitions in Linux before attempting it.
By the time you’re through with this guide, you should have a computer with Kali Linux installed alongside Windows 7 or Windows 8 on the same hard drive, so that when you attempt to reboot into Kali Linux, the GRUB menu should look like the one shown in Figure 1.
For that to happen, you’ll first have to download the latest edition of Kali Linux from https://www.kali.org/downloads/. The edition used for this tutorial is Kali Linux 1.0.9a, which has support for UEFI booting. After downloading it, transfer it to a USB stick (recommended) or a blank DVD. See this forum post for how to transfer it to a USB stick in Linux.
You’ll also, of course, need a computer with Windows 7 or Windows 8 installed. The computer could be an OEM unit (store bought) or custom-built. Then you’ll have to shrink the C drive to create enough disk space that Kali Linux will be installed on. For this tutorial, I used a custom-built unit and installed Windows 7 on it. The hard drive is a 500 GB piece, so I recovered about 200 GB from it to use for Kali Linux. Figure 2 shows the partitions on the system as seen from the Windows 7 partition manager.
And this is what it looks like after shrinking the C drive. See this forum post for help on how to shrink a Windows 7 or Windows 8 C drive. That Unallocated space will be used for Kali Linux. Note that on a store-bought computer, there’ll likely be more partitions than shown here. But that does not have an impact here because the only partitions that come into play are the C drive and the EFI System Partition. In Figure 3, that partition is the 100 MB partition.
Once you have all you need in place, insert the installation media (USB stick or DVD) into the appropriate place and reboot the computer. It should boot into the installation media if it was configured to boot from it. Otherwise, access the computers boot menu and select the entry that points to the UEFI-aware version of the installer. Figure 4 shows the entries on the boot menu of the computer used for this tutorial. The PNY entries are for the UEFI- and non-UEFI versions of the installer.
After selecting the UEFI-aware version of the installer, you should be presented with the Kali Linux installer’s menu. Pressing ENTER should cause it to boot into the Live desktop. From there, launch the installer by accessing it from Applications > System Tools > Install Kali Linux.
After the installer starts, click through the first few steps until you get to the step shown in Figure 6. All the entries sown here are the partition methods. The installation will fail if you select any automatic partitioning method, so select Manual and click Continue.
You should now see a window with the disks connected to the system listed, along with their partitions. In Figure 7, the first three partitions are the Windows 7 partitions. Partition #1 is the EFI system partition, while partition #3 is the C drive. Below that is the Unallocated space that was recovered from the C drive. I’ll address the EFI system partition later, but for now, let’s install Kali Linux on that free space. To do that, double click on it.
You should be presented with the entries shown in Figure 8. Select Automatically partition the free space, then click Continue. Or just double click it.
The next step lets you decide how many partitions the installer should create. The first option will cause the installer to create just two partitions – the root partition and another partition for Swap space. That’s recommended for new users, but if you want your home directory on a separate partition, select the next option. Whichever option you select, click Continue afterwards.
Figure 10 shows the result of the last operation. Partitions #4, #5 and #6 are the newly created partitions. The partition number might not match with yours, but that’s not important. What’s now important is that you have to make a slight change to partition #1, the EFI system partition. To do that, double-click it.
You need to change its Use as entry to something else, so double-click the Use as line and select EFI boot partition from the list of options you’re presented with.
If completed correctly, you should have a Use as line that looks exactly like the one shown in Figure 12. Click Done setting up the partition, then Continue.
If you neglected to complete the task in the previous step, the installation of GRUB will fail and the installer will show you the message just like the one in Figure 13.
This is the installer letting you know what its about to do. Select Yes, then click Continue.
If installation completes successfully, you should get a message just like the oen shown in Figure 15. You may reboot the computer at this point.
And be sure to remove the installation media else the computer will boot into the installer again.
If you access the computer’s boot menu (via the F11 or F12 key) before it boots into the default OS, you should see entries for Windows Boot Manager (boots into Windows 7 or Windows 8) debian (boots into Kali Linux).
If you attempt to boot into Kali Linux, you’ll see the GRUB menu. However, it will not have an entry for Windows as it should.
You can fix that by booting into Kali, launch a terminal and type the following command: update-grub. The output of that command should be just like that in this code block:
Generating grub.cfg ... Found background image: /usr/share/images/desktop-base/desktop-grub.png Found linux image: /boot/vmlinuz-3.14-kali1-amd64 Found initrd image: /boot/initrd.img-3.14-kali1-amd64 No volume groups found Found Windows Boot Manager on /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi done
Finally, when you log into Windows, you may launch the partition manager to see how the number of partitions has changed.
Figure 19 shows the Windows 7 and Kali Linux partitions as seen from the Windows partition manager of the test system. In this screenshot, D is the root partition, E is the home partition of Kali Linux. In between is the Swap partition. If at any time you wish to “uninstall” Kali Linux, just log into Windows and delete its partitions from the Windows partition manager.
I disabled secure boot and fast boot and was able to see the usb drive after hitting F11 on boot. It allows me to select the usb drive to boot from, then the screen goes black for a second and it brings up the boot menu again. I select the usb drive again and it goes black and then just boots into windows 10. I used Rufus to create the USB, and selected “for bios or uefi” on one attempt and “gpt partition for uefi” on another attempt. I have read that you need to drop some files into a /efi/boot/ folder but I can’t find where to get the files to try that, all links are broken.
Also, it boots just fine in legacy mode but I need uefi.
I just updated this article using Kali 2016.2. No need to copy any files. See Dual-boot Kali Linux Rolling 2016.2, Windows 10 on a PC with UEFI firmware
What if my system gives me the option to run Legacy instead of UEFI? Im currently running windows 7 under Legacy a this time, so would I have any issues if I attempted just a regular dual install of Kali along side windows in Legacy or should I switch it over to UEFI for both? Sorry if its a stupid question but never ran into this issue before, always just wiped the drive for Kali.
In that case, the Kali installer will detect that your computer is set to Legacy BIOS and boot into the version of the installer that supports it.
If that doesn’t happen automatically, you’ll be given the option to select it.
Manually, you can boot into the computer’s boot menu and see all the options available. There should be two options for booting into Kali – UEFI and USB. Select USB.
The UEFI system doesn’t allow me to go into boot options, how can i get this solved?
Thanks in advance!
TO access the boot menu, you typically have to press one of the F-keys – F2 or other. Sometimes the Del key. Depens on your computer. Check the documentation for your computer.
I only get one Entry in the boot menu of my usb. I can not choose between UEFI: … and USB: …
I use a 8GB pendrive and Kali 2016.01 . The pendrive was created with win32diskimager.
What am I doing´wrong?
When that has happened to me, it meant that the transfer to USB was not done right, so give it another try. Use a different application to effect the transfer.
Hello, when im trying to install kali in my free space partitions it dosen’t recognize the free space mine partition shows “unused” instead of free space and then it dosen’t allow me to edit the partitions or even install kali.
I will be very thanful if you reply.
Are you using GPT or MBR partitions. If the latter, and the number of primary partitions is more than 4, then any unused or free space will not be usable. See this article.
If you can, send me a screenshot of the partition manager from Windows.