When an NTFS volume is created, the first four entries of the MFT are copied and placed halfway the volume in the $MFTMirr file. According to Microsoft, since XP these files (metadata files) can be moved, but in practice I don't seem to be able to move them. Yet I need to reclaim a large contiguous free space block to be able to resize the disk.
I've tried several defragmentation programs, including the open source UltraDefrag, PerfectDisk 11 and Windows own defragmenter. But none seem to move this file, or the related $LogFile, $Bitmap etc.
What tool or command can I use to relocate these files from the middle of the drive to somewhere else?
The mentioned PerfectDisk can do this, actually. You just need to know that you must select Boot Time in the main screen, which will perform an offline defrag or a on-next-boot defrag (depending on whether this is the current OS disk).
See also this related question by me, and this little blog that I wrote, containing more details on how this all comes together.
I am a dummy. and it took me 2 days to finally shrink my C: sys volume (WINDOWS 7). the solution I found is terribly simple.
Good Luck everybody !!! what a relief
I tried many other solutions like boot-time defragmentation with PerfectDisk as suggested in other answer. But the only working solution was to shrink partition with MiniTool Partition Wizard which will move files at boot-time and shrink partition to desired size. If it writes something about filesystem error then run
chkdsk /F /R C:
incmd.exe
after Windows loads, it will suggest to run this at boot-time, reboot, wait while file system is checked, then again try to shrink partition with Partition Wizard.