__________________________________________________________________ 1 DFU Disk and File Utilities (DFU) is a high performance utility developed to perform routine maintenance and special purpose operations on ODS-2 disk volumes, files and directories. The functionality offered by DFU is not or partly available through other DCL commands or VMS utilities. Minimal support for some ODS-5 file information is provided. DFU has the following functions: _______________________________________________________ Command____________Description_________________________ DEFRAGMENT defragment individual files or an entire disk DELETE delete files by file-id, and delete directory(trees) fast DIRECTORY COMPRESS, DUMP or RECOVER directories, search directories for files with multiple versions, alias files, or empty directories INDEXF analyze, defragment truncate and extend INDEXF.SYS REPORT reports disk fragmentation REVERSION reversions files back to starting at ;1 SEARCH search for files SET set file attributes UNDELETE recover deleted files VERIFY analyze (and repair) the disk ___________________structure___________________________ _______________________________________________________ restrictions DFU has the following restrictions: 1 o DFU cannot handle volume sets with more than 32 disks. o DFU runs on Alpha, IA64, and x86 architectures, OpenVMS V7.3-2 or higher. o DFU handles files names as case-blind. There is no support for case-sensitive filenames. 2 DEFRAG _______________________________________________________ DEFRAG The defrag option is used to defragment a single file or files or an entire volume. _______________________________________________________ FORMAT DEFRAG file1,file2,...,@file3 (/DEVICE=device/BESTTRY) _______________________________________________________ PARAMETERS file Specify a file (or list of files) with a full file specification or a logical name. Also, indirect command file may be used, e.g.: DEFRAG @DEFRAG.COM(/DEVICE=device). Thus, it is possible to generate a list with SEARCH device/OUTPUT=file and use that file as input to the DEFRAG command. The list generated by DFU SEARCH will contain the device name in the file specification. If there is a list of file from another source which does not contain the device name, the /DEVICE qualifier must be used to append the device name to the file. _______________________________________________________ QUALIFIERS /BESTTRY This qualifier directs DFU to create a file using the contiguous-best-try method. Default DFU tries to make a completely contiguous file. On highly fragmented or used disks this may be impossible. /DEVICE=device_name Append the device-name to the filename. 3 DEFRAG /DISK Defragment the specified device rather than a file. The model used is based on a 4-pass strategy: o Pass 1: for any non-contiguous files, attempt to defragment them into existing exactly sized free space (in other words, for a 500 block file, look for a 500 block free space). o Pass 2: for any non-contiguous files, attempt to defragment them into a 'best fit' block of free space. o Pass 3: consolidate free space by moving files out of the largest block of free space into other matching free space blocks. o Pass 4: consolidate free space by moving files out of the largest block of free space into a 'best fit' block of free space. /EXCLUDE /EXCLUDE=([FILE=(fnm[,fnm...]]) /EXCLUDE=(INDEXED | RELATIVE | SEQUENTIAL | DIRECT | SPECIAL | FILE=...) When used with /DISK, allows files to be excluded from defragmentation operations based on organization or file name. Multiple file organizations may be specified. Files may be excluded by wildcarded name/type. Multiple names may be specified. /LBN= Move a single file to the target logical block number. This is faster than having the file system search for a new LBN location. Caution: Use this qualifier only for processing a single file, not a list of files. If there is not enough contiguous free space available at the target LBN, Defrag will fail with a DEVICEFULL error. 4 DEFRAG /MAXSIZE=n Avoid moving files larger than n blocks. Requires /DISK. /PASSES=number Number of iterations for defragmenting with /DISK. Sequentially execute phases 1 through 4 the specified number of passes. Defaults to 1 pass. Requires /DISK. /STATISTICS /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. /UNTIL= Controls whether the defragment operation will be terminated after the specified time. When the time period has been reached, the operation will terminate at the end of the file currently being defragmented (i.e., if the file takes 5 minutes to defragment, and the timer expires after one minute, the current file will complete and no further files will be defragmented). This is similar to how CTRL/C functions. Absolute time includes a specific date or time of day. An absolute date/time has one of the following formats: o dd-mmm-yyyy o hh:mm:ss.cc o dd-mmm-yyyy:hh:mm:ss.cc o "dd-mmm-yyyy hh:mm:ss.cc" o BOOT o LOGIN o TODAY o TOMORROW 5 DEFRAG o YESTERDAY You can omit any of the trailing fields in the date or time. You can omit any of the fields in the middle of the format as long as you specify the punctuation marks, for example, "-mmm-yyyy hh". Delta time is an offset from the current time to a time in the future. Delta time has the following format: o "+[dddd-][hh:mm:ss.cc]" You can truncate delta time after the hour field. You can also omit any of the fields after the hour field format as long as you specify the punctuation marks. Combination time consists of an absolute time value plus or minus a delta time value. Combination time can use either of the following formats: o "[absolute time][+delta time]" o [absolute time][-delta time] You can omit the absolute time value. If you do, the delta time is offset from the current date and time. Whenever a plus sign (+) precedes the delta time value, enclose the entire time specification in quotation marks. /WRITECHECK /WRITECHECK /NOWRITECHECK (default) Performs a write check on the resultant file after the defragment operation. 6 DELETE _______________________________________________________ DELETE The Delete command serves 2 purposes: o Delete files by File-id o Delete complete directories and directory trees very fast Deleting files by file id's (with the /FILE qualifier) can be useful in removing files which are no longer in a directory (e.g. files marked for delete). Deleting a directory (with the /DIRECTORY qualifier) is many times faster than the normal DCL delete command, especially for large directories. The /TREE qualifier can be used to delete a complete directory tree with just one command. The /FILE and /DIRECTORY command cannot be combined. Syntax : DELETE device/FILE=file-id DELETE full-directory-file-name /DIRECTORY(/Qualifiers) _______________________________________________________ QUALIFIERS /DIRECTORY This qualifier directs DFU to delete the complete contents of the specified directory, followed by a delete of the directory file itself. See also the /TREE qualifier. The parameter must specify a full directory file name. Wildcards may be used. Examples : DFU> DELETE mydisk:[000000]gone.dir/DIRECTORY gone.dir will be deleted with its contents. DFU> DELETE/DIRECTORY mydisk:[maindir.subdir]removethis.dir 7 DELETE removethis.dir will be deleted with its contents. /FILE=file-id The full 3 number file-id of the file to be deleted. In combination with the required device parameter this results in a unique file. To avoid possible errors a full file id is required. Example : DFU> DELETE mydisk/FILE=(234,567,1) /KEEP /NOKEEP (default) Used with DELETE/DIRECTORY(/TREE). This qualifier directs DFU to delete the contents of the directory(tree) but to preserve the directory files. /LOG (default) /NOLOG This qualifier is used only with the /DIRECTORY qualifier. Default DFU will report each deleted file. This can be suppressed with /NOLOG. /NOREMOVE /REMOVE (default) This qualifier can only be used with /FILE. Default DFU will also try to remove the file from the parent directory. For lost or marked-for-delete files this is not possible, and the DELETE command will probably fail. The /NOREMOVE qualifier will override the default behavior. /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. /TREE This qualifier is only used in combination with /DIRECTORY. Starting with the specified directory all (sub)directory contents and all (sub)directory files will be deleted. 8 DIRECTORY _______________________________________________________ DIRECTORY The DIRECTORY command provides 7 different functions depending on the qualifiers used. o DIRECTORY/COMPRESS file - Compresses one or more directories o DIRECTORY/DUMP file - Provides a block level dump of a directory o DIRECTORY/REBUILD_MFD device - Recovers a corrupted MFD directory (000000.DIR) o DIRECTORY/RECOVER file - Recovers a corrupted directory o DIRECTORY/ALIAS device - Searches all directories on the device for alias file entries o DIRECTORY/EMPTY device - Searches the disk for empty directories o DIRECTORY/VERSION=n device - Searches all directories on the device for files which have at least n versions o DIRECTORY/FILES=n device - Searches all directories on the device that have at least n file entries Qualifiers /ALIAS, /EMPTY, and /VERSION can be combined in one command. Other combinations of qualifiers are not possible. _______________________________________________________ PARAMETERS file,(@file) The /COMPRESS , /DUMP and /RECOVER qualifier require a directory-file name as a parameter. A logical name or an indirect command file can also be used as a parameter e.g.: DIR/COMPRESS @DIR.COM . Thus, 9 DIRECTORY it is possible to generate a list with SEARCH device/OUTPUT=file and use that file as input to the DIRECTORY command. The list generated by DFU SEARCH will contain the device name in the file specification. If a list of files is used from another source which does not contain the device name, the /DEVICE must be used to append the device name to the file. device The /ALIAS, /EMPTY , /REBUILD_MFD and /VERSION qualifier require a device name as a parameter. _______________________________________________________ QUALIFIERS /ALIAS Scan all directories on a disk for alias files. /COMPRESS Recreates and compresses the directory. Because directories are alphabetically sorted files, deleting and entering files randomly will create 'holes' in directory files. /COMPRESS will remove these holes by rebuilding and truncating the directory. /DEVICE=device-name Append the device name to the directory-file name. Can only be used with /COMPRESS or /DUMP /DUMP Produces a dump of the directory file block by block. This command may be useful for debugging corrupted or suspected directories. /EMPTY Scan the disk for empty directories. /FILES=n Searches all directories on the device that have at least n file entries. 10 DIRECTORY /FILL_FACTOR /FILL_FACTOR=percentage This qualifier is only valid in combination with /COMPRESS. Default behavior for DFU is to compress a directory as tight as possible; this is equivalent to /FILL_FACTOR=100. By choosing a lower fill factor value DFU will leave some free space in each directory block. /FILL_FACTOR may be between 50 and 100 %. Caution : choosing a fill factor value lower than 100% may fail if the directory file is not large enough. In that case DFU will signal an error and advise using a higher fill factor value. /FORMAT /FORMAT=format_string Used with /VERSION and /OUTPUT. Create an output file using the format as described in format_string. The format string MUST contain the !AS directive; DFU fills in the resultant file there. Example : DFU> DIR/VERSION=3/OUT=P.COM/FORMAT="$purge !AS" /OUTPUT /OUTPUT=filename This qualifier redirects the output from DFU to an output file. /REBUILD_MFD Rebuilds the disk's 000000.DIR directory and makes sure the file backlinks to itself. /RECOVER Rebuilds a corrupted directory file. Do not use this command on critical (system)directories! /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. 11 DIRECTORY /TEST This qualifier can be used only in conjunction with /COMPRESS. When /TEST is specified DFU will show the results of a directory compression without actually performing a compress operation. /TRUNCATE /TRUNCATE(=n) This qualifier is only valid in combination with /COMPRESS. After compressing a directory DFU will NOT truncate the empty blocks at the end of the directory, unless /TRUNCATE is specified. A number 'n' may be specified to let DFU truncate no further than 'n' blocks ('n' will be rounded up to a multiple of the disks cluster size). Example: a 60 block directory A.DIR can be compressed to 20 blocks. The results are: o DIR/COMPRESS -> A.DIR size 20/60 blocks o DIR/COMPRESS/TRUNCATE -> A.DIR size 20/20 blocks o DIR/COMPRESS/TRUNCATE=40 -> A.DIR size 20/40 blocks /VERSION /VERSION=n Scan all directories of a given device for files which have at least 'n' versions. 12 EXIT _______________________________________________________ EXIT Leave DFU (return to DCL) 13 HELP _______________________________________________________ HELP Displays this text 14 INDEXF _______________________________________________________ INDEXF The INDEXF command is used to analyze, defragment, truncate or extend the INDEXF.SYS file. The analyze option reports the current fragmentation state, whereas the defragment and extend option allows defragmentation or pre-extending of INDEXF.SYS. Truncate is an option which trims down INDEXF.SYS to the end-of-file size. To perform a defragment truncate or extend operation the disk must be completely dismounted. Defragment truncate and extend require VOLPRO privilege. Defragment truncate and extend can not be done on the system disk. Syntax : INDEXF device/Qualifiers _______________________________________________________ QUALIFIERS /ANALYZE Displays information about the number of fragments in INDEXF.SYS and the largest contiguous free space. If INDEXF.SYS can not be defragmented a "%DFU-W-NOOPT" message will be displayed. /DEFRAG Starts a defragment operation on INDEXF.SYS. The disk must be dismounted cluster-wide before starting a defragment operation. /EXTEND /EXTEND=n (number of blocks) 15 INDEXF Extends INDEXF.SYS with 'n' blocks in 1 new fragment. This is equivalent to 'n' extra file headers. The disk must be dismounted cluste-rwide before starting an extend operation. The 'n' value will be rounded up to be a multiple of the device cluster size. /SHADOW_MEMBER /SHADOW_MEMBER=device: The physical member of the shadowset on which to perform an EXTEND or DEFRAG operation. This qualifier is only required in combination with /DEFRAG and /EXTEND. Example : DFU> INDEXF/DEFRAG DSA0:/SHADOW_ MEMBER=$1$DUA104: /SHOW_POINTERS Displays all mapping pointer information during the analyze phase. /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. /TRUNCATE If possible, the INDEXF.SYS file will be truncated back to the end-of-file size. The disk must be dismounted to perform this operation. 16 REPORT _______________________________________________________ REPORT The report option generates a file and free space report of the disk. Also, a graph table is made which gives a quick overview on the free space distribution of the disk. DFU creates a number of DCL symbols corresponding to the output of the report. _______________________________________________________ FORMAT REPORT device _______________________________________________________ QUALIFIERS /APPEND /APPEND=filename Same as /OUTPUT, but the output will be appended to the file if it already exists. Thus, output from multiple DFU commands can be put in the same output file. If the file does not exist it will be created. /GRAPH /NOGRAPH (default) This qualifier enables the graph output of the free space distribution for the disk. The default behavior is not to display the graph output. /OUTPUT /OUTPUT=filename This qualifier redirects the output from DFU to an output file. /NOBITMAP Skip the bitmap statistics report. /NOFILE Skip the file statistics report. 17 REPORT /NOVOLUME Skip the volume info report. /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. /UNIT /UNIT=BYTES or BLOCKS Report sizes in units of bytes or blocks. The default behavior is to report sizes as block units. /USAGE(=uic or identifier) Generate a diskblock usage report. DFU will report per UIC/Identifier the blocks used/allocated, and the number of file headers used. If diskquota is enabled a third column will be added to the report with the blocks used according to QUOTA.SYS. If an UIC or Identifier is entered then only that UIC will be reported. The diskquota used must satisfy the rule : QUOTA used = blocks allocated + # of file headers. Symbols The following symbols are created. The names should be reasonably self explanatory. The values shown here are examples to demonstrate the expected format. o DFU$AVERAGE_EXTENT_SIZE = "289574" o DFU$AVERAGE_SIZE_PER_FRAGMENT = "1348" o DFU$AVG_FRAGMENTS_PER_FILE = "1.017" o DFU$BLOCKS_MARKED_FOR_DELETE = "502560" o DFU$CLUSTER_SIZE = "80" o DFU$CONTIGUOUS_FILES = "212712" o DFU$DEVICE_NAME = "$1$DGA5:" o DFU$DIRECTORY_FILES = "6484" 18 REPORT o DFU$EMPTY_FILES = "955" o DFU$ERASE_ON_DELETE = "FALSE" o DFU$FILES_MARKED_FOR_DELETE = "37" o DFU$FILES_WITH_ALLOCATION = "212803" o DFU$FILES_WITH_EXTENSION_HEADERS = "193" o DFU$FILE_FRAGMENTATION_INDEX = "0.067" o DFU$FILE_FRAGMENTATION_INDEX_RATING = "excellent" o DFU$FIRST_HEADER_VBN = "429" o DFU$FRAGMENTS = "216378" o DFU$FREEBLOCKS_DRIFT = "6160" o DFU$FREE_BLOCKS = "98744960" o DFU$FREE_HEADERS = "15059" o DFU$FREE_SPACE_FRAGMENTATION_INDEX = "0.000" o DFU$FREE_SPACE_FRAGMENTATION_INDEX_RATING = "excellent" o DFU$HEADERS = "213973" o DFU$HEADER_COUNT = "229052" o DFU$HIGHWATER_MARK = "FALSE" o DFU$LARGEST_DIRECTORY_FILE = "[USERS.FOO]SCA.DIR;1" o DFU$LARGEST_FREE_EXTENT = "21140000" o DFU$MAX_FILES = "439092" o DFU$MOST_FRAGMENTED_FILE = "[USERS.FOO]BAR.LOG;8" o DFU$MOST_FRAGMENTED_FILE_FRAGMENTS = "406" o DFU$PERCENTAGE_FREE = "0.000" o DFU$TOTAL_ALLOCATED_SIZE = "291879840" o DFU$TOTAL_BLOCKS = "390624768" o DFU$TOTAL_FILES = "213758" 19 REPORT o DFU$TOTAL_FILES_ODS2 = "41965" o DFU$TOTAL_FILES_ODS5 = "171793" o DFU$TOTAL_FREE_EXTENTS = "341" o DFU$TOTAL_USED_SIZE = "260158290" o DFU$VOLUME_NAME = "USER " o DFU$VOLUME_OWNER = " " o DFU$VOLUME_SET_NAME = " " 20 REVERSION _______________________________________________________ REVERSION Reversions files back to starting at ;1. _______________________________________________________ FORMAT REVERSION filespec [,filespec] _______________________________________________________ DESCRIPTION The REVERSION command accepts one or more file specifications including wild cards. Reversions files back to starting at ;1. Version numbers are removed from the input file specifications. _______________________________________________________ QUALIFIERS /LOG Controls whether the REVERSION command displays the file specification of each file after the modification is made. 21 SEARCH _______________________________________________________ SEARCH The SEARCH option searches for specific files on a device. Syntax : SEARCH device/Qualifiers _______________________________________________________ QUALIFIERS /ACCESS /ACCESS=keyword(=value) This qualifier is used in combination with 3 possible keywords : BEFORE=date, SINCE=date or NONE. The last access date is used for selecting files. Use SINCE and BEFORE or NONE , but not both. The NONE keyword returns files which don't have a last access date set. Examples : o /ACCESS=BEFORE=date o /ACCESS=(BEFORE=date,SINCE=anotherdate) o /ACCESS=NONE /ACE /ACE=identifier Searches for files containing an ACL list with an ACE for this identifier. /ACTION Performs an action on resultant files. Disallowed with /FULL, /PAGE, /HOME, /SUMMARY, /FORMAT, /OUTPUT, or /APPEND. Actions can be one of: o DELETE Delete each matching file. When specified an implicit reverse sort is performed such that directory file shuffle operations are minimized. 22 SEARCH o COMPRESS Compress directory files. Requires /CHARACTERISTICS=DIRECTORY such that only directory files are located/processed. /ALLOCATED When using the /SIZE qualifier, the default size used for comparison is the actual file size. Use /ALLOCATED to force DFU to use the allocated filesize for comparison. /APPEND /APPEND=filename Same as /OUTPUT, but the output will be appended to the file if it already exists. Thus, output from multiple DFU commands can be put in the same output file. If the file does not exists it will be created. /ATTRIBUTE /ATTRIBUTE=keyword(=value) This qualifier is used in combination with 3 possible keywords : BEFORE=date, SINCE=date or NONE. The last attribute change date is used in for selecting files. Use SINCE and BEFORE or NONE , but not both. The NONE keyword returns files which don't have a last attribute change date set. Examples : o /ATTRIBUTE=BEFORE=date o /ATTRIBUTE=(BEFORE=date,SINCE=anotherdate) o /ATTRIBUTE=NONE /BACKUP /BACKUP=keyword(=value) This qualifier is used in combination with 3 possible keywords : BEFORE=date, SINCE=date or NONE. The backup date is used in for selecting files. Use SINCE and BEFORE or NONE, but not both. The NONE keyword returns files which don't have a backup date recorded. Examples : o /BACKUP=BEFORE=date o /BACKUP=(BEFORE=date,SINCE=anotherdate) 23 SEARCH o /BACKUP=NONE /BAKFID /BAKFID=backlink-file-id Use this qualifier to look for a file with a specific backlink. Only the first part of the file id must be specified, that is, if the File id is (x,y,z) one must specify'x' as the file- id. Use this qualifier to get files from a specific directory. If /BAKFID=0 is used, DFU returns files not belonging to a directory (often temporary files). /CHARACTERISTICS /CHARACTERISTICS=(characteristic,...) This qualifier is used to select files by their characteristics. The possible characteristics are : o BADACL : files marked with a bad ACL list o BADBLOCK : files marked with Bad Blocks o BESTTRY : files marked contiguous-best-try o CONTIGUOUS : files which are contiguous o DIRECTORY : files marked as a directory file o ERASE : erase file before deletion o LOCKED : files with the deaccess lock bit set o MARKED : files marked for deletion o NOBACKUP : files marked as NoBackup o NOCHARGE : files marked as NOCHARGE o NOMOVE : files marked as NOMOVE o SPOOL : spool files o SCRATCH : files marked as scratch files o NOSHELVABLE: files marked a noshelvable 24 SEARCH o ISSHELVED : files which are shelved DFU will use a logical AND to select files, that is if several characteristics are specified DFU will only return files which have all these characteristics set. To overrule this, use the MATCH=OR keyword, e.g.: SEARCH device/CHAR=(DIRECTORY,NOBACKUP,MATCH=OR) /CREATED /CREATED=keyword=value This qualifier is used in combination with 2 possible keywords : BEFORE=date or SINCE=date. The creation date is used in for selecting files. Examples: o /CREATED=BEFORE=date o /CREATED=(BEFORE=date,SINCE=anotherdate) /DENSE When /DENSE is specified, output lines are compressed of multiple whitespace. Intended to move the file size closer to the file name and to reduce the overall output length. Not allowed with /FULL, /HOME or /SUMMARY. /DISPLAY_FIRST=n Use this qualifier to limit the number of output files displayed to the specified value. When used with an implicit or explicit sort, all names are sorted and then the first n are displayed. When there is no implicit or explicit sort, the first n files found are displayed (effectivity in FID order). /EXCLUDE /EXCLUDE=filename Use this qualifier to exclude filenames from the selection. E.g.: /EXCLUDE=*.SYS will force DFU to not select filenames matching *.SYS. 25 SEARCH /EXPIRED /EXPIRED=keyword(=value) This qualifier is used in combination with 3 possible keywords BEFORE=date, SINCE=date or NONE. The expiration date is used in for selecting files. Either use SINCE and BEFORE or NONE , but not both. The NONE keyword returns files which don't have a expiration date recorded. Examples: o /EXPIRED=BEFORE=date o /EXPIRED=(BEFORE=date,SINCE=anotherdate) o /EXPIRED=NONE /FID /FID=file-id Use this qualifier to look for a specific file. Only the first part of the file id must be specified, that is , if the File id is (x,y,z) one must specify'x' as the file-id. If this qualifier is used, DFU does not scan INDEXF.SYS but just looks up the specific file header. Therefore, this qualifier can not be combined with other search qualifiers such as /SIZE or /FILE. /FILE /FILE=filename DFU selects only file names which match the 'filename'. Wildcards may be used, e.g.: /FILE=*.SYS or /FILE=LOGIN.*. /FORMAT /FORMAT=format_string Used with /OUTPUT. Create an output file using the format as described in formatstring. The format string MUST contains the !AS directive; DFU fills in the resultant file there. Example : DFU> SEARCH/FILE=*.TMP/FORMAT="$delete/confirm !AS" /FRAGMENT /FRAGMENT [=option] 26 SEARCH Shows the numbers of headers/fragments of the file. Available options: o /FRAGMENT Don't select files, but show fragmentation info o /FRAGMENT=MINUMUM=fragments DFU selects files with at least 'fragments' fragments o /FRAGMENT=MAXIMUM=fragments DFU selects files with at most 'fragments' fragments Both options can be combined, e.g.: /FRAGMENT=(MIN=4,MAX=10) will select all files with between 4 and 10 fragments. When /SORT is used with /FRAGMENT, output is sorted by file allocation size or fragment count largest to smallest. /SORT with /FRAGMENT accepts either ALLOCATION or FRAGMENTS as a keyword (/SORT=ALLOCATION or /SORT=FRAGMENTS) to adjust the sort field. /FULL Gives a full output for each found file. The output contains directory, filename, File ID, Virtual Block Number within INDEXF.SYS, filesize, owner, creation date, revision date. Note that default is to produce a 'short' output. /HOME Displays information about the home block of the disk. DFU uses the home block to calculate the actual used and free file headers in INDEXF.SYS. /GLOBAL_BUFFER_COUNT The following options exist: o /GLOBAL_BUFFER_COUNT=MINUMUM=buffercount DFU selects files with at least buffercount global buffers 27 SEARCH o /GLOBAL_BUFFER_COUNT=MAXIMUM=blocksize DFU selects files with at most buffercount global buffers. Both options can be combined, e.g. /GLOBAL_BUFFER_ COUNT= (MIN=1000,MAX=10000) will select all files between 1000 and 10000 global buffers set in the file attributes. /IDENT /IDENT=identifier /NOIDENT=identifier DFU Selects files owned by this identifier. Another way is to use the /OWNER=uic qualifier. /IDENT and /UIC can not be used in the same DFU command. Using /NOIDENT causes DFU to search for all files NOT owned by this identifier. /LBN /LBN=logical-block-number The /LBN option is a special qualifier which allows locating a file which contains a specific logical block number. Note that this qualifier cannot be combined with other search qualifiers (such as /FILE=). /LIMIT /LIMIT=(minimum=n,maximum=m) Searches all directory files for a default version limit between 'n' and 'm'. /NAME_TYPE /NAME_TYPE=ODS2 or ISL1 or UCS2 Searches for files with ODS2 (classic VMS), Iso-Latin1 or Unicode name type. This command is only meaningful for ODS5 disks. /NOSEARCH Do not search the volume. This qualifier can only be used with /HOME. It is used to display only the home block info of the device. /NOVOLSET The /NOVOLSET qualifier overrides default Volume set processing by DFU. This is useful e.g. when doing a /LBN search on a specific disk. 28 SEARCH /MODIFIED /MODIFIED=keyword=value This qualifier is used in combination with 2 possible keywords : BEFORE=date or SINCE=date. The revision date is used for selecting files. Examples : o /MODIFIED=BEFORE=date o /MODIFIED=(BEFORE=date,SINCE=anotherdate) /MULTIPLE This qualifier displays files which have extension headers. This gives an indication about possible fragmentation of the disk. Note that these headers can also be a result of large ACL lists. /ORGANIZATION /ORGANIZATION=INDEXED or RELATIVE or SEQUENTIAL or DIRECT This qualifier searches for files with the specified RMS file organization /OUTPUT /OUTPUT=filename This qualifier redirects the output from DFU about all found files to an output file. /OVER_ALLOCATED /OVER_ALLOCATED=n Select files for which the difference between blocks used and allocated is greater than or equal to 'n' blocks. /OWNER /OWNER=uic /NOOWNER=uic Selects all files owned by the specified uic. This qualifier cannot be used in combination with /IDENT. The uic must be specified in a standard [grp,mem] format. Using /NOOWNER causes DFU to search for all files NOT owned by this uic. /PLACED Checks for placed files. 29 SEARCH /RETURN_LIMIT /RETURN_LIMIT=n restricts the number of file names returned to the user. /NORVNFID /[NO]RVNFID=rvn Use this qualifier to look for files with or without a specific RVN FID. If the File id is (x,y,z) one must specify'z' as the RVN. Use this qualifier to get files from a specific volume. /SIZE /SIZE=option The following options exist: o /SIZE=MINUMUM=blocksize DFU selects files at least blocksize blocks in size o /SIZE=MAXIMUM=blocksize DFU selects files at most blocksize blocks in size. Both options can be combined, e.g.: /SIZE=(MIN=1000,MAX=10000) will select all files between 1000 and 10000 blocks in size. /SORT /SORT=ALLOCATION or /SORT=FRAGMENTS when used with /FRAGMENT This qualifier will sort the results of DFU to the output file specified in /OUTPUT. By default, file names are sorted. When /SORT is used with /FRAGMENT, output is sorted by file allocation size or fragment count largest to smallest (). /SORT can not be used with /FULL or /SUMMARY. /SPECIFICATION_MATCH=filename The specified filename matching pattern string (allowing wildcards) is matched against each resultant file specification returned from the search. This can be utilized to further filter a returned specification. Leading and trailing * may be required to match the returned device and file name components. For example: /SPECIFICATION_MATCH=*[SMITH.*.LOGS]* 30 SEARCH /STATISTICS /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. /SUMMARY Gives a summary of the total number of files found, and the number of blocks occupied by these files. /TYPE /TYPE=ODS2 or ODS5 Searches for files with ODS2 or ODS5 file headers. Only useful on ODS5 disks. /UNIT /UNIT=BYTES | BLOCKS /UNIT=BLOCKS (default) Report sizes in units of bytes. The default behavior is to report sizes as block units. /VERSION_NUMBER /VERSION_NUMBER=option Use at least one of the following options: o /VERSION_NUMBER=MINUMUM=file_version DFU selects files whose version number in the file name is at least 'file_version' o /VERSION_NUMBER=MAXIMUM=file_version DFU selects files whose version number in the file name is at most 'file_version' Both options can be combined, e.g.: /VERSION=(MIN=1000,MAX=10000) will select all files with a version_number between 1000 and 10000 inclusive. 31 SET _______________________________________________________ SET Modifies the characteristics of one or more files. It handles all attributes which 'SET FILE' can't handle. _______________________________________________________ FORMAT SET file-spec[,...],@file _______________________________________________________ PARAMETERS file-spec[,...],@file Specifies one or more files to be modified. If two or more files are specified, separate them with commas. A lsit of files may be used by specifying @file. Thus, an output file generated by a DFU SEARCH command can be used to be processed with SET. Wildcard characters are allowed in the file specifications. _______________________________________________________ QUALIFIERS /ACCESS_DATE /ACCESS_DATE=date /NOACCESS_DATE Controls whether a new file access date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. /ATTRIBUTE_DATE /ATTRIBUTE_DATE=date /NOATTRIBUTE_DATE Controls whether a new lats attribute change date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. 32 SET /BACKUP_DATE /BACKUP_DATE=date /NOBACKUP_DATE Controls whether a new backup date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. Use of this qualifier requires ownership of the file or access control. /BADACL /BADACL /NOBADACL Sets or resets the 'BAD ACL' flag in the file header. This enables deletion of a file with a corrupted ACL. /BCK /BCK /NOBCK Clears or sets the file's nobackup bit. (/BCK clears the bit, /NOBCK sets the bit). /BUCKETSIZE /BUCKETSIZE=size Sets a new value for the bucket size in the file header. /CONFIRM /CONFIRM /NOCONFIRM (default) Controls whether a request is issued before each individual SET operation to confirm that the operation should be performed on that file. When the system issues the prompt, issue any of the following responses: YES NO QUIT TRUE FALSE (CTRL/Z) 1 0 ALL /CONTIGUOUS_BEST_TRY /CONTIGUOUS_BEST_TRY /NOCONTIGUOUS_BEST_TRY Sets or resets the 'CONTIGUOUS_BEST_TRY' bit in the file header. /CREATION_DATE /CREATION_DATE=date /NOCREATION_DATE Controls whether a new creation date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. Use of this 33 SET qualifier requires ownership of the file or access control. /DIRECTORY /DIRECTORY /NODIRECTORY Sets or resets the directory attribute of a file. This qualifier allows to set the directory bit of a file which was mistakenly reset by the 'SET FILE/NODIRECTORY' command. If it is done on a non- directory file, then access to that directory will give a 'BADIRECTORY' error. /EBLOCK /EBLOCK[=block] This qualifier will reset the end-of- file mark to the highest block allocated if no block has been specified. Otherwise the end-of-file mark will be set to the specified block. /EBYTE /EBYTE[=byte] This qualifier will set the end-of- file byte mark to the highest byte if it has not been specified. Otherwise, the end-of-file byte mark will be set to the specified byte. /EXPIRATION_DATE /EXPIRATION_DATE=date /NOEXPIRATION_DATE Controls whether an expiration date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. Use of this qualifier requires ownership of the file or access control. /IDENT /IDENT=identifier or UIC Modifies the file-owner. This command can also be used on open files (such as INDEXF.SYS). /IDENT cannot be combined with /OWNER_UIC /IGNORE /IGNORE=INTERLOCK Set the file attributes even if the file is open or locked. 34 SET /LOCKED /LOCKED /NOLOCKED This qualifier will lock a file for future use. Nothing else can then be done with the file, until it is unlocked (which can also be done with the VMS 'UNLOCK' command. /LOG /LOG (default) /NOLOG Controls whether the SET command displays the file specification of each file after the modification is made. /MAXREC /MAXREC=record Sets a new value for the maximum record number in the file header. /NOMOVE /NOMOVE /NONOMOVE Disables or enables the MoveFile attribute. /ORGANIZATION /ORGANIZATION=keyword The following keywords are used as parameters for the ORGANIZATION qualifier: DIRECT, INDEXED, RELATIVE and SEQUENTIAL. This will allow to modify the file organization type in the file header. Of course this won't change the real organization of the file. /OWNER_UIC /OWNER_UIC=uic or identifier Modifies the file-owner. This command can also be used on open files (such as INDEXF.SYS). /OWNER_UIC can not be combined with /IDENT. /RECATTRIBUTES /RECATTRIBUTES=keyword The following keywords are used as parameters for the RECATTRIBUTES qualifier: NONE, FORTRAN, IMPLIED, PRINT and NOSPAN. This will allow to modify the file's record attributes in the file header. NONE, FORTRAN, IMPLIED and PRINT are mutually exclusive, but can be used in combination with NOSPAN. 35 SET When NOSPAN is omitted SPAN is assumed (the default is to allow records to cross block boundaries). /RECSIZE /RECSIZE=size Sets a new value for the record size in the file header. /RECTYPE /RECTYPE=keyword The following keywords are used as parameters for the RECTYPE qualifier: FIXED, STREAM, STREAMCR, STREAMLF, UNDEFINED, VARIABLE and VFC. This will allow to modify the file's record type in the file header. /REVISION_DATE /REVISION_DATE=date /NOREVISION_DATE Controls whether a revision date is assigned to the specified files. Specify the date according to the rules described in Chapter 1 of the VMS DCL Concepts Manual. Absolute date keywords are allowed. Use of this qualifier requires ownership of the file or access control. /RVCOUNT /RVCOUNT=count Sets a new value for the revision count in the file header. /UPDATE /UPDATE /NOUPDATE (default) Normally the file's revision date will be updated after any modification to it. SET however disables this update (otherwise, the REVISION date could not be set). Specify this qualifier if the revision date must be updated. /VERSION_LIMIT /VERSION_LIMIT=limit Change the file's version limit. Can be used with /IGNORE=INTERLOCK to change the version limit of an open file. However: this will only work when the filename specified is the highest existing version of that file (this will be automatic when the version limit is not specified on the command line). The specified version limit must be between 36 SET 0 and 32767. This command has no effect on directory files. /VFCSIZE /VFCSIZE=size Sets a new value for the VFC size in the file header. This value will only be used with the VFC record type. 2 SPAWN Spawns a subprocess. 2 UNDELETE The Undelete command recovers deleted files. It is done as safely as possible. If undelete discovers that the file header or blocks of the deleted file have been reused, the undelete process will stop. The /FILE, /IDENTIFIER or /OWNER qualifier can be used to select specific files. The /LIST qualifier can be used to generate a list of recoverable files without actually undeleting files. If a matching filename is found undelete will ask for a confirmation before undeleting the file. Multiple files can be undeleted with just one UNDELETE command. After a successful undelete the file will be entered in the original directory if possible or in the [SYSLOST] directory. NOTE: The volume (set) will be locked for other users during the undelete command unless the /LIST qualifier is used. Syntax: UNDELETE device/Qualifiers 3 Qualifiers /IDENT=identifier Select file by identifier. This qualifier cannot be used in conjunction with /OWNER. /FILE=filename Select file by filename. Wildcards may be used in the filename. If the /FILE qualifier is omitted DFU will use *.*;* as the filename. /LIST(=output_file) Generate a list of recoverable files. This command will not lock the volume, and will not undelete any file. 37 SET /MARKED Select only files marked for delete. /OWNER=uic Select file by owner uic. This qualifier cannot be used in conjunction with /IDENT. /STATISTICS /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. 2 VERIFY The Verify option provides a function equivalent to ANALYZE/DISK, but many times faster. Verify will report files with invalid backlinks, lost files, and blocks which are allocated by more than 1 file. Also, the BITMAP and QUOTA files are checked. The /FIX qualifier allows some basic repair actions without locking the disk. The /REBUILD qualifier will rebuild INDEXF.SYS, BITMAP.SYS and QUOTA.SYS if necessary. Note that /REBUILD will lock the disk for a short period of time. Syntax : VERIFY device(/OUTPUT=filename/LOCK/FIX/REBUILD) 3 Qualifiers /APPEND /APPEND=filename Same as /OUTPUT, but the output will be appended to the file if it already exists. Thus, output from multiple DFU commands can be put in the same output file. If the file does not exists it will be created. /DIRECTORY_SCAN This optional qualifier directs DFU to make a full directory scan. This allows better detection of some cases of lost files, and detection of some directory corruptions. Use /FIX to repair such errors. Warning: using /DIRECTORY_SCAN can take several minutes 38 SET /FIX /FIX /NOFIX (default) This qualifier repairs the following errors: o Deletes files marked for delete o Moves lost files and directories to [SYSLOST] o Repairs a wrong backlink for VMS$COMMON.DIR (system disk) The /FIX qualifier does not lock the disk! /LOCK /LOCK /NOLOCK (default) Locks the volume for allocation. To get a consistent view of the disk one must stall all allocation changes of the disk. Otherwise VERIFY may report errors which are caused by concurrent disk activity during execution of the VERIFY command. A tradeoff is that the disk is locked for the duration of the VERIFY command. /OUTPUT Redirects the output from verify to a file. /REBUILD /REBUILD /NOREBUILD (default) This qualifier repairs structure errors and mismatches in INDEXF.SYS, BITMAP.SYS and QUOTA.SYS. Note that /REBUILD will temporarily lock the device for other users. /STATISTICS /STATISTICS /NOSTATISTICS (default) Controls whether CPU and I/O consumption of the command are shown. 39 Screen_Management _______________________________________________________ Screen_Management This version of DFU optionally uses Screen Management (SMG) routines to perform output. DFU will automatically select line mode unless the logical DFUSMG is defined and the terminal does not have SMG capabilities, if DFU is executed in a batch job or if the logical DFU$NOSMG is defined. In any of these 3 cases DFU will switch to normal line oriented output. The default is line mode. DFU can be forced to SMG (full display) mode by defining the logical DFU$SMG to any value. DFU can be forced to line mode output by defining the logical DFU$NOSMG to any value. In SMG mode the /PAGE qualifier will present output page by page. This may be handy for some commands which produce a large amount of output (SEARCH, REPORT). In SMG mode the following keys perform special functions (Keys between () are keys on a PC keyboard) : o CTRL/W : Redraws the screen o HELP or PF2 (/) : Invokes the help facility o PF4 (-) : Dumps the screen contents to file DFU_ SCREEN.TXT o PREV_SCREEN (PageUp) : Scrolls the output window back (one screen) o NEXT_SCREEN (PageDown): Scrolls the output window forward (one screen) o INSERTHERE (Insert) : Scrolls the output window back (one line) o REMOVE (Delete) : Scrolls the output window forward (one line) 40 Screen_Management o SELECT (End) : Toggle between 80/132 columns o UP/DOWN : Recall command buffer 41 Author _______________________________________________________ Author The original author of this utility, and contributors include: o T. Dorland o W. Saarloos o J. van der Burg o N. Lastovica 42