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

6

I want to move the MFT to end of contiguous used space. Right now it is placed at the middle: enter image description here

I want to move it to the beginning. How can I do that?

Rocky Singh

Posted 2012-07-16T10:23:02.483

Reputation: 219

because i want to resize partition and create space for new linux partition. This MFT doesnt allow me to resize it lower than 50% of original size. – Jiří Doubravský – 2017-05-23T08:35:55.337

See also How do you defragment the MFT on an NTFS disk?

– Vadzim – 2019-01-18T09:53:46.270

In case defrag is needed for shrinking and compressing of the disk image, consider also zeroing alternative: https://serverfault.com/questions/165070/how-to-zero-fill-a-virtual-disks-free-space-on-windows-for-better-compression

– Vadzim – 2019-01-18T17:25:48.277

3??? MBR is not the same as MFT. – sgmoore – 2012-07-16T10:58:55.563

Why exactly do you want to do this? – Ramhound – 2012-07-16T11:16:51.543

3

That looks like it might be the MFT mirror, which holds the most important (beginning) parts of the MFT and is often located fairly far away to allow for recovery in case of corruption. Or it could be a fragmented MFT, it's impossible to tell from that screenshot.

– Bob – 2012-07-16T11:33:39.703

Answers

1

As far as I know, you can't move the MFT without risking a reinstall if things go wrong. I'd recommend leaving it where it is.

You can't move MBR, full stop.

Diamond

Posted 2012-07-16T10:23:02.483

Reputation: 371

Not true. The windows API documentation explicitly documents how to move the MFT and other structures.

– doug65536 – 2016-10-19T23:42:02.113

1

I'm not sure about your "full stop". I just followed the instructions in below answer and moved the MFT without a hiccup, and at no point felt I was risking a reinstall.

– Kit Johnson – 2017-07-12T12:40:27.517

10

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

Phil Robinson

Posted 2012-07-16T10:23:02.483

Reputation: 101

Definitely helps. Worked a treat. IMO this is the correct answer! – Kit Johnson – 2017-07-12T12:40:56.327

Also worked for me! – newandlost – 2018-01-13T09:44:11.947

5

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

Der Hochstapler

Posted 2012-07-16T10:23:02.483

Reputation: 77 228

In my case contig did really defragment $Mft itself, but it just created more gaps in contiguous used space. And it didn't move the MFT reserved space at all. While it's MFT reserved space that is located in the middle of the disk that prevents shrinking.

– Vadzim – 2019-01-18T14:37:49.633

For me, $Mft was fragmented, so it's defragmentation using Contig64 -v $Mft moved it 4G away from the end of the shrunken partition, allowing me to shrink the partition by another 4G. – Samveen – 2019-05-11T06:33:15.160

1

UltraDrefrag does not move it to start (talking about $MFT reserved part), it just only defrag $MFT (talking about used $MFT part).

At least with default options in configuration.

If you know how to tell UltraDrefrag to move $MFT reserved part to the start, please post it.

Oh, by the way... try to do it on a 32GiB VHD / VHDX drive mounted while Windows is working (so no risk and is the better proof of concept of working).

But, finally i found a small tool that moves that $MFT reserved zone to the start of the disk (i had used "compact" and "optimize" options, so not sure which one did the tick), it is called: DiskTuna

That tool also let you fully consolidate free space (much more than most other tools like windows native Defrag, Piriform Defraggler, auslogics DiskDefrag, IOBit SmartDefrag, etc).

And it lets you specificy file list patterns to not move (it is a pitty that pattern list is only for defrag option), so you can make videos, music, etc to stay at end of disk by moving them to the end of the disk (with a different tool like Piriform Defraggler).

Claudio

Posted 2012-07-16T10:23:02.483

Reputation: 11

0

UltraDefrag (Open Source Defragmentation tool for the Windows) have MFT optimization, which processes the MFT only.

Stanislav Prusac

Posted 2012-07-16T10:23:02.483

Reputation: 1 054