UltraDefrag Handbook 7.0.0 Letter

Embed Size (px)

DESCRIPTION

Udefrag

Citation preview

  • UltraDefrag Handbook7.0.0

    Generated by Doxygen

  • Chapter 1

    The UltraDefrag Handbook

    Authors:

    Stefan Pendl ([email protected]),Dmitri Arkhangelski ([email protected]).

    Table of Contents

    1. Introduction

    2. Installation

    3. Console Interface

    4. Scheduled Defragmentation

    5. Graphical Interface

    6. Boot Time Defragmentation

    7. File Fragmentation Reports

    8. Tips and Tricks

    9. Frequently Asked Questions

    10. Reporting Bugs

    11. Translation

    12. Credits and License

    13. Development

    License

    UltraDefrag is licensed under the terms of the GNU General Public License . Feel free to redistribute it under certainconditions.

    This document is licensed under the terms of the GNU Free Documentation License .

  • 2 The UltraDefrag Handbook

    Generated by Doxygen

  • Chapter 2

    Introduction

    Preface

    UltraDefrag speeds up the computer by defragmentation of files.

    When files consist of many little fragments scattered around the disk the computer needs more mechanical work to readthem. Because of that the disk access becomes slower.

    UltraDefrag reduces the file fragmentation, thus it makes disk operations faster. Also the program can optimize awhole disk by placing small files close to each other, sorted by path (or other criteria). After the disk optimization lessmechanical work is needed to read groups of small files. This reduces startup times of many applications including weband photo browsers.

    In contrast with the most other disk defragmenters UltraDefrag can defragment locked files by running during the Win-dows boot. Actually all files including page and hibernation files can be defragmented there.

    Also UltraDefrag aims to be fast, simple, reliable and efficient.

    About the software

    UltraDefrag has the following features:

    system files defragmentation (page-file, hibernation file, ...)

    MFT (master file table) defragmentation

    NTFS metafiles defragmentation

    ultra fast NTFS analysis

    fast defragmentation algorithm

    effective disk optimization algorithm (many strategies available)

    safety, it can never damage processed files

    simplicity, it can be used without reading the documentation

    ability to defragment single files/directories from the context menu of Explorer

    ability to defragment additional streams attached to NTFS files

  • 4 Introduction

    ability to exclude any unimportant files based on flexible filters

    ability to defragment files, which have more fragments than specified by a threshold

    ability to automatically break defragmentation when the specified time interval elapses

    ability to perform defragmentation only when the disk fragmentation level is above the specified value

    ability to select multiple disks for defragmentation

    well readable HTML reports

    powerful command line interface

    ability to automatically hibernate/shutdown PC after a job is done

    ability to make an automatic effective defragmentation through Windows Task Scheduler

    multilingual graphical interface

    little binaries (about 1 Mb)

    portable version available which requires no installation

    native 64-bit support

    open source code licensed under GPL

    UltraDefrag runs on Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008 and Windows 7, includ-ing all 64 bit versions of Windows.

    UltraDefrag v6 supports Windows NT 4.0 and Windows 2000 as well.

    UltraDefrag cannot be used on DOS, Windows 9x, Windows NT 3.51, ReactOS and Mac OS since these operatingsystems provide no defragmentation API. However, Linux port of UltraDefrag exists. It is based on NTFS-3G capabilities.

    Supported file-systems

    The following file-systems can be defragmented by UltraDefrag: FAT12/16/32, exFAT and NTFS.

    There are a few system restrictions which apply to disk defragmentation. Unfortunately UltraDefrag cannot take awaythese restrictions:

    The first clusters of FAT directories cannot be moved. This is a well known FAT driver restriction and cannot befixed. So, UltraDefrag cannot defragment FAT directories. It tries to optimize them instead by placing all fragmentsclose to each other behind the first one.

    The first 16 clusters of MFT cannot be moved, this is a file system driver limitation. So, UltraDefrag cannotdefragment the MFT. However, it can optimize it by placing all fragments close to each other.

    Fragmentation level

    The fragmentation level or percentage is calculated as follows:

    fragmentation = number of fragmented file fragments / number of all file fragments

    Generated by Doxygen

  • 5Processing algorithms

    Defragmentation algorithm

    1. The analysis phase scans the whole disk to collect information about all files and free space.

    2. The defragmentation phase eliminates little fragments by joining them together. This speeds up access to individ-ual files.

    Full optimization algorithm

    1. The analysis phase is the same as for defragmentation.

    2. The next phase moves all small files and fragments to the end of the disk to free space at the beginning of it.

    3. The third phase moves small files back, sorted by user defined criteria (by path in ascending order by default).This speeds up access to groups of files.

    4. The last phase defragments all files.

    Quick optimization algorithm

    Quick optimization consists of the same steps as the full optimization. However, to speed things up it skips alreadysorted out groups of files. Free space consolidation becomes not so good in this case, but overall disk processing timebecomes shorter.

    Note

    Optimization algorithms ignore any size, name and fragment count filters.

    Sometimes even the disk optimization fails to make a large continuous free space gap. This happens when unmovable(locked) files are scattered around the disk. In order to defragment big files (pagefile etc.) in such cases they are twoworkarounds available:

    Move all files to another disk, reformat the disk and move all back. This causes the perfect disk optimization.

    Run GParted or Partition Magic to manually reduce the disk size as much as possible. This operationwill move all files including system files to the beginning of the disk. After restoring the original size, you will havea large continuous free space area at the end of the disk. This space may be used hereafter to defragment largefiles.

    Note

    UltraDefrag always skips files located directly in MFT records (these files usually have sizes below 1kb), becausethey are actually part of the MFT. Also files which have no content are skipped, because actually there are noclusters on disk belonging to them. Additionally, UltraDefrag never tries to defragment files marked as temporaryby applications which created them. Because such files will be deleted soon, therefore they will not decrease thesystem performance.

    Generated by Doxygen

  • 6 Introduction

    Web resources

    The Ultra Defragmenters home page at Sourceforge.net.

    Please be sure to visit this site for information, documentation, tutorials, news, etc. All UltraDefrag related things areavailable there.

    For help requests visit our forum at Sourceforge.net.

    Please report all problems and bugs via our bug tracker at Sourceforge.net.

    To participate in the UltraDefrag translation, please visit the UltraDefrag project at Transifex.

    Generated by Doxygen

  • Chapter 3

    Installation

    To obtain the latest version of the program please visit the projects download page.

    Note

    You must be an administrator to install and run UltraDefrag.You must have a 64-bit version of Windows to run the 64-bit versions of the program. The IA-64 version was nevertested by the authors. It requires the Intel Itanium processor and an appropriate 64-bit edition of Windows.

    There are two different types of packages available for download:

    Full-featured installer

    It installs all of the program features, but requires installation therefore cannot be used directly from USB sticks.The installer allows installing the UltraDefrag Micro Edition too, which is a lightweight version of the programcontaining only the command line tool and the boot time defragmenter. It is intended to be used from the consoleonly.

    Portable package

    Download it, unpack it and use without an installation. Copy it on an USB stick and you will be able to use Ultra-Defrag everywhere by simply running it from there.

    Note

    The boot time defragmenter is missing from the portable packages, but all other features are included. You can findmore information about portable applications here.

    To expand usage statistics gathering by the website UltraDefrag sends also requests to the Google Analyticsservice during startup. It takes no negative effect on security - many thousands of websites around the world use thesame service to gather basic statistics of use. However, the UltraDefrag usage tracking can be turned off during aninstallation.

    Silent Installation

    UltraDefrag can be installed in silent mode by adding the /S switch to the installers command line at the commandprompt. In this case no dialogs will be shown and the program will be installed to the hard drive completely with all thefeatures enabled.

  • 8 Installation

    Note

    For easier debugging of installation problems a log file will be created when an error is encontered. The log file islocated in the temporary folder of the executing user: %TMP%\UltraDefrag_Install.log

    The following additional command line switches are supported:

    /FULL=1

    Install the full edition, which includes all components and icons.

    /MICRO=1

    Install the micro edition, which includes only the core components and the shell extension.

    /ICONS=(0|1)Install or remove all shortcut icons. Example: /ICONS=0 removes all icons.

    /BOOT=(0|1)Install or remove the boot components. Example: /BOOT=1 installs the boot components.

    /CONSOLE=(0|1)Install or remove the console components. Example: /CONSOLE=1 installs the console components.

    /GUI=(0|1)Install or remove the GUI components. Example: /GUI=1 installs the GUI components.

    /HELP=(0|1)Install or remove the documentation. Example: /HELP=0 removes the documentation.

    /SHELLEXTENSION=(0|1)Install or remove the Explorer context menu handler. Example: /SHELLEXTENSION=0 removes the Explorercontext menu handler.Installing the context menu handler forces the console interface it depends on to be installed.

    /STARTMENUICON=(0|1)Install or remove the start menu icon. Example: /STARTMENUICON=1 installs the start menu icon.Installing the start menu icon forces the GUI interface it depends on to be installed.

    /DESKTOPICON=(0|1)Install or remove the desktop icon. Example: /DESKTOPICON=0 removes the desktop icon.Installing the desktop icon forces the GUI interface it depends on to be installed.

    /QUICKLAUNCHICON=(0|1)Install or remove the quick launch icon. Example: /QUICKLAUNCHICON=1 installs the quick launch icon.Installing the quick launch icon forces the GUI interface it depends on to be installed.

    Generated by Doxygen

  • 9/DISABLE USAGE TRACKING=(0|1)Enable or disable tracking the usage of UltraDefrag. Example: /DISABLE_USAGE_TRACKING=1 disables usagetracking.Usage tracking is done by accessing a simple text file on the UltraDefrag home page.

    /D={Install Location}This sets the installation folder for UltraDefrag. Example: /D=C:\Program Files\UltraDefrag.It must be the last parameter used in the command line and must not contain any quotes, even if the path containsspaces.Only absolute paths are supported. The destination folder must be empty or contain a previous UltraDefrag instal-lation.

    Example command line to silently install the full edition with only the start menu icon:

    ultradefrag.bin.i386.exe /S /FULL=1 /ICONS=0 /STARTMENUICON=1 /D=C:\Program Files\UltraDefrag

    To check the result of the command line switches omit the /S switch, which opens the interactive installer and allowschecking the selections on the component page.

    There is also a silent mode for the uninstaller program. At the command prompt type:

    %UD_INSTALL_DIR%\uninstall.exe /S

    to automatically remove the program from the hard drive without any graphical dialogs.

    Generated by Doxygen

  • 10 Installation

    Generated by Doxygen

  • Chapter 4

    Console Interface

    The UltraDefrag installer places the command line tool udefrag.exe into the System32 directory. Therefore it may berun without specifying the full path. View screenshots...

    Command line options

    Usage:

    udefrag [command] [options] [driveletter:] [path(s)]

    Commands:

    -a, --analyze

    Analyze the disk.

    --defragment

    Defragment the disk. This is the default action.

    --optimize-mft

    Optimize the MFT by placing its fragments as close to each other as possible. This is also included in full and quickoptimization.

    -q, --quick-optimize

    Optimize the disk space by moving not fragmented files to the beginning of the disk.

    -o, --optimize

    Optimize the disk space by moving all files to the beginning of the disk.

    -l, --list-available-volumes

    List all disks available for defragmentation, except removable. Each line of the output contains a drive letter, filesys-tem name, total space and amount of free space.

    -la, --list-available-volumes=all

    List all disks available for defragmentation, including removable.

  • 12 Console Interface

    -h, -?, --help

    Show help screen. Running UltraDefrag without arguments has the same effect.

    Note

    The commands are exclusive and cant be combined with each other.

    Options:

    -r, --repeat

    Defragment or optimize the disk until there is nothing left that can be moved. This will process the disk multipletimes in a row if needed and possible.

    -b, --use-system-color-scheme

    Use system color scheme (usually black/white) instead of the green color.

    -p, --suppress-progress-indicator

    Hide progress indicator and cluster map.

    -v, --show-volume-information

    Show disk information after a job completes.

    -m, --show-cluster-map

    Show a map representing clusters of the disk.

    --map-border-color=color

    Set cluster map border color. Available values: black, white, red, green, blue, yellow, magenta, cyan, darkred,darkgreen, darkblue, darkyellow, darkmagenta, darkcyan, gray. Yellow color is used by default.

    --map-symbol=x

    Set the character used for the map drawing. There are two accepted formats: a character may be typed directly, orits hexadecimal number may be used. For example, --map-symbol=0x1 forces UltraDefrag to use a smile characterfor the map drawing. Valid numbers are in the range of 0x1 to 0xFF. The % symbol is used by default.

    --map-rows=n

    Number of rows of the cluster map. Default value is 10.

    --map-symbols-per-line=n

    Number of map symbols contained in each row of the map. Default value is 68.

    --use-entire-window

    Expand cluster map to use entire console window.

    --wait

    Wait until already running instance of UltraDefrag completes before starting the job (useful for the scheduled de-fragmentation).

    Generated by Doxygen

  • 13

    --shellex

    This option forces to list objects to be processed and display a prompt to hit any key after a job completion. It isintended for use in Explorers context menu handler.

    Note

    All the environment variables listed below are ignored when the --shellex switch is on the command line. Insteadof taking environment variables into account the program interprets the %UD_INSTALL_DIR%\options\guiopts.luafile.

    Drive letter:

    Specifying just the drive letter will cause UltraDefrag to defragment the disk.

    It is possible to specify multiple drive letters. Like this: udefrag c: d: x:

    Also the following keys can be used instead of the drive letter:

    --all

    Process all available disks.

    --all-fixed

    Process all disks except removable.

    Note

    The --all-fixed key has higher precedence, if both keys are specified UltraDefrag will process fixed drives only.

    Path:

    Specifying a path will cause UltraDefrag to defragment only the specified path.

    It is possible to specify multiple paths separated by spaces.

    Paths including spaces must be enclosed by double quotes (").

    Relative and absolute paths are supported.

    Example:

    udefrag "%USERPROFILE%" ..\Test "My Documents" C:\WINDOWS\WindowsUpdate.log

    Environment variables

    Filter variables

    UD IN FILTER

    List of file patterns to be included in the defragmentation process. File patterns must be separated by semi-colons.

    UD EX FILTER

    List of file patterns to be excluded from the defragmentation process. File patterns must be separated bysemicolons.

    Generated by Doxygen

  • 14 Console Interface

    UD FRAGMENT SIZE THRESHOLD

    Eliminate only fragments smaller than specified.The following size suffixes are accepted: KB, MB, GB, TB, PB, EB.

    UD FILE SIZE THRESHOLD

    Exclude all files larger than the specified size.The following size suffixes are accepted: KB, MB, GB, TB, PB, EB.

    UD OPTIMIZER FILE SIZE THRESHOLD

    In optimization sort out files smaller than specified only.The following size suffixes are accepted: KB, MB, GB, TB, PB, EB.The default value is 20MB.

    UD FRAGMENTS THRESHOLD

    Exclude all files which have less fragments than the specified number.

    UD SORTING

    Set the file sorting method for the disk optimization. PATH is used by default, it forces to sort files by theirpaths. Four more options are available: SIZE (sort by size), C_TIME (sort by creation time), M_TIME (sort bylast modification time) and A_TIME (sort by last access time).

    UD SORTING ORDER

    Set the file sorting order for the disk optimization. ASC (ascending) is used by default. DESC (descending)forces to sort files in descending order.

    UD FRAGMENTATION THRESHOLD

    Set the fragmentation threshold, in percents. When the disk fragmentation level is below the specified value, allthe disk processing jobs except of the MFT optimization will be not performed.

    Process variables

    UD TIME LIMIT

    When the specified time interval elapses the job will be terminated automatically.The following time format is accepted: Ay Bd Ch Dm Es.Here A,B,C,D,E represent any integer number, y,d,h,m,s - suffixes represent years, days, hours, minutes andseconds.

    UD REFRESH INTERVAL

    Progress refresh interval, in milliseconds. The default value is 100.

    UD DISABLE REPORTS

    If this environment variable is set to 1 (one), no file fragmentation report will be generated.

    Debug variables

    UD DBGPRINT LEVEL

    Control amount of the debugging output. NORMAL is used by default, DETAILED may be used to collectinformation for the bug report, PARANOID turns on a really huge amount of debugging information.

    UD LOG FILE PATH

    If this variable is set, it should contain the path (including filename) to the log file to save debugging output into.If the variable is not set, no logging to a file will be performed.

    Generated by Doxygen

  • 15

    UD DRY RUN

    If this environment variable is set to 1 (one) the files are not physically moved. This allows testing the algorithmwithout changing the content of the disk.

    Note

    All filters are case insensitive. Each filter substring represents a pattern, UltraDefrag will compare with paths. Forexample, the "temp;tmp" filter will be applied both to temporary folders and to Internet Explorerscache.

    Both ? and wildcards are accepted by filters. ? character matches any one character, - any zero or morecharacters. . pattern matches any file with an extension. An asterisk alone () matches anything (with or without anextension).

    Note

    Files marked temporary by system are always excluded regardless of filters, because usually they take no effect onsystem performance.Files excluded from processing are never treated as fragmented. Because only files affecting system performanceshould get our attention.

    Examples

    include only paths, which include one of these words

    set UD_IN_FILTER=*windows*;*winnt*

    eliminate only fragments below 20 MB in size

    set UD_FRAGMENT_SIZE_THRESHOLD=20MB

    process only files below 50 MB in size

    set UD_FILE_SIZE_THRESHOLD=50MB

    process only files with more than 6 fragments

    set UD_FRAGMENTS_THRESHOLD=6

    process only disks with fragmentation level above 10%

    set UD_FRAGMENTATION_THRESHOLD=10

    terminate processing after 6 hours and 30 minutes

    set UD_TIME_LIMIT=6h 30m

    save debugging information to the specified file

    set UD_LOG_FILE_PATH=C:\Windows\Temp\defrag_native.log

    defragment drive C:

    udefrag C:

    Generated by Doxygen

  • 16 Console Interface

    list all available drives

    udefrag -la

    analyze all drives excluding removable ones

    udefrag -a --all-fixed

    optimize drives E: and K:

    udefrag -o E: K:

    optimize the MFT of drives O: and Q:

    udefrag --optimize-mft O: Q:

    defragment the specified file and folder

    udefrag C:\Windows\WindowsUpdate.log "C:\Program Files"

    Example batch scripts

    The following example illustrates defragmentation of a few different disks in series adjusting parameters separately foreach disk.

    @echo off

    set UD_EX_FILTER=*system volume information*;*temp*;*tmp*;*recycle*;*.zip;*.7z;*.rarset UD_FILE_SIZE_THRESHOLD=50MBudefrag c: > c:\ud.log

    set UD_IN_FILTER=D:\My Documents\*udefrag d: >> c:\ud.log

    set UD_IN_FILTER=udefrag e: >> c:\ud.log

    Notice that we are excluding archives in the script above. Because they are usually rarely accessed and may be leftfragmented therefore without noticeable system performance degradation.

    The next example demonstrates how the complex disk defragmentation job may be automated easily.

    @echo off

    rem Defragment small files.

    set UD_FILE_SIZE_THRESHOLD=50MBudefrag c:

    rem Defragment large filesrem which have at least 5 fragments.

    set UD_FILE_SIZE_THRESHOLD=set UD_FRAGMENTS_THRESHOLD=5udefrag c:

    The following three commands are very useful in disk defragmentation scripts too:

    Generated by Doxygen

  • 17

    chkdsk checks disks for errors and corrects them

    shutdown -s -t 00 automatically shuts down the computer

    hibernate4win now hibernates the computer

    The last command is included in the UltraDefrag package. It was especially created to hibernate the computer throughthe command line after a disk defragmentation, which may take some time to finish.

    Explorers context menu handler

    The UltraDefrag command line tool is also used as an Explorers context menu handler. When you right click a drive,folder or file icon in Explorer, you can select an appropriate menu item to defragment the selected object.

    To stop the defragmentation press Ctrl+C keys or close the command prompt.

    To configure the context menu handler edit the IV-th section of the %UD_INSTALL_DIR%\options\guiopts.lua file.

    Currently the context menu handler is not available in the portable version of the program.

    Generated by Doxygen

  • 18 Console Interface

    Generated by Doxygen

  • Chapter 5

    Scheduled Defragmentation

    When some important files are frequently modifying the Windows Task Scheduler can help to automate theirdefragmentation. Set up scheduled tasks and youll save a lot of your time.

    Examples of commands:

    Defragment Firefox cache

    udefrag "%APPDATA%\Mozilla*"

    Defragment Google Earth cache

    udefrag "%APPDATA%\Google\GoogleEarth*"

    Defragment small files on all non-removable disks

    cmd.exe /C "set UD_SIZELIMIT=100M && udefrag --wait --all-fixed"

    Visit ultradefrag.wikispaces.com for tutorials and more examples.

  • 20 Scheduled Defragmentation

    Generated by Doxygen

  • Chapter 6

    Graphical Interface

    The UltraDefrag GUI consists of a single re-sizable window. View screenshots...

    The Menus

    Action

    Analyze (F5; Enter)

    This analyzes the currently selected disk(s), constantly updates the cluster map and status bar, andgenerates a report.The process locates free space, folders, fragmented, compressed, regular and system files.

    Defragment (F6)

    This defragments the currently selected disk(s), constantly updates the cluster map and status bar, andgenerates a report.The process moves fragmented files to free space to concatenate them.

    Quick optimization (F7)

    This optimizes the currently selected disk(s), constantly updates the cluster map and status bar, andgenerates a report.The process moves fragmented files to the back of the disk to free space at the front and moves themback to the front to concatenate them.

  • 22 Graphical Interface

    Full optimization (Ctrl+F7)

    This optimizes the currently selected disk(s), constantly updates the cluster map and status bar, andgenerates a report.The process moves fragmented and regular files to the back of the disk to free space at the front andmoves them back to the front to concatenate them.

    Optimize MFT (Shift+F7)

    This optimizes the MFT by placing its fragments as close to each other as possible.

    Pause (Space)

    This pauses the currently running process at any stage, currently pending move operations will becompleted to avoid corruption. Selecting it once more will resume the paused process.

    Stop (Ctrl+C)

    This aborts the currently running process at any stage, currently pending move operations will be com-pleted to avoid corruption.

    Repeat action (Shift+R)

    If this is set, the current operation will be repeated multiple times in a row until there is nothing left thatcan be moved. This allows processing as many files as possible.

    Skip removable media (Ctrl+M)

    If this is checked, disks located on removable drives are not included in the disk list.

    Rescan drives (Ctrl+D)

    This updates the disk list to include disks located on removable drives, which have been plugged inafter starting UltraDefrag.

    Repair drives

    This runs CHKDSK against the selected drives to clear the status Disk needs to be repaired if possible.You need to rescan the drives afterwards to update their status.

    Generated by Doxygen

  • 23

    When done

    This allows one to select an action that will be executed after all operations have been performed.The default is None, available actions are: Exit, Standby, Hibernate, Logoff, Reboot and Shutdown.

    Exit (Alt+F4)

    This terminates UltraDefrag.

    Report

    Show report (F8)

    This displays the report generated for the selected disk(s) in a browser window.

    Settings

    Language

    This mainly allows selecting the displayed language.

    The entry View change log opens the page of translation changes at the translation wiki.

    The entry View translation report opens the page with the current translation status at the trans-lation wiki.

    The entry Translations folder opens the folder containing the translation.template and all lan-guage files.

    The entry Submit current translation opens the page of the currently selected translation at thetranslation wiki for editing or a new page to submit it.

    Generated by Doxygen

  • 24 Graphical Interface

    Graphical interface > Font (F9)

    Usually the font must be changed only, if the contents of the disk list are not displayed correctly.

    Graphical interface > Options (F10)

    This will open a text editor window with the script loaded mentioned in the section Configuring below,which allows you to change the look and feel of the window as well as the behaviour of the actions.

    Boot time scan > Enable (F11)

    This enables or disables the boot time processing.(Disabled for portable editions)

    Boot time scan > Script (F12)

    This opens a text editor window with the script loaded mentioned in the chapter Boot Time Defragmen-tation, which allows changing the way the boot time processing behaves.(Disabled for portable editions)

    Reports (Ctrl+R)

    This allows changing the look of the reports.

    Sorting

    This allows selecting the sorting criteria for the optimization.

    The entries Sort by path, Sort by size, Sort by creation time, Sort by last modification timeand Sort by last access time specify the file criteria used for sorting.

    The entries Sort in ascending order and Sort in descending order specify the direction usedfor sorting.

    Help

    Contents (F1)

    This launches the handbook you are currently reading.

    Generated by Doxygen

  • 25

    Best practice (F2)

    This launches the Tips and Tricks chapter of this handbook.

    FAQ (F3)

    This launches the Frequently Asked Questions chapter of this handbook.

    Cluster map legend

    This launches the Cluster Map section of this page.

    Debug

    The entry Open log (Alt+L) opens the current debug log file in a text editor.

    The entry Send bug report opens the bug tracker web page in the browser, which allows you tosubmit a bug report.

    Check for update

    This checks for program updates on demand, this is helpful if automatic update checks are disabled.

    About (F4)

    This opens the about window.

    Preview

    (available only in alpha and beta releases)

    No preview options

    Currently there are no preview options available.

    The Tool-Bar

    It consists of the most frequently used commands for easy access.

    Generated by Doxygen

  • 26 Graphical Interface

    List of Disks

    The top part of the window contains a full list of disks available for defragmentation. Each line of the list contains diskname and type of filesystem, status display, fragmentation percentage, total amount of space, amount of free spaceand, finally, percentage of free space on the disk.

    Fixed drives are marked by , removable drives - by

    Dirty drives are marked by and , run CHKDSK to correct the problem.

    Multiple disks can be selected in the list. In this case UltraDefrag will process them one after the other. The rules for theselection are the same as in Windows Explorer.

    To select all drives you can use Ctrl+A too. Double-clicking a drive will start its analysis.

    Cluster Map

    It represents the disk clusters by little colored squares. The first cluster on disk is the one in the top-left corner of themap. The last cluster on disk is the one in the bottom-right corner of the map. The clusters in between are organized byrows.

    The colors have the following meaning:

    Fragmented Not Fragmented CompressedDirectory Locked (System) MFTFree Space Unused Map Block

    Files and directories

    When there are two different colors assigned to the same item, the darker one marks objects above the sizethreshold, if one is set.

    Note

    Files excluded from processing are never treated as fragmented, because only files affecting system performanceshould get our attention.

    MFT

    Dark magenta represents the master file table (MFT), light magenta - the space reserved for the MFT expansion.

    Unused map blocks

    Since the amount of clusters per map block must be a whole number it can happen that there are unused mapblocks at the end of the cluster map. For example a drive has 3000 clusters and the cluster map has 3020 blocks,this will result in the last 20 map blocks being marked as unused, since it is impossible to display 0,99 clusters perblock.

    Note

    Unused map blocks are not to be confused with free space.

    Free space color

    The default is white as shown in the image above, but this can be changed through the background color setting.

    Generated by Doxygen

  • 27

    When done

    If any of the actions except None is checked, UltraDefrag will automatically perform that action after the job completes.

    Note

    Your system and hardware configuration must support shutdown and power off, otherwise Windows may rebootyour PC or even do nothing. Therefore test this mode before using it at a regular basis.Your system must support the selected suspend mode and it must be turned on. Otherwise Windows will display amessage box containing a brief error description and the system will not be switched into any suspend mode.

    Configuring

    The default font is Courier New, 9.

    GUI options are stored in guiopts.lua file. They have the same meaning as the environment variables accepted by theUltraDefrag command line tool.

    It does make sense to set grid_line_width = 0, if you set map_block_size = 1 to be able to use the whole size of thecluster map.

    This is especially useful, if you have drives of sizes of 500GB and more.

    Generated by Doxygen

  • 28 Graphical Interface

    Generated by Doxygen

  • Chapter 7

    Boot Time Defragmentation

    UltraDefrag also includes a new mode that allows you to run it at boot time in a manner similar to chkdsk. This isknown as a native application. The primary goal of it is defragmentation of locked files. UltraDefrag runs at Win-dows boot before any file locking, so it can defragment almost everything, including page and hibernation files. Viewscreenshots...

    If the boot time defragmenter is enabled, it will run at every boot.

    Note

    You will have a chance to exit immediately, just press any key when the appropriate prompt is displayed. If no keyis pressed during this delay, the boot time script will be executed.

    You can always stop the disk analysis/defragmentation by pressing the Pause/Break key on the keyboard.

    The following restrictions exist for the boot time scans:

    You may not scan encrypted disks. This is because lsass.exe, the component of the operating system that readsencrypted disks, is still not loaded at a time of the native applications execution.

    In Windows Safe Mode the program cannot display text on the boot screen. UltraDefrag checks for boot optionsand returns immediately, if the Safe Mode flag has been found.

    The boot time defragmenter can be enabled/disabled either from the main GUI window or by typing boot-on/boot-offcommands in the command prompt.

    Boot Time Modes

    The boot time defragmenter can be executed in two modes:

    Boot time script

    The boot time script consists of the disk defragmentation commands, ancillary commands and comments. It islocated at %windir%\system32\ud-boot-time.cmd. To edit this file execute boot-config at the command promptor simply click the Boot time script button on the UltraDefrag GUI toolbar.The boot time script simplifies also the use of UltraDefrag on computers running Windows 98. After installingWindows XP as a second operating system, UltraDefrag may be installed too. After adding the shutdown commandto the boot time script you may simply boot the XP system (which requires much less resources at boot time!) andsafely leave your computer. It will be shut down automatically after the job is completed.

  • 30 Boot Time Defragmentation

    To abort the script execution and enter the interactive mode immediately hit ESC at any time during the boot timescript processing.

    Interactive mode

    When the exit command is missing in the boot time script UltraDefrag runs in interactive mode after the last scriptcommand is executed. UltraDefrag displays the following command prompt and waits for the users input:

    Interactive mode:Type help for list of supported commands.

    #

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

    Available Boot Time Commands; or #

    Lines starting with one of these characters are treated as comments.

    @

    Do not show the command line preceded by the at-sign on the screen. By default the command line is displayed onthe screen.

    boot-on

    Turn on the boot time defragmentation to be executed at every boot.

    boot-off

    Turn off the boot time defragmentation. It prevents them from being executed at next reboots. Until you will enablethem manually through UltraDefrag Configuration dialog or boot-on.cmd script.

    call

    Similar to the DOS command. Executes the specified script. If no script is specified, the default boot time script isexecuted.

    echo

    Similar to the DOS command. Display a message, empty line, enable/disable showing the command line on thescreen or display the status of showing the command line.

    exit

    Similar to the DOS command. Break the boot time program execution and return the specified error code or zero.

    help

    Show a list of all available commands.

    hexview

    Display the contents of the specified file in a HEX viewer layout.

    000000C0: 0a 00 3b 00 20 00 46 00 | ; F000000C8: 72 00 61 00 67 00 6d 00 | r a g m000000D0: 65 00 6e 00 74 00 65 00 | e n t e

    Generated by Doxygen

  • 31

    history

    Show a list of all manually entered commands. To cycle through the commands use the up/down arrow/cursor keys.

    man

    List or display available manual pages.

    pause

    Pause the script execution for the specified time interval (in milliseconds, 2147483647 maximum) or till a key ispressed, if no duration is specified. For example, the command pause 1000 will pause execution for one second.

    reboot

    Reboot the computer.

    set

    Similar to the DOS command. List, set and clear environment variables. For further information about the supportedvariables consult the Console Interface page.

    shutdown

    Halt the computer.

    type

    Similar to the DOS command. Display the contents of a file, the default is the boot time script.

    udefrag

    This is the native equivalent of the UltraDefrag command line tool. The following command switches are supported:-l, -la, -a, -o, -q, --quick-optimize, --optimize-mft, --all, --all-fixed, -r, --repeatMultiple drive letters on a single command line are allowed.You can specify absolute paths to process single files or directories. Paths including spaces must be enclosed bydouble quotes ("). To specify multiple paths separate them by spaces.Example:

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

    For further information about the command switches and variables consult the Console Interface page.

    When UltraDefrag encounters the wrong syntax it shows an appropriate message on the screen and continues the scriptexecution.

    Environment variable expansion

    The boot time script and the interactive mode support environment variable expansion. This allows a more flexible scriptto be written by using %SystemDrive% instead of C:. In addition to the regular variables there are two variables, DATEand TIME, that will be set dynamically. Both are formated to be easily used as part of a file name, so a timestamped logfile name can be created.

    DATE

    This will be expanded to the current date in the format YYYY-MM-DD

    echo DATE ... %DATE%

    Generated by Doxygen

  • 32 Boot Time Defragmentation

    Results in the display of:

    DATE ... 2012-02-14

    TIME

    This will be expanded to the current time in the format HH-MM

    echo TIME ... %TIME%

    Results in the display of:

    TIME ... 12-04

    Boot time script example

    The following script is used by default:

    @echo off;--------------------------------------------------------------------; UltraDefrag Boot Time Shell Script;--------------------------------------------------------------------; !!! NOTE: THIS FILE MUST BE SAVED IN UNICODE (UTF-16) ENCODING !!!;--------------------------------------------------------------------

    set UD_IN_FILTER=*windows*;*winnt*;*ntuser*;*pagefile.sys;*hiberfil.sysset UD_EX_FILTER=*temp*;*tmp*;*.zip;*.7z;*.rar;*dllcache*;*ServicePackFiles*

    ; uncomment the following line to create debugging output; set UD_DBGPRINT_LEVEL=DETAILED

    ; 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:

    exit

    The following script utilizes environment variable expansion:

    ;--------------------------------------------------------------------; UltraDefrag Boot Time Shell Script;--------------------------------------------------------------------; !!! NOTE: THIS FILE MUST BE SAVED IN UNICODE (UTF-16) ENCODING !!!;--------------------------------------------------------------------

    set UD_IN_FILTER=*windows*;*winnt*;*ntuser*;*pagefile.sys;*hiberfil.sysset UD_EX_FILTER=*temp*;*tmp*;*.zip;*.7z;*.rar;*dllcache*;*ServicePackFiles*

    ;create a timestamped log fileset UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\Logs\defrag_native_%DATE%_%TIME%.log

    udefrag %SystemDrive%

    exit

    Generated by Doxygen

  • Chapter 8

    File Fragmentation Reports

    Every time you run a disk analysis, defragmentation or optimization, UltraDefrag produces the file fragmentation reportwith a full list of fragmented files located on the disk.

    UltraDefrag saves file fragmentation reports in the LuaReport format. This raw format is used then to generate HTMLand plain text reports from. You can configure the generated report type through the udreportopts.lua file describedbelow.

    UltraDefrag saves all reports to the /reports sub-folder of the programs directory. To open LuaReport click the fraglist_-{drive}.luar file in Explorer or simply click the Report button in the UltraDefrag GUI after the disk processing/analysis jobhas been completed.

    To distinguish between old and new reports, the date and time is included in the header of the report.

    When you are opening the LuaReport a single HTML page or plain text file is generated and opened in your default webbrowser or text editor. It contains the list of fragmented files. The meaning of the columns is described below.

    By default, all files are sorted by number of fragments in descending order. To change the sorting click the columnheading by which to sort the list. The sorting is a slow process (350 lines/sec on 1.8GHz CPU). However, beingimplemented in JavaScript, it is very reliable.

    Note

    Reports never contain files excluded from the processing, because only files affecting system performance shouldget our attention.

    ColumnsFragments

    The number of fragments.

    Filesize

    The size of the file.

    Comment

    [OVR] for files above the size threshold, [DIR] for directories and [CMP] for NTFS compressed files

    Status

    This is the reason the file is still fragmented. The following states are displayed:

  • 34 File Fragmentation Reports

    locked, move failed, invalid (the file system needs to be checked - run CHKDSK {Driveletter} /F /R)If no reason is specified the file simply requires more continuous free space in order to be processed.

    Filename

    This is the full path of the file.

    Configuring

    All options related to file fragmentation reports are contained in the udreportopts.lua file inside the /options sub-folder ofthe programs directory.

    To open this file for editing click its icon in Explorer or simply select Settings => Reports from the UltraDefrag GUImenu.

    The udreportopts.lua file contains parameter-value pairs and comments (they are starting with double dashes). Howeverthis file is a real program written in the Lua programming language.

    The following configuration is used by default:

    --------------------------------------------------------------------------------- Ultra Defragmenter report options (default).-- Save your personal preferences as udreportopts-custom.lua-- to ensure that they will not be overwritten on upgrade.-------------------------------------------------------------------------------

    --------------------------------------------------------------------------------- Set this parameter to zero to disable HTML reports generation.-------------------------------------------------------------------------------produce_html_report = 1

    --------------------------------------------------------------------------------- Set this parameter to 1 to enable generation of plain text reports.-------------------------------------------------------------------------------produce_plain_text_report = 0

    --------------------------------------------------------------------------------- All the following options were primarily designed to achieve better-- compatibility with old web browsers.-------------------------------------------------------------------------------

    --------------------------------------------------------------------------------- Set enable_sorting to zero if your web browser is too old-- and you have error messages about invalid javascript code.-------------------------------------------------------------------------------enable_sorting = 1

    --------------------------------------------------------------------------------- Set this parameter to 1 if you prefer to look at filenames split-- into few short lines. If you prefer to use fullscreen mode of your-- web browser then set this parameter to zero.-------------------------------------------------------------------------------split_long_names = 0

    --------------------------------------------------------------------------------- Set here maximum number of characters per line in filename cells.-------------------------------------------------------------------------------max_chars_per_line = 50

    --------------------------------------------------------------------------------- The web page style can be set through udreport.css style sheet.-------------------------------------------------------------------------------

    Generated by Doxygen

  • 35

    If you have problems editing configuration files, use the Tools > Folder options > File types menu in Explorer toassociate the lua extension with your preferred text editor.

    Generated by Doxygen

  • 36 File Fragmentation Reports

    Generated by Doxygen

  • Chapter 9

    Tips and Tricks

    Performance Considerations

    Initial usage

    Before any disk defragmentation we recommend to disable the Windows paging file. It expands RAM, but works muchslower. So, its removing will take much bigger effect on system performance than the disk defragmentation. If moreRAM is needed than physically installed, setting up additional RAM modules always gives the best result.

    Then, if youd like to keep some files close to the beginning of the disk because of the highest speed of this area,dont ask the disk defragmenter for this job: just repartition the disk and use the first partition to keep the mostfrequently accessed files while the second partition - for backups, videos, music and other stuff tolerant for a bit sloweraccess.

    How frequently to defragment?

    Defragment your system disk only when you notice a system slowdown - approximately on a monthly basis, not fre-quently. Data drives have even less need to be defragmented, especially if they contain primarily music, pictures andvideos.

    Optimization is reasonable when you have free space heavily fragmented on your system disk. To determine whether torun optimizer or not execute the analysis and look at the cluster map. If you see white space heavily scattered aroundthe disk - its time for an optimization. However, it isnt recommended to optimize disks too frequently. Run it once a yearor so since it may take a lot of time.

    And, once again, dont crave to defragment/optimize data files - music/video has no need to be continues on disk, otherdata files have tendency for temporary living on the disk.

    Performance of UltraDefrag from best to worst

    Running at Boot Time

    this is the fastest, since there are no other processes running

    Running in Safe Mode

    here are only a limited number of processes running, which are essential to operate Windows

  • 38 Tips and Tricks

    Running with Anti-virus Software disabled

    read and write operations are not interrupted by the AV process

    Running when the System is fully used

    this is the worst and not recommended at all, since many files are locked by running applications. You should neveruse this to process entire disks.

    Note

    You must disable your virus detection software before using UltraDefrag. Any virus scanner running during thedefragmentation extremely slows down the process.

    Some Anti-virus programs allow to exclude processes from being monitored, if your Anti-virus program supports this,you can use it instead of disabling it completely. You may still encounter slower performance compared to runningUltraDefrag at boot or in safe mode.

    We recommend to exclude as much files as possible from defragmentation - this will dramatically decrease the de-fragmentation time. Temporary files and archives are usually rarely accessed and may be left fragmented without anoticeable system performance degradation.

    Hardware Considerations

    Flash and SSD drives

    The use of disk defragmentation is not recommended on flash memory or solid-state drives (SSD), as itmay reduce the lifespan of the drive. As flash memory does not rely on physical movement to read the drive, randomfile access is much faster than a mechanical hard drive, so defragmentation is not necessary.

    On the other hand, flash drives defragmentation increases their potential for recovery as mentioned in our forum.

    Floppy drives

    Floppy drives defragmentation is not recommended, because it always reduces the lifespan of the floppies.

    Checking the file system

    Freshly used drives can be defragmented immediately; any drive, which has been in use for a long time without mainte-nance, should be checked for consistency first:

    CHKDSK {Drive:} /F /Vthis checks the drive and repairs it if needed

    CHKDSK {Drive:} /R /F /Vthis checks the drive, repairs it and collects lost clusters if needed (takes quite long, but is the safest)

    Parallel processing

    You can process multiple disks simultaneously, but only if they are located on different hard-disks. Processing multipledisks located on the same physical hard-disk will increase processing time significantly.

    Generated by Doxygen

  • 39

    Example:

    Hard-disk 1 contains disks C: and D:

    Hard-disk 2 contains disks G: and H:

    You can start one UltraDefrag session to process disks C: and D: and a second separate session to process disks G:and H:

    This will result in less time needed to process all four disks. If both hard-disks are occupied in a similar way the time willbe reduced to about 50% compared to the time needed for all disks to be processed one after the other.

    Caveats

    Repeated defragmentation

    Highly fragmented disks will have to be defragmented several times until you will see an improvement.

    Prevent the system from endless boot processing

    To prevent the system from a situation where it is not possible to boot into Windows, it is best to turn off boot processingat the top of the boot-time-script. This is done with the boot-off command. The boot processing is still executed, butthe next boot will not cause another run of the boot time interface.

    Cleaning up the USN journal

    Sometimes a fragmented USN journal can prevent UltraDefrag from consolidating free space. In such a case you canremove the USN journal by executing the fsutil command as shown below from an administrative command prompt.It is recommended to recreate the USN journal after the drive has been processed.

    Query USN journal

    Use the command line below to get the current settings of the USN journal of drive C:. Write them down to usethem for recreating the USN journal.

    fsutil usn queryjournal C:

    Delete USN journal

    Use the command line below to delete the USN journal of drive C:.

    fsutil usn deletejournal /n C:

    Create USN journal

    Use the command line below to create the USN journal of drive C:. A reasonable size of the USN journal is 85MBfor each 100GB, the delta should be between 1/8 and 1/4 of the maximum size. The default values are usually32MB maximum size and 4MB delta. The example creates an USN journal of default size.

    fsutil usn createjournal m=33554432 a=4194304 C:

    Generated by Doxygen

  • 40 Tips and Tricks

    Generated by Doxygen

  • Chapter 10

    Frequently Asked Questions

    Installer

    How can I determine which installer to download?

    1. open the Run dialog by hitting [Windows]+R

    2. type cmd.exe /K echo %PROCESSOR_ARCHITECTURE%

    3. hit the OK button

    4. examine the top-left corner of the opened command prompt window

    If it reads x86 you download the i386 installer.

    If it reads AMD64 you download the amd64 installer.

    If it reads IA64 you download the ia64 installer.

    Can I up- or downgrade over an existing installation?

    The installer is written to support up- and downgrading without the need to remove a previous version. In addition,usually it is not needed to reboot.

    Can I specify a custom installation folder?

    Starting with version 5.1.0 it is supported to specify the install location. The installer validates the selected location,since only empty and existing UltraDefrag installation folders are supported.

    How can I check what went wrong with my silent installation?

    Starting with version 5.1.0 a log file is created at %TMP%\UltraDefrag_Install.log.

    General Usage

  • 42 Frequently Asked Questions

    After defragmentation I see my restore points disappeared, what happens?

    This is a normal situation when restore points disappear after an intensive disk processing. Windows limits amount ofdisk space reserved for restore points. When you perform intensive disk processing, Windows tracks changes throughsystem restore, therefore the mentioned limit may be easily exceeded which results in old restore points deletion.

    We would recommend to avoid the use of restore points for serious purposes, because Windows can never guaranteethat some point saved in the past will be available in the next moment. Use backup software instead, Windows alreadyhas such a program and there are also lots of 3-rd party programs of such kind.

    How can I determine the fragmentation percentage of a drive?

    Starting with version 5.1.0 the analysis calculates the fragmentation percentage.

    It is displayed in the Fragmentation column of the drive list of the GUI and when you run the command line tool usingthe -v command line parameter.

    You can run an analysis of a drive from the Explorer context menu too.

    How can I optimize similar to v5.x.x in v6.x.x?

    Starting with version 6.0.0 the optimization no longer ignores filters. In addition there is a new filter added that skips filesof a specified size when running optimization.

    To get a similar behavior of v5 in v6, you need to disable/unset all filters and set the variable UD_OPTIMIZER_FILE_S-IZE_THRESHOLD for the boot time and console interfaces respectively the setting optimizer_file_size_threshold forthe GUI to 15 EB.

    Graphical Interface

    Where can I find a legend of the cluster map colors?

    The colors are described in the Cluster Map section of the Graphical Interface page.

    When will the cluster map become interactive, so Ill be able to know where individual files are located on disk?

    When defragmentation algorithms are quite effective, this is not necessary to know location of individual files - anywayyoull get your drive optimized quite well. Maybe well implement the discussed feature later, but now we prefer toconcentrate our forces on a disk optimization algorithm improvements.

    Why configuration files editing is better than one settings window with tabs?

    It is much easier and reliable to use the standard Notepad application to edit configuration files.

    Why does the progress percentage update irregularly?

    The progress percentage measures disk space, not the number of files. So when few big files are analyzed, the progresswill increase very fast. Conversely, when thousands of small files are analyzed, progress will be relatively slow.

    Generated by Doxygen

  • 43

    Why is the progress exceeding 100%, when processing FAT disks?

    On FAT disks space is immediately released after a file is moved, so it happens, that more files can be fully defrag-mented, than initially calculated.

    Why is the disk name not displayed?

    Explorer replaces an empty disk name by Local Disk or similar, UltraDefrag does not replace an empty disk name withany default.

    Why is only the last report displayed, if I choose to display multiple reports?

    Browsers which do not support tabbed browsing are reusing the same window. This is a limitation of the way a HTMLpage is opened from within Explorer.

    Why are multiple windows opened, if I choose to display multiple reports?

    If your browser supports tabbed browsing open one instance of your default browser before you display the reports. Thiswill open each report in a new tab depending on your browsers configuration.

    Command Line Tool

    How can I process all disks except a few?

    You can use the filter variables to do this. For instance you like to defragment all fixed drives except C and S.

    To achieve this you use set UD_EX_FILTER=C:\;S:\ and execute udefrag --all-fixed.The analysis will be executed for any drive, but defragmentation will be skipped for drive C and S.

    The analysis will not be complete for excluded FAT disks, because the driver does only check the root folder of excludeddisks.

    Boot time processing

    What is the best configuration for boot disks?

    For NTFS it should be sufficient to use quick optimization. For FAT it is highly recommended to convert the boot diskinto NTFS due to performance and security reasons.

    Why are there still some files fragmented?

    Some system configurations are locking files even at boot, which cant be prevented. In some cases the size of thefree space regions is not big enough to hold the entire file, this can be corrected by using quick optimization, whichconsolidates free space.

    Generated by Doxygen

  • 44 Frequently Asked Questions

    Miscellaneous

    How can I disable the boot time defragmenter manually?

    If something goes wrong and the boot-off script does not work properly, remove the defrag_native entry from the followingsystem registry parameter manually:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute

    I have set UD LOG FILE PATH or log file path, but the log file is not created?

    If creating the log file fails for any reason, UltraDefrag tries to create the log file in the temporary folder of the currentuser.

    Only if creating the log file in the temporary fails too, there will be no log file created.

    The default temporary location for the GUI and console edition is: %TMP%\UltraDefrag_Logs\{filename}

    The default temporary location for boot time defrag is: %SystemRoot%\UltraDefrag_Logs\{filename}

    The file name is the one from the specified log file path variable.

    How many differences are between the Ultra Defragmenter and well known MyDefrag (previously JkDefrag)?

    Both programs have similar disk analysis algorithms, but defragmentation is done in different ways. While MyDefragtends to give more control over a files placement, UltraDefrag is designed to be as simple and fast as possible. So, Ultra-Defrag never uses a complex disk optimization strategies, because their use often noticeably increases the processingtime.

    The biggest advantages of UltraDefrag are an ability to defragment system files at boot time, nice graphical interface,handy reports and instant availability of sources licensed under GPL.

    The main disadvantage of both applications (UltraDefrag and MyDefrag) is that they are based on the Windows de-fragmenting interface that has a very ugly implementation. We cannot change this, because it is part of the filesystemdrivers (ntfs.sys, fastfat.sys), which are too complex and not open source to modify or replace them.

    Generated by Doxygen

  • Chapter 11

    Reporting Bugs

    If you have encountered a bug please submit your report via our bug tracker. Additional debugging information isalways much appreciated.

    Collecting debugging information to report problems using the graphical interface

    1. Optionally download the DbgView program.

    2. Optionally download and install Hardcopy as a free utility to easily create and save screenshots.

    (a) You can use the native Windows screen capture capability using the [Alt]+[Print Screen] keyboard shortcutand saving the image with Paint too.

    (b) Starting with Windows 7 the Snipping Tool is shipping with Windows, which is similar to Hardcopy men-tioned above.

    3. Launch UltraDefrag

    (a) Click the wrench icon on the toolbar. This should open a text editor with the settings file loaded.

    (b) Search for the line dbgprint_level = "" and change it to dbgprint_level = "DETAILED".

    (c) Search for the line log_file_path = "" and change it to log_file_path = ".\\Logs\\ultradefrag.log".

    (d) Save the settings file and close the text editor.

    4. Optionally launch the DbgView utility and enable the Capture Win32 option from the Capture menu.

    (a) On Vista and above make sure to run the utility as the Administrator user by right-clicking on it and selectingRun as Administrator.

    5. Launch UltraDefrag and perform the action you have problems with. You may just use the analysis to collectcommon debugging information too.

    6. Select the menu entry Help => Debug => Open log to display the log file in a text editor.

    (a) You can use the "Save as ..." menu entry of the text editor to place the file where you want.

    7. Optionally save the log created by the DbgView utility through the file menu entry Save as ....

    8. Save any screenshot you have created as a PNG image, do not include them in an Office document.

    9. Create a bug report package and attach it to the bug tracker artifact.

    10. Select the menu entry Help => Debug => Send bug report to open the bug tracker web page.

  • 46 Reporting Bugs

    Collecting debugging information to report problems using the console interface

    1. Launch a command prompt. On Vista and above make sure to run as the Administrator user by right-clicking onit and selecting Run as Administrator.

    2. Enter set UD_DBGPRINT_LEVEL=DETAILED and hit return.

    3. Enter set UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\Logs\udefrag.log and hit return.

    4. Execute udefrag with the action you have problems with. You may just use the analysis to collect commondebugging information too.

    5. Open an Explorer window and open the folder %UD_INSTALL_DIR%\Logs where the udefrag.log file is located.

    6. Create a bug report package and attach it to the tracker artifact.

    Collecting debugging information to report problems using the boot time interface

    1. Launch a command prompt, on Vista and above make sure to run as the Administrator user by right-clicking onit and selecting Run as Administrator.

    2. Execute the boot-config utility to open the boot time script in the text editor.

    (a) Add the line set UD_DBGPRINT_LEVEL=DETAILED to the script.

    (b) Add the line set UD_LOG_FILE_PATH=%UD_INSTALL_DIR%\Logs\defrag_native.log to the script.

    (c) Add the line udefrag with the action you have problems with to the script. You may just use the analysis tocollect common debugging information too.

    (d) Save the script and close the text editor.

    3. Execute the boot-on utility to enable boot time processing.

    4. Reboot the system to have the boot time processing executed.

    5. Open an Explorer window and open the folder %UD_INSTALL_DIR%\Logs where the defrag_native.log file islocated.

    6. Create a bug report package and attach it to the tracker artifact.

    Disable debugging

    For the GUI you just have to set dbgprint_level and log_file_path to an empty string.

    For the boot time utility comment out the lines containing the definition of the UD_DBGPRINT_LEVEL and UD_LOG_-FILE_PATH variables by adding a semicolon (;) at the beginning of those lines.

    Creating a compressed archive to submit

    It is best to ZIP your collected files into a single compressed archive, which will reduce the up- and download sizeimmensely. If you do not own a ZIP utility, check out 7-zip. Windows XP and above include the ability to create ZIParchives through the Explorer right-click menu Send To => Compressed Folder.

    Note

    The Sourceforge trackers only allow uploading files of 256KB in size. For bigger files you may use one of the freefile hosting services.

    Generated by Doxygen

  • Chapter 12

    Translation

    UltraDefrag is now using the wxWidgets GUI library, which utilizes the GNU gettext utility for internationalization support.

    The translations are hosted by Transifex, which offers its service for free to open source projects.

    There are two ways of translating UltraDefrag

    Offline translation

    This way is useful if you dont have access to the Internet, you dont want to translate online or the translation is notavailable for selection at the online service.

    Online translation

    This way is useful if you like to work on the latest translation source.

    Currently not all languages are supported by Transifex for online translation

    Kapampangan and Waray-Waray

    Use the offline translation and request the current translation file from the translation maintainer ([email protected])The folder "%UD_INSTALL_DIR%\po" contains the translation resources at the release date.The files are saved as {language code}.po, where the language codes are based on the ISO 639-2Language Code List.

    Chinese (Simplified)

    Use Chinese (China) instead.

    Chinese (Traditional)

    Use Chinese (Taiwan) instead.

    Offline translationPrerequisites

    Download and install PoEdit

  • 48 Translation

    Run PoEdit

    Enter your name and e-mail address under File => Preferences => Personalise => Identity

    Open the translations folder "%UD_INSTALL_DIR%\po" using Settings => Language => Translationsfolder from the UltraDefrag GUI menu.

    Editing an existing translation

    1. Open the file "%UD_INSTALL_DIR%\po\{language code}.po".The language codes are based on the ISO 639-2 Language Code List.

    2. During translation pay attention to the Notes for translators.

    3. Now send the translation file to the translation maintainer ([email protected])

    4. Your changes will be applied to the next release of UltraDefrag.

    Creating a new translation

    1. Use File => New catalogue from POT file and select "%UD_INSTALL_DIR%\po\UltraDefrag.pot" as thetranslation template.

    2. Enter the following information in the catalog properties dialog:

    Project name and version: ultradefrag Language: The language code based on the ISO 639-2 Language Code List.

    Charset: UTF-8 Optionally you can fill in the plural forms.

    3. As the file name use the language code you entered in the language field.

    4. During translation pay attention to the Notes for translators.

    5. Now send the translation file to the translation maintainer ([email protected])

    6. Your changes will be applied to the next release of UltraDefrag.

    Online translation

    1. Visit the UltraDefrag project at Transifex.

    If you are not yet a member of Transifex, register for free as a translator.

    2. Edit an existing translation or submit a new one

    Edit an existing translation

    select the name of the language from the list

    hit the Translate now button

    Submit a new translation

    select Add new translation select the language from the drop down menu

    select the option of how you like to translate

    Upload file allows you to upload an offline translation Translate online allows you to use the online editor

    3. Your changes will be applied to the next release of UltraDefrag.

    Generated by Doxygen

  • Chapter 13

    Credits and License

    Program and Documentation Copyright 2007-2008

    Dmitri Arkhangelski ([email protected])

    Justin Dearing ([email protected])

    Program and Documentation Copyright 2009

    Dmitri Arkhangelski ([email protected])

    Program and Documentation Copyright 2010-2013

    Dmitri Arkhangelski ([email protected])

    Stefan Pendl ([email protected])

    Web Design Copyright 2009, 2011

    Sayem Chaklader ([email protected])

    Translations Copyright 2008-2013

    Albanian - Fitim I. HALILI Arabic - Ahmed Arbaoui

    - Awadh A Al-Ghaamdi- Karam Al-Shorbassi

    Armenian - MrEgho Belarusian - Dmitri Arkhangelski Bengali - Sayem Chaklader Bosanski - Timur Ljubuncic Bulgarian - Dmitri Arkhangelski

    - Georgi Dimov

  • 50 Credits and License

    Burmese (Padauk) - Muhammed Widuya Catalan - Illes Balears

    - Joseph S. B. Maza- TurboHz

    Chinese (Simplified) - muzuiget- HPJ- Tommy He- Elita Alutee- All UltraDefrag Fans

    Chinese (Traditional) - muzuiget- Ryan Ping Chih Ko- rexx- James Bond- Passerby

    Croatian - Denis Jelicic- Dmitri Arkhangelski- Mladen Ivoevic

    Czech - David Hork /Dave MacBlack/- Pavel Kinkor

    Danish - Patrick Paludan-Mller- Jens Erik Graversgaard

    Dutch - Wim Kerstens- Klaas Nekeman- Tom Louwrier

    English (GB) - Andrew Smith English (US) - Dmitri Arkhangelski Estonian - Olav Mgi Farsi - Ali Jafari Filipino (Tagalog) - Joseph S. B. Maza

    - Ezekiel JB Vegiga- Stefan Pendl

    Finnish - jtl- Stefan Pendl

    French - Pascal Crozet- Jrme Blum- Mathieu Van Weersch- Marina Louwrier-Johannsen- Thomas Laroche- William Gathoye

    Galician - Julio Mojn Fuentes Georgian - UGLT.org German - Stefan Geuken

    - Stefan Pendl Greek - Konstantinos Kapoukranidis

    Generated by Doxygen

  • 51

    - Dionisios Klonaris Hebrew - Dmitri Arkhangelski Hindi - Gaurav Chatterjee

    - Utkarsh Ray Hungarian - Nagy Zsolt

    - ron Hegeds- Gellrt Lukcs- Brechler Zsolt

    Icelandic - Stefan Pendl Iloko - Joseph S. B. Maza Indonesian (Bahasa Indonesia) - Taufan Nur Hidayat

    - Djati Satria Indonesian - Imanuel Novian

    - Djati Satria Italian - Paolo Loggia

    - Alessandro Visentin- Edoardo Brunetti- Sherpya- Giacomo Margarito

    Japanese - ao3- kako- Masao Kajiwara

    Javanese - Taufan Nur Hidayat Kapampangan - Edwin N. Camaya Korean - Alex Han

    - Inhwan Hwang- 4Li

    Latin - Dmitri Arkhangelski Latvian - Sevelyr

    - Vladislav Stuznev- Raitis Nugumanovs

    Lithuanian - Eugenijus Janukevicius- Laurynas

    Macedonian - Dmitri Arkhangelski Norwegian - Sveinung Heggen

    - Stefan Pendl Polish - Andrzej Rudnik

    - Krzysztof Swiderski- Ireneusz Chorosz- Mateusz Kacprzak

    Portuguese (BR) - Depeo da Masol- Felipe

    Portuguese - Ricardo A. Garcia- Carlos Rodrigues

    Generated by Doxygen

  • 52 Credits and License

    - Srgio Marques Romanian - Micu (BeBe) Dumitru Russian - Dmitri Arkhangelski

    - Raitis Nugumanovs Serbian - Damjan Daljevic

    - Dmitri Arkhangelski Slovak - Milan Cerovsk Slovenian - Miha Mlakar

    - Dmitri Arkhangelski Spanish (AR) - Daniel Testa Spanish (ES) - Txusti

    - Juan C. Mendez Valledor Spanish (MEX) - Conrad Flyckt

    - Felipe ngel Gonzlez Bez- Joseph S. Maza- Francisco Ortega Olivos

    Swedish - Magnus Rostedt- Per-Eric Jenshagen- Christoffer Ekberg

    Tamil - Vinod V. Thai - Pat Taweewat

    - Thanapon Namjittrong Turkish - Huseyin Kozan

    - Vedat Odabasioglu- Sahin Salincakli- Alper Tiryakioglu

    Ukrainian - Dmitri Arkhangelski Vietnamese - Vietnamize Team

    - DT Wray-Wray - Harvey Fiji

    - Voltaire Oyzon- Joseph S. Maza

    Yiddish - Dmitri Arkhangelski

    Portions Copyright

    UltraDefrag includes portions of the following open source libraries: wxWidgets, Lua, GNU C Library, GNUlibavl. Also UltraDefrag includes portions of ReactOS code.

    Portions Copyright 1998-2005 Julian Smart, Robert Roebling et al

    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library GeneralPublic Licence as published by the Free Software Foundation; either version 2 of the Licence, or (at your option)any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU LibraryGeneral Public Licence for more details.

    You should have received a copy of the GNU Library General Public Licence along with this software, usually in afile named COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,MA 02111-1307 USA.

    Portions Copyright 1994-2007 Lua.org, PUC-Rio

    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associateddocumentation files (the "Software"), to deal in the Software without restriction, including without limitation the

    Generated by Doxygen

  • 53

    rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permitpersons to whom the Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included in all copies or substantial portions of theSoftware.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INC-LUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULARPURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BELIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TO-RT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USEOR OTHER DEALINGS IN THE SOFTWARE.

    Portions Copyright 1989,90,91,92,93,94,96,97 Free Software Foundation, Inc.

    The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU LibraryGeneral Public License as published by the Free Software Foundation; either version 2 of the License, or (at youroption) any later version.

    The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without eventhe implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU LibraryGeneral Public License for more details.

    You should have received a copy of the GNU Library General Public License along with this program. If not, writeto the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

    Portions Copyright 1998, 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.

    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser GeneralPublic License as published by the Free Software Foundation; either version 3 of the License, or (at your option)any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU LesserGeneral Public License for more details.

    You should have received a copy of the GNU Lesser General Public License along with this program; if not, writeto the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

    Portions Copyright 2002 ReactOS Team

    This program is free software; you can redistribute it and/or modify it under the terms of the GNU General PublicLicense as published by the Free Software Foundation; either version 2 of the License, or (at your option) anylater version.

    This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU GeneralPublic License for more details.

    You should have received a copy of the GNU General Public License along with this program; if not, write to theFree Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

    UltraDefrag GUI includes icons made by third-party persons/organizations.

    The glass icon has been copied from NSIS compilers frontend.

    Portions Copyright 2002 Robert Rainwater [email protected]

    This software is provided as-is, without any express or implied warranty. In no event will the authors be heldliable for any damages arising from the use of this software.

    Permission is granted to anyone to use this software for any purpose, including commercial applications, and toalter it and redistribute it freely, subject to the following restrictions:

    Generated by Doxygen

  • 54 Credits and License

    1. The origin of this software must not be misrepresented; you must not claim that you wrote the originalsoftware. If you use this software in a product, an acknowledgment in the product documentation would beappreciated but is not required.

    2. Altered source versions must be plainly marked as such, and must not be misrepresented as being theoriginal software.

    3. This notice may not be removed or altered from any source distribution.

    Table and stop icons have been copied from FamFamFam Silk icon set.

    Portions Copyright 2006 Mark James

    This work is licensed under a Creative Commons Attribution 2.5 License.

    The icons can also be used under Creative Commons Attribution 3.0 License with the followingrequirements:

    As an author, I would appreciate a reference to my authorship of the Silk icon set contents within a readme file orequivalent documentation for the software which includes the set or a subset of the icons contained within.

    The repeat icon has been copied from Default Icon set.

    Portions Copyright 2011 interactivemania

    Default Icon by interactivemania is licensed under a Creative Commons Attribution-No DerivativeWorks 3.0.

    Lua and Lua Report icons are based on artwork by Alexandre Nakonechnyj.

    Portions Copyright 1998 Lua.org. Graphic design by Alexandre Nakonechnyj.

    Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, anddistribute this logo for any purpose, including commercial applications, subject to the following conditions:

    The origin of this logo must not be misrepresented; you must not claim that you drew the original logo.

    The only modification you can make is to adapt the orbiting text to your product name.

    The logo can be used in any scale as long as the relative proportions of its elements are maintained.

    Taskbar overlay icon is based on Fugue icon set. Pause, gear, terminal, script, help, light bulb, star; large stop iconshave been copied from this set too.

    Portions Copyright 2012 Yusuke Kamiyamane

    These icons are licensed under a Creative Commons Attribution 3.0 License.

    Maintainer

    Stefan Pendl ([email protected])

    Chief Architect

    Dmitri Arkhangelski ([email protected])

    Generated by Doxygen

  • 55

    Special thanks for contributions (in alphabetical order):

    Justin Dearing - The initial version of this handbook and other documentation files.UltraDefrag Scheduler .NET application.

    Tiago Filipe Silva - Optimization of web images and udsorting.js script.

    Special thanks for good suggestions (in alphabetical order):

    Alexander Peter Kowalski - Process priority control (not implemented yet). Alexander Vedyakin - Disk type detection improvements.

    More effective defragmenting algorithms. Andrei Maksimov - GUI improvements.

    A lot of other interesting ideas. Brian Gaff - More comfortable GUI design. Bryan Kirk - Better GUI appearance (new list of drives).

    Autodefrag feature (not implemented yet). Christopher Naegel - A partial solution for kernel mode driver loading problem

    on Vista. Craig Oakes - Hint about case mismatch of configuration dialog help

    files.Hint about problem with .lua file open action registration.

    Dario Raparelli - NT 4.0 support. Gan Yau Kuang - Drives repair GUI menu. Jan Loncik - x64 native support. Better default values for filters. Jim Laski - System fonts and visual styles for graphical interface. Joachim Otahal - Disk processing algorithms optimization. Justin Dearing - Boot time defragmentation. Kalle Koseck - Disk analysis speedup. GUI improvements. Kerem Gmrkc - Manifests for Vista User Account Control (UAC). Leland G. Whitlock - Progress bar. More effective defragmenting algorithms. Markus Elfring - Strong error handling. Mike Braca - Reducing drivers memory usage by the new cluster map

    internal representation. Nagy Zsolt - Internationalization support. Installer improvements. Parvez Reza - Various interesting programming tricks. Steve Lawrence - Shutdown when done option. Vasily Smirnov - FAT directories defragmentation algorithm.

    Various important GUI improvements.

    Special thanks for correcting and updating translations (in alphabetical order):

    Alper Tiryakioglu, Antonio Vivace

    Benny Sttz

    Connection

    Dandy Cheung, Daniel Rodrguez, Dmitry Zemskov

    Erwin Dokter, El Fiera

    Fabrizio Marana, Francisco Ortega Olivos, FS

    Giulio Fornasar, Gustavo Rezende

    Haein Jung, Harald Arnesen

    Generated by Doxygen

  • 56 Credits and License

    Jan Iemhoff, JIFF

    Luigi C.

    Denis Jelicic

    Javier Valdivieso, Joseph S. B. Maza, Joseph S. Maza, Jos Carlos Taveira de Souza, Jos Luis Faras

    Ken Choy

    Latino, Leo Smulders

    Massa, Matej Marton

    NetVicious

    Patrick Palm

    Reynald Didier, Robert Jr, Rodrigo Lopes Paitach

    Seph, SMHA, Suranappar.se

    Timo VJ Lhde, Tjeerd van Sas, translucens

    Zirikkanen

    Special thanks for extensive testing (in alphabetical order):

    Andrei Maksimov

    Bear Windows

    Brent Jenkins

    Fred Schall

    Jeff Cubillos

    Kalle Koseck

    Kerem Gmrkc

    Leslie Trenholm

    Markus Elfring

    Nagy Zsolt

    Sachin Kunjikoran

    Stefan Pendl

    Tom Arroyo

    Also special thanks is going to:

    Mark Russinovich

    V. Soldatov

    blume1975

    ReactOS Team

    Generated by Doxygen

  • 57

    NSIS developers

    Markus F.X.J. Oberhumer, Lszl Molnr & John F. Reiser

    MinGW Team

    Alexander A. Telyatnikov

    Mumtaz Zaheer

    Giovanni Di Sirio

    James Brown

    Timo VJ Lhde

    Lokesh Dhakar

    Mark James

    Michael Dunn

    Michael Kaplan

    Special thanks for good music is going to (in chronological order):

    Egor Letov

    Jean Michel Jarre

    Erik Truffaz

    Cradle of Filth

    Iron Maiden

    Jimi Hendrix

    Forseti

    Agalloch

    Also many thanks to all the people who helped us improve UltraDefrag.

    This documentation is licensed under the terms of the GNU Free Documentation License.

    The program is licensed under the terms of the GNU General Public License.

    Generated by Doxygen

  • 58 Credits and License

    Generated by Doxygen

  • Chapter 14

    GNU Free Documentation License

    Version 1.1, March 2000

    Copyright (C) 2000 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

    Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

    0. Preamble

    The purpose of this License is to make a manual, textbook, or other written document "free" in the sense of freedom:to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially ornoncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work,while not being considered responsible for modifications made by others.

    This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in thesame sense. It complements the GNU General Public License, which is a copyleft license designed for free software.

    We have designed this License in order to use it for manuals for free software, because free software needs freedocumentation: a free program should come with manuals providing the same freedoms that the software does. But thisLicense is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whetherit is published as a printed book. We recommend this License principally for works whose purpose is instruction orreference.

    1. Applicability And Definitions

    This License applies to any manual or other work that contains a notice placed by the copyright holder saying it can bedistributed under the terms of this License. The "Document", below, refers to any such manual or work. Any member ofthe public is a licensee, and is addressed as "you".

    A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim,or with modifications and/or translated into another language.

    A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with therelationship of the publishers or authors of the Document to the Documents overall subject (or to related matters) andcontains nothing that could fall directly within that overall subject. (For example, if the Document is in part a textbook ofmathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historicalconnection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political positionregarding them.

    The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sec-tions, in the notice that says that the Document is released under this License.

  • 60 GNU Free Documentation License

    The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in thenotice that says that the Document is released under this License.

    A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specificationis available to the general public, whose contents can be viewed and edited directly and straightforwardly with generictext editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawingeditor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for inputto text formatters. A copy made in an otherwise Transparent file format whose markup has been designed to thwart ordiscourage subsequent modification by readers is not Transparent. A copy that is not "Transparent" is called "Opaque".

    Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTe-X input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML designed forhuman modification. Opaque formats include PostScript, PDF, proprietary formats that can be read a