I think your approach is a Bad Thing(tm). You totally neglect the fact that parition types can be different (FAT32, NTFS). You also neglect the fact that different partition types have a different formatted format. Also neglected is the need to update the FAT for a FAT partition if you are adding files. You'd still need to update the FAT even if they are both FAT to begin with. See at the beginning of each partition there is a File Allocation Table (FAT). Turning two consecutive partitions to the same requires that 1) partition info is changed, 2) the new block of the grown parition needs to be formatted and linked up to the existing format of the 1st partition, 3) then the files and data need to be moved over and the FAT updated to reflect the addition of new files. Now, simular stuff happens on the 2nd partition. The FAT has to be moved to the new beginning of the parition. Any files occuping that segment of disk need to be moved (if any). As a result, that FAT has to then be updated. If your free space on your first parition is > used space on 2nd parition, then you can do this operation once. Otherwize, you'll have to repeat it and use the copy an amount of data over equal to the amount of free space on your 2nd parition. Steps: 1) Defrag both paritions (not needed but recommended, your software might do this automatically) 2) Shrink 2nd partition (remove free space) 3) Grow 1st parition (add free space) 4) Copy Data 5) Go to 2 until all files are moved over and partition 2 has size of 0, or is deleted. If you want a free product rather than paying for one, you can use FIPS 2.0 (Used by the Linux community) but that's not GUI based. You'll probably learn something though by using it.