Depends on WHAT file(s) are not getting defragmented for the OP in his
computer. There are some files that defraggers won't touch.
http://www.techsupportalert.com/best-free-disk-de-fragmenter.htm?page=2#comment-58982
After reading the following article, it appears those scattered NTFS
files the defraggers wouldn't touch were the $LOGFILE. This file gets
scattered across the OS partition because new blocks get created due to
other files occupying the disk space but these blocks won't coalesce
together later with a defrag.
http://mindprod.com/jgloss/defragger.html
Alas, this doesn't include the Auslogics defragger (that I use). The
article mentions Auslogics but doesn't include it in the feature
comparison chart. It's been too long to remember if this one will move
the $LOGFILE into one contiguous chunk of sectors in the OS partition (I
suspect that it does not hence why I found re-imaging the partition
worked to defrag this part of NTFS).
Although a product may claim it will defrag "system files", that does
not equate to "file system" files. Windows system files are still
system files despite which file system you choose (FAT vs. NTFS).
For a defragmenter to be considered safe, it should use the defrag API
provided by Windows; however, that means files opened for exclusive
access cannot be moved by safe defragger. Some defraggers include a
boot-time defrag operation to run before the files are exclusively
allocated. Auslogics defragger doesn't include a boot-time defragger
(they want you to buy their Bootspeed product for $40) hence the need
for something more, like the old SysInternals' PageDefrag utility that
worked on Windows XP (it won't defrag the pagefile on Windows
Vista/7/Server2008, can defrag the registry hives, and I don't know
about the NTFS files). Either a defragger that will run at Windows
boot-time or one that lets you create a bootable disc (which means the
OS partition being defragged is quiescent since the OS isn't running)
will move those obstinate NTFS files.
Whether or not you have to move around those NTFS or other exclusively
locked files depends on what files you'll be later putting into that
partition. Although you might have tons of free space reported for the
partition, the myriad of tiny portions of the $LOGFILE spread all over
can result in no *contiguous* free space large enough for you to copy a
huge file into that partition. I haven't before bothered looking around
for free defragmenters that include a boot-time scan so Auslogics meets
my needs. If I feel compelled to get some huge file into one contiguous
chunk then re-imaging the partition might be faster than running a
boot-time defrag.
There are payware defraggers with boot-time operation that will
completely defrag even the metafiles for the file system; however, the
OP expressed criteria that the defragger must be free. IObit's
defragger includes boot-time defrags but I'm always leery of anything
from IObit. Also, see the jgloss article linked above regarding
deficiencies of IObit defragger (yeah, it has a boot-time scan but falls
short on other features). Piriform's Defraggler has a boot-time scan.
Although I use Auslogics for scheduled defragging, I also have
Defraggler installed in case I want to do a boot-time scan (which has
been so rare that I can't remember the last time that I did a boot-time
defrag). There is Puran Defrag Free Edition which has boot-time defrag
but I've never used it.
Warning: Do NOT run an incremental or differential image backup on the
same day you defrag your disk(s). You'll end up with huge backups
because all the physical relocation of the files. Incrementals and
differentials are used to create small backups and you defeat that
purpose if you defrag and then run these backups. Schedule the defrag
to run and complete on the same day and before you run a full backup,
and do not defrag on the days you run the incremental or differential
backups. Hence it is unwise to use on-the-fly defraggers that will
defrag when your computer goes idle or to configure boot-time defraggers
to run on every boot.