For most workstation/notebook scenarios, the amount of disk defragmentation you really need to be doing is debatable. In addition, Windows Vista's automated background disk defragmentation has made manual defragging almost unnecessary (in Vista, at least). Of course, you can still defragment on demand from the command line, or install one of the growing number of Vista-compatible defragmentation tools and use those if you choose, but. . . .
With all this in mind, I'd like to mention a program called JkDefrag. It's a free defragmentation utility with many professional-grade features. It's well worth your consideration if you want to implement a third-party disk defragmentation solution that's more advanced than the native tools in Windows.
JkDefrag 3.7 (named for its creator, J.C. Kessels of Holland) uses Windows' own native MoveFile APIs (the same subroutines used by DEFRAG itself) to do its work, so using the program entails little risk of data corruption.
The application is standalone; it can be run in any directory and requires no installation, so it can even be run from a removable drive as part of a portable software toolkit. Any mountable read-write file system in Windows can be defragmented with it.
Some of the program's more sophisticated features are the sorts of things you usually only see in defragmentation software you pay for. It allows you to move seldom-used files to the end of the disk, or force all files to move to the front of the disk (i.e., as a prelude to resizing a partition). The utility also moves all directory structures to the front of the disk, creates a free-space buffer at the front 1% of the disk, and frees up space in the MFT reserved zone whenever possible.
However, it does not perform any more advanced file placement than that, possibly because Windows itself (XP and Vista) has internal management for those functions. (It's been suggested to the freeware's author that JkDefrag be instructed to not move files that have been tagged by the prefetch optimizer, and he plans to eventually include this feature whenever possible.)
The program is both free and open-source; it's been made available under the GNU General Public License in both 32- and 64-bit implementations. Along with the Visual C++ source code, the author has also provided a DLL library that allows the program to be implemented from other applications. Note: To make the program's options a little easier to deal with, cohort Emiel Wieldraaijer has written a GUI command interface for JkDefrag called JkDefragGUI.
About the author: Serdar Yegulalp is editor of the Windows Insight, (formerly the Windows Power Users Newsletter), a blog site devoted to hints, tips, tricks and news for users and administrators of Windows NT, Windows 2000, Windows XP, Windows Server 2003 and Vista. He has more than 12 years of Windows experience under his belt, and contributes regularly to SearchWinComputing.com and SearchSQLServer.com.
More information on this topic:
- Tip: Disk defragmentation
- Topics: Admin tools
- RSS: Sign up for our RSS feed to receive expert advice every day.
This was first published in March 2007