How can I move the MFT to end of contiguous used space?

Contrary to other answers, this IS possible, but can be challenging.

Why might you want to do this? Windows often places the MFT in the middle of the disk for historical performance reasons - this can prevent shrinking of a volume as Windows won't shrink the volume beyond un-movable files (of which the MFT is one).

Here's the steps I've just used to move my MFT to allow me to shrink my system volume:

  1. Run Disk Cleanup
  2. Disable System Restore
  3. Disable the page file
  4. Disable hibernation
  5. Run PerfectDisk (free trial is fine for this purpose) - make sure you do a boot-time defrag - this will move the MFT
  6. Run a defrag utility (my preference is Piriform's Defraggler) - after defrag the drive map should now show plenty of free space at the end of the disk
  7. Shrink the volume using the Windows Disk Management utility
  8. Enable hibernation
  9. Enable page file
  10. Enable system restore

Hope this helps!

References:

PerfectDisk

Piriform Defraggler


Sysinternals Contig is able to defragment the $MFT file.

When the filesystem is NTFS, contig can also analyse and defragment the following files:
$mft, $LogFile, $Volume, $Attrdef, $Bitmap, $Boot, $BadClus, $Secure, $UpCase, $Extend

Source