I had my primary partitions maxed out but I deleted some and now I want to make one of my logical partitions a primary. Can I do this with gparted or other free tools?
Before you do anything, do a full metal backup as things do go wrong with these types of processes.
The "easy button" is Acronis Disk Director for $24.
The other way to do this is by editing your partition table.
NOTE: This procedure doesn't work (I don't think) on a system (like a Mac) that uses EFI.
To do that, boot off a linux live CD and run:
...in a folder you can write to. That will give you a file called
For example, if your sda5 is the partition you want to make primary, change "sda5" to "sda1" (or 2/3/4) and push the rest of the numbers down. The main point is you want to make sure the start, size, and id are the same.
Under some limited constraints it is possible to convert a logical partition into a primary. This is however a rather uncommon operation, so I am not aware of any tools that support this out of the box in one operation, although you should be able to do it yourself with the help of parted, fdisk or similar programs, although possibly by re-calculating start/end for partitions manually.
Some years ago I wrote a program to print the content of the partition table. Let's say that your disk is partitioned in the following way:
Here hda4 is the extended partition containing the logical partitions. By shrinking hda4 (to cover cylinders 4700 to 13314 or cylinders 5484 to 30400) it would be possible to make either hda5 or hda10 into a primary partition.
Now from a strictly theoretically point of view it could perhaps be possible to put a primary partition inside the extended (instead of shrinking the extended partition and only being able to change the partitions at the ends), but who knows what avalange of compability problems you would trigger by that. That would be considered to be a sane partition layout by an extremely low number of programs/persons (if any/anyone).
In the concrete example above, the partition table already contains 3 primary partitions in addition to the extended partition, so there are no entries left to create a primary partition; you would have to delete one of hda1, hda2 or hda3 in in order to possibly change hda5 or hda10 into a primary partition.
You say that you have free entries to make a new primary partition, so that should be ok. You do not however specify any details for the logical partition that you want to convert, so I cannot say if that is possible without you giving more details.
Steps to do it
For the example above, if the original hda3 partition is deleted (to give an free entry for creating a primary partition) and hda5 is converted to a primary partition (which then becomes hda3), the layout would be the following:
Notice that all the remaining logical partitions are renumbered compared to the original situation.
My FixParts program is an open source tool that can do the job, albeit with constraints of what can be converted based on MBR's limitations and limitations imposed by your current layout. (FixParts is a partition table editor alone; it can't shrink or move partitions, so if your primaries are all crammed up against each other with no room between them, the only one you could convert to a logical partition would be the first one.)
I used system rescue cd TestDisk and after doing a quick scan it list all my partitions and I flipped the L to a P then rewrote the partition table
it was dirty but it worked
Paragon Partition Pro bootable disk converts logical to Primary easily. Just did it.