Executive Summary:
You might not be content with the limited functionality of Windows Vista's new GUI defrag tool. For more options, turn to the command-line defragger, Defrag (defrag.exe). We outline the tool's various switches and capabilities for you.
|
Microsoft has included an NTFS disk-defragmentation
tool in Windows Server products
since Windows NT 4.0. In fact, it seems as if
every new Windows version comes with a brand-new
defrag tool, and Windows Vista is no exception. Vista’s
GUI-based defragmenter has taken a lot of heat for its
taciturnity: Whereas previous GUI defraggers offered
a graphical representation of your disk’s used and free
spaces, Vista’s GUI defragger merely asks that you trust
in its effectiveness and not worry about the details. However,
even if the tool is doing a good job, I prefer to know
what my system is doing.
So, I turned to the command-line defragger, Defrag
(defrag.exe), to see whether it offered a bit more functionality
than the GUI tool. As is so often the case, it
did.
Basic Defrag
One of the cool things about Defrag is its report, which
you can get with the tool’s -a option (for the basic report)
or its -a -v option (for the more detailed report). Invoke
the command as follows:
defrag -a -v
The basic report displays the size of the largest block of
free space and the overall percentage of fragmented files,
followed by a line of advice about whether you should
defragment the drive. The addition of -v adds about 20
factoids concerning your system, including the average
size of your files, the degree of fragmentation in NTFS’s
Master File Table (MFT), the total number of fragmented
files, and so on.
Don’t forget to run Defrag from an elevated Vista
command prompt—by choosing the Run as Administrator
option when you open the command prompt.
Defragging involves reading and writing files, and
because only administrators have the power to read all
files, Defrag probably requires this privilege elevation.
Defragging a drive is easy: Simply follow the command
with the letter of the drive to defragment. For
example,
defrag C:
That command performs a quick, simple defragmentation
that merely attempts to bring together fragments
that are smaller than 64MB. The reason behind that
limitation is that you won’t see much performance
impact in joining monstrous hunks of data, compared
with joining smaller fragments. For example, sequentially
reading a file broken into ten 500MB fragments
would certainly be slower than reading one 5000MB
chunk, but not by much. But consider reading that same
file as 500 10MB fragments. The drive’s read/write head
would be dancing all over the platter!
However, what if you want to go ahead and defragment
fragments smaller than 64MB? Then just add the
-w option, as in
defrag C: -w
Of course, that job will take longer—much longer,
in some cases. When I tried defragging my 160GB C
drive with the -w option after running Vista for nine
months, the procedure took four hours. But, again, if
“sleek is what you seek” defragging-wise, then –w is
the way.
Heavy Duty
I’ve sometimes been guilty of ignoring the need for
defragmentation until performance is sluggish, and it’s
no coincidence that the sluggishness is most obvious
when I’ve just about filled the drive. Unfortunately, the
GUI defragger refuses to attempt a defrag if the drive has
less than 15 percent of its space free. The command-line
defragger, however, offers the -f option, which forces
a defrag even if the drive doesn’t have that much free
space. Now, I’m happy this option exists, but I would
use this option only in dire circumstances. I’d hate to
try to defrag a drive full of important information, only
to find that the defrag process isn’t so reliable without a
lot of free space.
Finally, Defrag offers the -c option, which defragments
all volumes on the target computer. Armed with
this information, I’ve turned off the out-of-the-box
scheduled defragmenter, and built my own heavy-duty
defragger by scheduling the command
defrag -c -w
Give Vista’s Defrag tool a try. After all, a little more
speed never hurt anyone.