gparted is a opensource hard disk partitioning utility. It has a GUI similar to Partition Magic and has the abilty to create, delete, move, copy, and resize most types of partitions. I have used it to resize/copy windows partitions when upgrading hard drives and to shrink a single partition to allow room on a drive for a second partition so I could dual-boot linux/windows.
http://gparted.sourceforge.net/livecd.php