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
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.