To move sensitive partitions, you need to boot from CD or USB.
Some free partition editors that have boot CD are :
Of the two, MiniTool has the better user interface.
I suggest before starting, to take an image of the entire hard disk on external
media, using a product that also has a rescue boot CD.
Create this rescue CD and test whether it can see the backup disk and image,
just in case, as any mistake can destroy the disk and render the installed
operating systems unbootable.
My favorite backup product is the free AOMEI Backupper.
Below is the procedure to follow once you boot into the partition editor's boot CD.
It brings the unallocated space to below the EFI (sdb2), but as unallocated space
is not counted as a partition, one needs to rather move its adjoining partition.
- Move sdb4 right/down by 400MB
- Do the same for sdb3 (MSR). The unallocated space should now directly follow sdb2.
- Reboot to test if the disk still functions.
If reboot is impossible, then the MSR could not be moved - see below.
- Resize sdb2 to include the unallocated space
If the tools fail to move the MSR, or if Windows cannot boot after the MSR was moved,
you will need to delete and recreate it.
This is explained in this answer :
Boot into the Windows installation media, and press SHIFT+F10 to open
the command prompt. Type
list disk, and then
select disk X where
X is the number of the physical drive
containing the Boot partition. Type
list partition to give you the
partition list. I had the EFI System Partition at the start of the
disk now which is 100 MB in size, and the partition list says that it
began at an offset of 1024 kB. Windows considers a megabyte to be 1024
kB so the free space begins at an offset of 1024 + (100*1024) = 103424
kB. Type the command
create partition msr size=128 offset=103424. If
you have the sizes and offsets right, this should work, and in my
case, it indeed did.
See also the description of the command Create partition msr.