Boot Time Defragmentation

To defragment files locked most of the time UltraDefrag can be launched inside of the Windows boot process. Being executed there UltraDefrag can defragment almost everything including paging and hibernation files.

To enable the boot time defragmenter click Settings > Boot time scan > Enable in UltraDefrag GUI. To configure it click the Script submenu or edit the following file manually: %SystemRoot%\system32\ud-boot-time.cmd.

The following command line tools can be used as well to control it: boot-on, boot-off and boot-config.

Being enabled the boot time defragmenter will run at every boot. However, you may skip its execution, just press any key when the appropriate prompt will be shown on the screen. To stop any disk operations later hit Pause/Break.

Interactive mode

Hit Escape at any time to drop into an interactive console. It will show the following prompt on the screen and wait for your input:

Interactive mode:
Type 'help' to list available commands.

The same interactive console will be shown on the screen after the boot time script execution if the exit command is missing there.

Available commands

; or #
Lines starting with one of these characters are treated as comments.
Lines starting with this character will be not shown on the screen.
Turns the boot time defragmenter on for the next boots.
Turns the boot time defragmenter off for the next boots.
Similar to the DOS command. Executes a script; if none is specified the main boot time script will be executed.
Similar to the DOS command. Displays a message, an empty line, sets whether the commands will be shown on the screen or not or displays the current setting.
Similar to the DOS command. Terminates UltraDefrag.
Lists all available commands.
Displays a file in a HEX viewer layout:
000000C0: 0a 00 3b 00 20 00 46 00 |   ;   F
000000C8: 72 00 61 00 67 00 6d 00 | r a g m
000000D0: 65 00 6e 00 74 00 65 00 | e n t e
Lists all manually entered commands. To cycle through them use the up/down arrow/cursor keys.
Lists or displays available manual pages.
Pauses the script execution for the specified time interval (in milliseconds) or till a key is pressed if no duration is specified. For example, the command pause 1000 will pause execution for one second.
Reboots the computer.
Similar to the DOS command. Lists, sets and clears environment variables.
Shuts the computer down.
Similar to the DOS command. Displays a file; if none is specified the main boot time script will be shown.
The boot time equivalent of the Console Interface. Accepts the following command line switches: -l, -la, -a, -o, -q, --quick-optimize, --optimize-mft, --all, --all-fixed, -r, --repeat. To process single files or directories specify their absolute paths. If they include spaces enclose them by double quotes:

udefrag "C:\Documents and Settings\*" C:\WINDOWS\WindowsUpdate.log

All commands displaying long lists (help, hexview, history, man, set, type) are splitting them into pages in the interactive mode.

Environment variables

Environment variables can be used the same way as in Windows batch files.

Two special variables are supported: DATE for the current date in the format YYYY-MM-DD and TIME for the current time in the format HH-MM:



Encrypted disks cannot be defragmented at boot time because the local security service is inactive on early stages of Windows boot.

UltraDefrag terminates immediately in Windows safe mode because it cannot display texts on the screen there.

Script samples

The following script is used by default:

@echo off
; UltraDefrag Boot Time Shell Script
set UD_IN_FILTER=*windows*;*winnt*;*ntuser*;*pagefile.sys;*hiberfil.sys
set UD_EX_FILTER=*temp*;*tmp*;*.zip;*.7z;*.rar;*dllcache*;*ServicePackFiles*
; uncomment the following line to increase amount of debugging output
; uncomment the following line to save debugging information to a log file
; set UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\logs\defrag_native.log
udefrag c:

The next script utilizes environment variables:

; create a timestamped log file
set UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\logs\defrag_native_%DATE%_%TIME%.log
udefrag %SystemDrive%

Previous: Scheduled Defragmentation Next: File Fragmentation Reports