Document revision date: 30 March 2001

## OpenVMS System Management Utilities Reference Manual

Previous | Contents | Index

## Chapter 3
Analyze/Disk_Structure Utility

## 3.1 ANALYZE/DISK_STRUCTURE Description

Use the Analyze/Disk_Structure utility (ANALYZE/DISK_STRUCTURE) on a regular basis to check disks for inconsistencies and errors, and to recover lost files. ANALYZE/DISK_STRUCTURE detects problems on On-Disk Structure (ODS) Levels 1, 2, and 5 Files--11 disks; hardware errors, system errors, or user errors can cause these problems.

By using ANALYZE/DISK_STRUCTURE to identify and delete lost files and files marked for deletion, you can reclaim disk space.

ANALYZE/DISK_STRUCTURE performs the verification of a volume or volume set in eight distinct stages. During these stages, ANALYZE/DISK_STRUCTURE collects information used in reporting errors or performing repairs. However, ANALYZE/DISK_STRUCTURE repairs volumes only when you specify the /REPAIR qualifier. For a complete description of each of the eight stages, and an annotated example of an ANALYZE/DISK_STRUCTURE session, refer to Appendix D.

ANALYZE/DISK_STRUCTURE allocates virtual memory to hold copies of the index file and storage bitmaps. With larger bitmaps introduced in OpenVMS Version 7.2, the virtual memory requirements increase correspondingly. To use this utility on volumes with large bitmaps, you might need to increase your page file quota. On OpenVMS VAX systems, you might also need to increase the system parameter VIRTUALPAGECNT.

Virtual memory size requirements for the bitmaps are in VAX pages (or Alpha 512-byte pagelets) per block of bitmap. Note that the size of the index file bitmap in blocks is the maximum number of files divided by 4096. For ANALYZE/DISK_STRUCTURE, this requirement is the sum of the following across the entire volume set:

- 3 times all the storage bitmaps plus the largest bitmap in the volume set
- 117 times the index file bitmaps
- An additional 96 times the index file bitmaps if /USAGE was requested
- Approximately 600 pages additional fixed scratch space

### 3.1.1 Error Reporting and Repair

You can invoke the Analyze/Disk_Structure utility to operate in any of the following three modes:

- Error reporting with no repairs
- Error reporting with repairs
- User-controlled selective repairs

By default, ANALYZE/DISK_STRUCTURE reports errors, but does not make repairs. For example, use the following command to report all errors on device DBA1:

    $ ANALYZE/DISK_STRUCTURE DBA1:

When you issue this command, ANALYZE/DISK_STRUCTURE runs through eight stages of data collection, then, by default, prints a list of all errors and lost files to your terminal. One type of problem that ANALYZE/DISK_STRUCTURE locates is an invalid directory backlink; a backlink is a pointer to the directory in which a file resides. If your disk has a file with an invalid directory backlink, ANALYZE/DISK_STRUCTURE displays the following message and the file specification to which the error applies:

    %VERIFY-I-BACKLINK, incorrect directory back link [SYSEXE]SYSBOOT.EXE;1

To instruct ANALYZE/DISK_STRUCTURE to repair the errors that it detects, use the /REPAIR qualifier. For example, the following command reports and repairs all errors on the DBA1 device:

    $ ANALYZE/DISK_STRUCTURE DBA1:/REPAIR

To select which errors ANALYZE/DISK_STRUCTURE repairs, use both the /REPAIR and /CONFIRM qualifiers:

    $ ANALYZE/DISK_STRUCTURE DBA1:/REPAIR/CONFIRM

When you issue this command, ANALYZE/DISK_STRUCTURE displays a description of each error and prompts you for confirmation before making a repair. For example, the previous command might produce the following messages and prompts:

    %VERIFY-I-BACKLINK, incorrect directory back link [SYS0]SYSMAINT.DIR;1

    Repair this error? (Y or N): Y

    %VERIFY-I-BACKLINK, incorrect directory back link
    [SYSEXE]SYSBOOT.EXE;1]

    Repair this error? (Y or N): N

Consider running ANALYZE/DISK_STRUCTURE twice for each volume. First, invoke the utility to report all errors. Evaluate the errors and decide on an appropriate action. Then invoke the utility again with the /REPAIR qualifier to repair all errors, or with the /REPAIR and /CONFIRM qualifiers to repair selected errors.

For message descriptions, use the online Help Message (MSGHLP) utility or refer to the OpenVMS system messages documentation.

Recovering Lost Files

A lost file is a file that is not linked to a directory. Under normal circumstances, files do not become lost. However, files occasionally become lost because of disk corruption, hardware problems, or user error. For example, in cleaning up files and directories, you might inadvertently delete directories that still point to files. When you delete a directory file (a file with the file type .DIR) without first deleting its subordinate files, the files referred to by that directory become lost files. Though lost, these files remain on the disk and consume space.

When you run ANALYZE/DISK_STRUCTURE specifying the /REPAIR qualifier, the utility places lost files in SYSLOST.DIR.

For example, to report and repair all errors and lost files found on the device DDA0, issue the following command:

    $ ANALYZE/DISK_STRUCTURE/REPAIR/CONFIRM DDA0:

If it discovers lost files on your disk, ANALYZE/DISK_STRUCTURE issues messages similar to those that follow:

    %VERIFY-W-LOSTHEADER, file (16,1,1) []X.X;1
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (17,1,1) []Y.Y;1
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (18,1,1) []Z.Z;1
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (19,1,1) []X.X;2
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (20,1,1) []Y.Y;2
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (21,1,1) []Z.;1
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (22,1,1) []Z.;2
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (23,1,1) LOGIN.COM;163
            not found in a directory
    %VERIFY-W-LOSTHEADER, file (24,1,1) MANYACL.COM;1
            not found in a directory

All lost files in this example are automatically moved to SYSLOST.DIR.

Erasing Old Home Blocks

When you initialize a volume, the initialize operation might not erase old home blocks. These are blocks that were created by previous initialize operations. If a volume that has old home blocks is damaged, you may not be able to recover the volume without erasing the blocks.

You can erase old home blocks manually by using the /HOMEBLOCKS qualifier on the ANALYZE/DISK_STRUCTURE command as follows:

    $ ANALYZE/DISK_STRUCTURE/REPAIR/HOMEBLOCKS

Note that this operation can take up to 30 minutes to complete.

ANALYZE/DISK_STRUCTURE Output

By default, the Analyze/Disk_Structure utility directs all output to your terminal. If you prefer, you can use the /LIST qualifier to generate a file containing the following information for each file on the disk:

- File identification (FID)
- File name
- Owner
- Errors associated with the file

To generate a disk usage accounting file, use the /USAGE qualifier. The first record of the file, called the identification record, contains a summary of disk and volume characteristics. The identification record is followed by a series of summary records; one summary record is created for each file on the disk. A summary record contains the owner, size, and name of the file.

For more information about the disk usage accounting file, see Appendix E.

## 3.2 ANALYZE/DISK_STRUCTURE Usage Summary

> The Analyze/Disk_Structure utility checks the readability and validity of Files--11 Structure Levels 1, 2, and 5 disk volumes, and reports errors and inconsistencies. You can detect most classes of errors by invoking the utility once and using its defaults.

### Format

> ANALYZE/DISK_STRUCTURE device-name:[/qualifier]

### Parameter

> #### device-name

> Specifies the disk volume or volume set to be verified. If you specify a volume set, all volumes of the volume set must be mounted as Files--11 volumes. For information about the Mount utility, refer to the MOUNT documentation in this manual.

Usage Summary Use the following command to invoke the utility:

`ANALYZE/DISK_STRUCTURE device-name: /qualifiers`

To terminate an ANALYZE/DISK_STRUCTURE session, press Ctrl/C or Ctrl/Y while the utility executes. You cannot resume a session by using the DCL command CONTINUE.

By default, ANALYZE/DISK_STRUCTURE directs all output to your terminal. Use the /USAGE or /LIST qualifiers to direct output to a file.

To repair a disk effectively, you must have read, write, and delete access to all files on the disk. To effectively scan a disk (/NOREPAIR), you must have read access to all files on the disk.

For a complete explanation of file access, refer to the OpenVMS Guide to System Security.

You can safely use ANALYZE/DISK_STRUCTURE on a disk that is concurrently being used for other file operations. If you specify /REPAIR, the utility locks the volume before performing any operations; this blocks volume modification. Because other users cannot create, delete, extend, or truncate files, repair operations are unimpeded and the volume is left in a consistent state.

If you specify /NOREPAIR, the volume is not locked; the utility does not attempt to write to the disk. However, if users perform file operations while you run the utility, you may receive error messages that incorrectly indicate file damage. To avoid this problem, Compaq recommends that you run ANALYZE/DISK_STRUCTURE when the disk is in a quiescent state.

## 3.3 ANALYZE/DISK_STRUCTURE Qualifiers

This section describes and provides examples of each ANALYZE/DISK_STRUCTURE qualifier. The following table summarizes the qualifiers.

Qualifier | Description
--- | ---
/CONFIRM | Determines whether ANALYZE/DISK_STRUCTURE prompts you to confirm each repair
/HOMEBLOCKS | Erases damaged home blocks on an initialized volume.
/LIST[=filespec] | Determines whether ANALYZE/DISK_STRUCTURE produces a listing of the index file
/OUTPUT[=filespec] | Specifies the output file to which ANALYZE/DISK_STRUCTURE writes the disk structure errors
/READ_CHECK | Determines whether ANALYZE/DISK_STRUCTURE performs a read check of all allocated blocks on the specified disk
/RECORD_ATTRIBUTES | Determines whether ANALYZE/DISK_STRUCTURE repairs files containing erroneous settings in the record attributes section of their associated file attribute block (FAT)
/REPAIR | Determines whether ANALYZE/DISK_STRUCTURE repairs errors that are detected in the file structure of the specified device
/STATISTICS | Produces statistical information about the volume under verification and creates a file, STATS.DAT, which contains per-volume statistics.
/USAGE[=filespec] | Specifies that a disk usage accounting file should be produced, in addition to the other specified functions of ANALYZE/DISK_STRUCTURE

## /CONFIRM

> Determines whether the Analyze/Disk_Structure utility prompts you to confirm each repair. If you respond with Y or YES, the utility performs the repair. Otherwise, the repair is not performed.

### Format

> /CONFIRM

> /NOCONFIRM

### Description

> You can use the /CONFIRM qualifier only with the /REPAIR qualifier. The default is /NOCONFIRM.

### Example

    $ ANALYZE/DISK_STRUCTURE DBA0:/REPAIR/CONFIRM
    %VERIFY-I-BACKLINK, incorrect directory back link [SYS0]SYSMAINT.DIR;1
    Repair this error? (Y or N): Y
    %VERIFY-I-BACKLINK, incorrect directory back link [SYSEXE]SYSBOOT.EXE;1
    Repair this error? (Y or N): N

> The command in this example causes the Analyze/Disk_Structure utility to prompt you for confirmation before performing the indicated repair operation.

## /HOMEBLOCKS

> Erases home blocks from a volume whose home blocks were not deleted during previous initialization operations.

### Format

> /HOMEBLOCKS

### Description

> You can use the /HOMEBLOCKS qualifier only with the /REPAIR qualifier. The operation can take 30 minutes to complete.

### Example

    $ ANALYZE/DISK_STRUCTURE DBA0:/REPAIR/HOMEBLOCKS

> The command in this example causes the Analyze/Disk_Structure utility to erase home blocks on DBA0.

## /LIST

> Determines whether the Analyze/Disk_Structure utility produces a listing of the index file.

### Format

> /LIST
> [=filespec]

> /NOLIST

### Description

> If you specify /LIST, the utility produces a file that contains a listing of all file identifications (FIDs), file names, and file owners. If you omit the file specification, the default is SYS$OUTPUT. If you include a file specification without a file type, the default type is .LIS. You cannot use wildcard characters in the file specification.

> The default is /NOLIST.

### Example

    $ ANALYZE/DISK_STRUCTURE DLA2:/LIST=INDEX
    $ TYPE INDEX
    Listing of index file on DLA2:
    31-OCT-2000 20:54:42.22

    (00000001,00001,001)  INDEXF.SYS;1
                                  [1,1]
    (00000002,00002,001)  BITMAP.SYS;1
                                  [1,1]
    (00000003,00003,001)  BADBLK.SYS;1
                                  [1,1]
    (00000004,00004,001)  000000.DIR;1
                                  [1,1]
    (00000005,00005,001)  CORIMG.SYS;1
                                  [1,1]
    .
    .
    .
    $

> In this example, ANALYZE/DISK_STRUCTURE did not find errors on the device DLA2. Because the file INDEX was specified without a file type, the system assumes a default file type of .LIS. The subsequent TYPE command displays the contents of the file INDEX.LIS.

## /OUTPUT

> Specifies the output file to which the Analyze/Disk_Structure utility is to write the disk structure errors.

### Format

> /OUTPUT[=filespec]

> /[NO]OUTPUT[=filespec]

### Description

> Specifies the output file for the disk structure errors. If you omit the /OUTPUT file specification, output is directed to SYS$OUTPUT. If /NOOUTPUT is specified, no disk structure errors are displayed. If the /CONFIRM qualifier is specified, output is forced to SYS$OUTPUT regardless of whether this qualifier is used.

## /READ_CHECK

> Determines whether the Analyze/Disk_Structure utility performs a read check of all allocated blocks on the specified disk. When the Analyze/Disk_Structure utility performs a read check, it reads the disk twice; this ensures that it reads the disk correctly. The default is /NOREAD_CHECK.

### Format

> /READ_CHECK

> /NOREAD_CHECK

### Example

    $ ANALYZE/DISK_STRUCTURE DMA1:/READ_CHECK

> The command in this example directs ANALYZE/DISK_STRUCTURE to perform a read check on all allocated blocks on the device DMA1.

## /RECORD_ATTRIBUTES

> Determines whether the Analyze/Disk_Structure utility repairs files containing erroneous settings in the record attributes section of their associated file attribute block (FAT).

### Format

> /RECORD_ATTRIBUTES

### Description

> You can use the /RECORD_ATTRIBUTES qualifier with the /REPAIR qualifier. If attribute repair is enabled during the repair phase, erroneous bits are cleared from a file's record attributes. This action might not correctly set a file's record attributes as it is beyond the scope of this utility to determine their correct values.

> Compaq recommends that system managers not perform an attribute repair; instead, they should notify the owners of the files about the inconsistencies and have the owners reset the files' attributes using the SET FILE/RECORD_ATTRIBUTES=({record-attributes}) command.

### Example

    $ ANALYZE/DISK_SYS$SYSDEVICE:

    %ANALDISK-I-BAD_RECATTR, file (2930,1,1) [USER]ATTRIBUTES.DAT;13
    file record format: Variable
    inconsistent file attributes: Bit 5
    %ANALDISK-I-BAD_RECATTR, file (2931,1,1) [USER]ATTRIBUTES.DAT;14
    file record format: Variable
    inconsistent file attributes: FORTRAN carriage control, Bit 5
    %ANALDISK-I-BAD_RECATTR, file (2932,1,1) [USER]ATTRIBUTES.DAT;15
    file record format: Variable
    inconsistent file attributes: Implied carriage control, Bit 5
    %ANALDISK-I-BAD_RECATTR, file (2933,1,1) [USER]ATTRIBUTES.DAT;16
    file record format: Variable
    inconsistent file attributes: Non-spanned, Bit 5
    %ANALDISK-I-BAD_RECATTR, file (2934,1,1) [USER]ATTRIBUTES.DAT;17
    file record format: Variable
    inconsistent file attributes: FORTRAN carriage control,
    Non-spanned, Bit 5

## /REPAIR

> Determines whether the Analyze/Disk_Structure utility repairs errors that are detected in the file structure of the specified device.

### Format

> /REPAIR

> /NOREPAIR

### Description

> The Analyze/Disk_Structure utility does not perform any repair operation unless you specify the /REPAIR qualifier. The file structure is software write-locked during a repair operation. The default is /NOREPAIR.

### Example

    $ ANALYZE/DISK_STRUCTURE DBA1:/REPAIR

> The command in this example causes ANALYZE/DISK_STRUCTURE to perform a repair on all errors found in the file structure of device DBA1.

## /STATISTICS

> Produces statistical information about the volume under verification and creates a file, STATS.DAT, which contains per-volume statistics.

### Format

> /STATISTICS

### Description

> The following information is placed in the STATS.DAT file:
> - The number of ODS-2 and ODS-5 headers on the volume
> - The number of special headers on ODS-5 volumes
> - The distribution of file name lengths
> - The distribution of extension header chain lengths
> - The distribution of header identification area free space
> - The distribution of header map area and ACL area free space
> - The totals of header space that is in use and header space that is not in use

### Example

    $ ANALYZE/DISK_STRUCTURE MDA2000: /STATISTICS

> The OpenVMS Alpha volume in this example, which is on device MDA2000:, has been converted from ODS-2 to ODS-5 using the SET VOLUME command. The STATS.DAT file created contains the following information:

>     ********** Statistics for volume 001 of 001 **********

>     Volume is ODS level 5.

>     Volume has 00000004 ODS-2 primary headers.
>     Volume has 00000003 ODS-5 primary headers.
>     Volume has 00000000 ODS-5 -1 segnum headers.

>     00000001 filenames of length 009 bytes.
>     00000002 filenames of length 011 bytes.
>     00000001 filenames of length 013 bytes.
>     00000002 filenames of length 015 bytes.
>     00000001 filenames of length 073 bytes.

>     00000007 extension header chains of length 00000.

>     00000001 ODS-2 headers have  071 ident area free bytes.
>     00000001 ODS-2 headers have  073 ident area free bytes.
>     00000001 ODS-2 headers have  075 ident area free bytes.
>     00000001 ODS-2 headers have  077 ident area free bytes.

>     Total ODS-2 ident area free bytes is 00000296.

>     00000001 ODS-5 headers have  001 ident area free bytes.
>     00000001 ODS-5 headers have  029 ident area free bytes.
>     00000001 ODS-5 headers have  033 ident area free bytes.

>     Total ODS-5 ident area free bytes is 00000063.

>     00000001 headers have 277 free bytes in total.
>     00000001 headers have 335 free bytes in total.
>     00000001 headers have 339 free bytes in total.
>     00000001 headers have 377 free bytes in total.
>     00000001 headers have 379 free bytes in total.
>     00000001 headers have 381 free bytes in total.
>     00000001 headers have 383 free bytes in total.

>     Total header area in bytes is   00003584.
>     Total header area free bytes is 00002791.
>     Total header area used bytes is 00000793.

Previous | Next | Contents | Index

| privacy and legal statement |
6048PRO_005.HTML