Let’s say you want to dual-boot between Windows and some flavor of linux.
You might think that you need some kind of fancy partitioning software like Paragon Hard Disk Manager 15 Suite to free up disk space for the linux partitions.
You might also think that your linux installer will do everything for you automatically.
As it turns out, neither of the above are always true!
Sometimes, you need free space on your drive in order for the linux install (even Ubuntu) to be happy.
Fortunately, there is a very easy and built-in way to shrink a partition in all modern versions of Windows without any fancy software!
You know the drill:
- You want to dual-boot between, say, Windows 10 and Ubuntu
- You boot from the Ubuntu media, follow the simple instructions, but you don’t see your drive, and Ubuntu refuses to resize your Windows partitions for you
- You resort to fancy software in Windows to free up empty space on your drive so that Ubuntu can install itself there
What if you could just use some nice feature in Windows to shrink your drive so that the linux installer would “just work”?
Shrink a drive to free up space for linux
First, find the My Computer / Computer / This PC icon – either on the desktop, or in File Explorer (Win-E to open it).
Right-click This PC and choose Manage:
In the window that opens, click Disk Management in the left column. Then, find the drive you’d like to shrink (E: in the example here), right-click the partition, and choose Shrink Volume…
Next, you’ll see this window pop up:
Just hang on a minute, and next you’ll see the Shrink window:
This may look confusing, but it’s pretty simple. In this case, we have a 1TB hard drive. The second box shows that about 457GB are “available shrink space”. That means you can’t free up any more than that amount of space on the drive for linux to use.
The reason for this is because Windows writes various “immovable files” to the drive, outside of your normal documents, images, etc. These special files take up space on the drive, and the simple Shrink utility isn’t capable of moving them out of the way for you.
So, change the amount of space you’d like to free up in the box next to the first red arrow. If you want to have 200GB free for your linux install, set this box to 200,000 MB. The Total size after shrink in MB will change accordingly.
When you’ve chosen the amount of space to free up on the drive, just click the Shrink button at the bottom… and wait!
When it’s done, you’ll see free space after your shrunken partition.
Now, all that’s left to do is shut down Windows, and boot from your linux installer again. This time, it will very happily use the free space to install itself. DONE!
A note about bootloaders…
Windows has a bootloader. Linux has its own bootloader.
When you dual-boot, the linux install may automagically plop itself on your hard drive, but it will also take over the bootloader and give you a menu to boot from either Windows or linux. You’ll have to select which OS you want to start at every boot.
If you ever want to ditch your linux dual-boot setup, it’s a piece of cake. Just do one of the following:
- Boot from a Windows install disc, and choose the Command Prompt option
- In Windows 8, you’ll need to load Windows, and then do:
Settings -> Change PC Settings -> Update and Recovery -> Recovery -> Advanced Startup
- In Windows 10, you’d do:
Settings -> Update & Security -> Recovery -> Click “Restart Now” under Advanced Startup
For Windows 8 and 10, once the machine reboots in “Advanced Startup” mode, you just click through the options until you get to a Command Prompt.
Once you’ve got your command prompt, type these commands:
- bootrec /fixmbr
- bootrec /fixboot
Aaaand reboot the puter normally. The above commands should restore the Windows bootloader, and kill your dual-boot setup. All that’s left to do is use the Disk Management console above, delete the linux partition, and then Expand your drive to eat up the free space again.
Not too hard, eh?
Many thanks it works well. A warning, do not do as I did, shrink a partition only to find that you have an unusable large free space outside the partitions i.e. 4 partitions and an unusable block! Remember 4 is the maximum number of partitions allowed. Better to choose an existing partition and split it.
If you install dual boot on the same drive, the functionality is lost after the next Win10 update. It reverts to single boot to Win10
It is best to install Linux on a second drive
I’ve dual-booted with Ubuntu + Win 10, and I used GRUB2 as the bootloader. When I did that, Win 10 upgrades worked okay… The only problem was that if my default OS was Ubuntu, I had to sit there and pick Win 10 every time it rebooted. If it went into Ubuntu by default, I had to restart and then pick Win 10, and the Win 10 upgrade install picked up where it left off.