UltraDefrag v7.1.4

A Full Review of UltraDefrag, a Free Defrag Program

UltraDefrag is a free defrag program for Windows that allows advanced editing of program settings, boot time defrag options, and regular defragmentation features.

Though UltraDefrag is especially fitting for advanced users, novice users should have no trouble using it, thanks to the simple design and basic functions.

This review is of UltraDefrag version 7.1.4, which is the last free version you can download. The current software, available from Ultradefrag.net, is under a proprietary license.

More About UltraDefrag

UltraDefrag v7.0.0
  • UltraDefrag works with all versions of Windows 8, Windows 7, Windows Vista, and Windows XP. It also works in Windows 10, but it's not officially compatible yet
  • 32-bit and 64-bit versions of Windows Server 2012, Server 2008, and Server 2003 are also supported, and there's also a 32-bit download for Windows Server 2000 and Windows NT 4.0
  • In addition to a regular hard drive defrag, full and quick optimizations are allowed
  • You can view an HTML report of fragmented files, which includes the number of fragments as well as the size and path of the file
  • Several program and defrag options can be configured in the "guiopts.lua" options file, such as context menu settings, fragment and file size thresholds, and include/exclude settings; this file is accessible from Settings > Graphical interface > Options (or via the F10 key)
  • UltraDefrag can be setup to exit when a defrag has finished or run shutdown commands like standby, hibernate, logoff, reboot, or shutdown
  • Defrags can be scheduled but you're required to use Task Scheduler to do so; see the Scheduled Defragmentation section of their handbook for more information

UltraDefrag Pros & Cons

Even though it can be a complex program, there's much to like about UltraDefrag:


  • Can edit advanced options
  • Small setup file
  • Not hard to use for basic users
  • Open source program
  • Option to check a drive for errors using chkdsk
  • Supports boot time defragging
  • Defragment internal and external drives
  • Able to analyze, defrag, and optimize using the right-click context menu
  • Can defrag specific files and folders


  • Options are editable in text-only mode (no user interface)
  • Scheduling defrags may be confusing

Boot Time Defrags

Boot time defragging is a way for a defrag program to defrag files that are normally locked when you're using the operating system. For example, the Windows folder contains tons of files that are being actively used by Windows and therefore can't be defragged. These files and folders can be defragged only if the defrag process is ran while the files are inactive, like before Windows boots up.

UltraDefrag differs from almost every other defrag program I've used in that it lets you defrag any file or folder before booting into Windows. Popular programs like Defraggler and Smart Defrag do support boot time defrags but they are limited to formats and folders pre-written in the program settings. With UltraDefrag, you can modify these settings to include or exclude anything you like.

The major difference in UltraDefrag, compared to similar programs that support boot time defrags, is that you must edit the settings in text-only mode, which means you don't get a nice user interface to enable/disable options.

Open Settings > Boot time scan > Script (or hit the F12 key) to open the "ud-boot-time.bat" file from the system32 folder. It's this BAT file that defines how the boot time defrag works. The two options we'll look at are for including and excluding files and folders from the defrag.

This first line is used for including folders and files in a boot time defrag:

set UD_IN_FILTER=*windows*;*winnt*;*ntuser*;*pagefile.sys;*hiberfil.sys

As you can see, the "windows," "winnt," and "winnt" folders and "pagefile.sys" and "hiberfil.sys" files are set to be defragged. These can be removed from this line, another line can be added, or you can add more files and folders to this existing line. Just follow the same pattern as the existing entry and ensure you enter the new line before the "udefrag %SystemDrive%" entry.

In contrast with the first line, the second one in the BAT file is used for excluding files and folders:

set UD_EX_FILTER=*temp*;*tmp*;*dllcache*;*ServicePackFiles*

This can be modified just like the include line, and you can add as many of these lines as you like. For example, entering the following will exclude compressed files like 7Z and BZ2 from being defragged:

set UD_EX_FILTER=%UD_EX_FILTER%;*.7z;*.7z.*;*.arj;*.bz2;*.bzip2;*.cab;*.cpio

If you haven't noticed already, entering a file requires a period (*.mp4) whereas a folder doesn't (*windows*) — that's the only difference in adding in a file versus a folder.

The boot time feature of UltraDefrag will defrag files that are in this BAT file only. If you remove the "set UD_IN_FILTER" lines, nothing will be defragged. Similarly, if you were to type out every file extension in an include line and write nothing in a "set UD_EX_FILTER" line, every file type would be defragged.

Once this file has been edited, you can enable the boot time defrag from Settings > Boot time scan > Enable (or the F11 key). It will be enabled for every reboot until you disable it.

For more information on UltraDefrag's boot defrag options, see the Boot Time Defragmentation section of their handbook.

My Thoughts on UltraDefrag

UltraDefrag is actually a very nice defrag program. One of the few issues I have with it is that you can't use a regular program interface to edit settings. If this, as well as a built-in scheduler, were implemented, I think I'd be forced to recommend it over some of the more highly ranked programs from my list of defrag software.

If any of the above settings sound confusing, or you find yourself wondering what an option or feature is for, consider looking through the UltraDefrag Handbook for more information.

For people who aren't in to editing all the advanced options, the default settings are perfectly fine for regular use. You can still defrag, optimize, and use the boot time defrag feature without making any changes to the settings.