salvage(8) System Manager's Manual salvage(8)
NAME
salvage - Recover file data from damaged AdvFS file domains
SYNOPSIS
/sbin/advfs/salvage [-x | -p] [-l] [-S] [-v number] [-d time] [-D directory] [-L path] [-o option] [-F format[-f [archive]]] {-V special
[-V special]... | domain} [fileset[path]]
OPTIONS
Specifies that the utility attempt to recover only those files that have been modified after the time. Specify the time as a decimal num-
ber in the following format: [[CC]YY]MMDDhhmm[.SS]
The paired decimal numbers in the format represent the following:
CC The first two digits of the year (the century)
YY The second two digits of the year (00-99)
MM The month of the year (01-12)
DD The day of the month (00-31)
hh The hour of the day (00-23)
mm The minute of the hour (00-59)
SS The second of the minute (00-61)
Both CC and YY are optional. If neither is specified, the curent year is the default. If YY is specified but CC is not, CC is
derived as follows: If YY is 69-99, CC is 19; if YY is 00-68, CC is 20.
The range for SS is 00-61 rather than 00-59 because of leap seconds. If SS is 60 or 61 and the resulting time (as affected by the
TZ environment variable) does not refer to a leap second, the resulting time is one or two seconds after a time where SS is 59. SS
is not a given value; it is assumed to be 0 (zero). Specifies the path of the directory to which all recovered files are written.
If you do not specify a directory, the utility writes recovered files to the current working directory. Specifies verbose mode for
messages written to the log file. If you specify this option, the utility writes a message to the log file for every file that is
encountered during the recovery. The message contains the file name and file status. You specify the path of the log file by using
the -L option.
If you do not specify this option, the utility writes a message to the log file only for partially-recovered and unrecovered files.
Specifies the path of the directory or the file name for the log file you choose to contain messages logged by the utility.
When your path specification includes a log file name, the utility uses that name for the log file.
When your path specification does not include a log file name, the utility places the log file in that directory and names it sal-
vage.log.pid, where pid is the process id of the user process.
When you do not specify this option, the utility places the log file in the current working directory and names it salvage.log.pid.
Specifies the action the utility takes when a file being recovered already exists in the directory to which it is to be written.
The values for option are: Overwrite the existing file without querying the user. This is the default action when option is not
specified. Do not overwrite the existing file. Ask the user whether to overwrite the existing file.
If you do not specify this option, the default action is to overwrite an existing file without querying the user. Specifies that
the utility identifies a partially-recovered file by appending to its file name. If you do not use this option, no file name exten-
sions are added to partially-recovered files.
Do not use the -p option with the -x option. If you do, an error message is displayed and the utility exits with an exit value of
2. Specifies that the utility is to run in sequential search mode, checking each page on each volume in the domain. This mode of
operation will take a long time on large AdvFS file domains.
The -S option can be used to recover most files from a domain which has been damaged from an incorrect execution of the mkfdmn util-
ity. In some cases, the recovery will need to generate names based on the file's tag number. These cases usually happen in the
root directory, because mkfdmn usually overwrites this directory.
When you specify the -S option, there may be a security issue, because the utility could recover old filesets and deleted files.
Specifies that salvage should recover files in an archive format instead of directly to a filesystem. The only legitimate value for
format is tar. The salvage command uses the next argument as the name of the archive, or /dev/tape/tape0_d1 if archive is not spec-
ified. If the name of the file is - (dash), salvage writes to standard output. Specifies the type of messages directed to stdout.
If you do not specify this option, the default is to direct only error messages to stdout. If you specify n to be 1, both errors
and the names of partially-recovered files are directed to stdout. If you specify n to be 2, error messages and the status of all
files as they are recovered are directed to stdout. Specifies the block device special file names of volumes in the domain, for
example, /dev/disk/dsk3c. The utility attempts to recover files only from the volumes you specify.
If you do not specify the -V option, you must specify the domain operand so that the utility can obtain the special file names of
the volumes in the domain from the /etc/fdmns directory.
Do not use this option with the domain operand. If you do, an error message is displayed and the utility exits with an exit value
of 2. Specifies that partially-recoverable files are not to be recovered. If you do not use this option, partially-recoverable
files are recovered.
Do not use the -x option with the -p option. If you do, the utility displays an error message and exits with an exit value of 2.
OPERANDS
Specifies the name of an existing AdvFS file domain from which filesets are to be recovered. Use this parameter when you want the utility
to obtain volume information from the /etc/fdmns directory. The volume information used by the utility consists of the device special file
names of the AdvFS volumes in the file domain. When the domain operand is specified without optional arguments, the utility attempts to
recover the files in all filesets in the domain.
Do not use this operand when you want to use the -V special option to specify device special file names of AdvFS volumes. If you
do, the utility displays an error message and exits with an exit value of 2. Specifies the name of a fileset to be recovered from a
domain or a volume.
Specify path to indicate the path of a directory or file in a fileset. When you specify a path that is a directory, the utility
attempts to recover only the files in that directory tree, starting at the specified directory. When you specify a path that is a
file, the utility attempts to recover only that file.
Specify path relative to the mount point of the fileset.
DESCRIPTION
The salvage utility helps you recover file data after an AdvFS file domain has become unmountable due to some type of data corruption.
Errors that could cause data corruption of a file domain include I/O errors in file system metadata, the accidental removal of a volume, or
any I/O error that produces a panic.
Use the salvage utility as a last resort. You should first repair domain structures by using the verify utility. If that repair method is
unsatisfactory, attempt to recover fileset data from backup media. Only if both methods are unsatisfactory should you employ the salvage
utility.
Space Needed By salvage
As the utility recovers files, it writes temporary files to a subdirectory of the recovery directory, and uses these files to process the
on-disk structures it is reading. The utility deletes these temporary files when it exits.
Format of Log File Messages
The following are log file message formats: The general format is:
fileset/file : uid : gid : size : bytes recovered : type : file status...
For example, for a regular file:
user_fs/data.file : 3500 : 15 : 56116 : 56116 : REG : file successfully recovered
For example, for a directory:
user_fs/data/ : 3500 : 15 : 8192 : 8192 : DIR : file successfully recovered
For a file and a directory, when its name cannot be found:
user_fs/data.file.lost+found/tag_12345 : 0 : 10 : 24576 : 24576 : REG : filename not recovered
user_fs/data/lost+found/tag_54321/ : 0 : 10 : 8192 : 8192 : DIR : directory not recovered
For a file, when the ending fragment cannot be found:
user_fs/data.file : 3500: 15 : 56116 : 55092 : REG : file truncated by
1024 bytes
For a file, when not all the file's pages can be recovered:
user_fs/data.file : 3500 : 15 : 1646592 : 24576 : REG : Incomplete file,
hole between bytes MMMMM and NNNNN, bytes XXXXX and YYYYY
For a file, when it has an entry in a directory but cannot be found on disk:
user_fs/data.file : 3500 : 15 : 56116 : 0 : REG : Unable to locate file
NOTES
The salvage utility opens and reads block devices directly and could present a security issue if it recovers data remaining from previous
AdvFS file domains while attempting to recover data from current AdvFS file domains.
The salvage utility can be run in single-user mode, without mounting other file systems. The salvage utility is available from the UNIX
Shell option when you are booting from the Tru64 UNIX Operating System Volume 1 CD-ROM.
The salvage utility can find metadata on disk that appears valid but might not be: in most cases, the utility can determine when this sus-
pect metadata should be used or ignored. One of these problems that the utility cannot detect is the situation when the metadata contains
a tag number that could be valid on a very large fileset, but is invalid for common filesets. In this case, the utility creates a partial
file in the lost+found directory.
The salvage utility has a builtin soft limit on the number of valid tags in a fileset: 10,000,000 tags. If an application should exceed
this soft limit, the user is prompted about increasing the limit. For example: salvage: Current soft-limit on tag array 10000000; increase
size to 538977250?
If you answer y to the prompt, the soft limit is increased to the new value. If you answer n to the prompt, the hard limit is set to the
new value and you will not be prompted for tabs larger than this new limit.
If increasing this limit causes a memory error, rerun the utility without increasing the limit.
RESTRICTIONS
You must be the root user to use the salvage utility.
Before using the salvage utility, all filesets in the domain you are trying to recover probably have been already unmounted. However, use
the umount(8) command to ensure that the filesets are unmounted. If all filesets are not unmounted, the utility displays an error message
exits with an exit value of 2.
EXIT STATUS
The exit values for the salvage utility are: Success Partial recovery Failure, including command line syntax errors
ERRORS
The salvage utility error diagnostics cause the utility to exit with an exit code of 2. The diagnostics are: salvage: Error - Out of mem-
ory
Explanation:
The utility does not have enough memory
salvage: Error - No such file or directory
Explanation:
The file or directory you specified could not be found on the device specified.
salvage: Error - I/O error
Explanation:
An I/O error occurred during the salvage operation.
salvage: Error - No space left in recovery directory
Explanation:
The directory to which the recovered files are written is full.
EXAMPLES
The following example shows a salvage command that uses all the defaults to recover all files from the AdvFS file domain named user_domain.
Other results include: A log file named salvage.log.pid is written to the fixit directory The files that are recovered from the user_domain
are also written to the fixit directory Partially-recoverable files are recovered. These files are written to the fixit directory. The
extension is not appended to the name of each file. # cd /fixit # /sbin/advfs/salvage -p 9611200000 user_domain The following example
shows a salvage command that uses the -d option to recover all the file in the domain user_domain that have been changed after that date.
# cd /fixit # /sbin/advfs/salvage -d 9611200000 user_domain The following example shows a salvage command that recovers the file data.file,
whether or not it is only partially recoverable, from the fileset user_fileset on the volume mounted as /dev/disk/dsk3c.
The data.file file is written to the recovery directory and logged in the log file only if it was partially recovered. # cd /fixit
# /sbin/advfs/salvage -V /dev/disk/dsk3c user_fileset/data.file The following example shows a salvage command that recovers the file
data.file, only if it is fully-recoverable, from the fileset user_fileset on the domain user_domain.
The data.file file, if it is not recovered, is logged in the log file. Otherwise, it is written to the recovery directory. # cd
/fixit # /sbin/advfs/salvage -x user_domain user_fileset/data.file
FILES
Contains AdvFS file domain names and devices Contains static information about file systems and filesets
SEE ALSO
Commands: umount(8), verify(8), vrestore(8)
Files: fdmns(4)
salvage(8)