Purpose
Restores internal consistency to a file system or volume
Synopsis
bos salvage -server <machine name> [-partition <salvage partition>]
[-volume <salvage volume number or volume name>]
[-file <salvage log output file>] [-all] [-showlog]
[-parallel <# of max parallel partition salvaging>]
[-tmpdir <directory to place tmp files>]
[-orphans <ignore | remove | attach>]
[-cell <cell name>]
[-noauth] [-localauth] [-help]
bos sa -se <machine name> [-part <salvage partition>]
[-v <salvage volume number or volume name>]
[-f <salvage log output file>] [-a] [-sh]
[-para <# of max parallel partition salvaging>]
[-t <directory to place tmp files>]
[-o <ignore | remove | attach>]
[-c <cell name>] [-n] [-l] [-h]
Description
The bos salvage command salvages (restores internal consistency to) one or more volumes on the file server machine named by the -server argument. When processing one or more partitions, the command restores consistency to corrupted read/write volumes where possible. For read-only or backup volumes, it inspects only the volume header:
Use the indicated arguments to salvage a specific number of volumes:
During the salvage of an entire machine or partition, the bos status command reports the fs process's auxiliary status as Salvaging file system.
The Salvager always writes a trace to the /usr/afs/logs/SalvageLog file on the file server machine where it runs. To record the trace in another file as well (either in AFS or on the local disk of the machine where the bos salvage command is issued), name the file with the -file argument. To display the trace on the standard output stream as it is written to the /usr/afs/logs/SalvageLog file, include the -showlog flag.
By default, multiple Salvager subprocesses run in parallel: one for each partition up to four, and four subprocesses for four or more partitions. To increase or decrease the number of subprocesses running in parallel, provide a positive integer value for the -parallel argument.
If there is more than one server partition on a physical disk, the Salvager by default salvages them serially to avoid the inefficiency of constantly moving the disk head from one partition to another. However, this strategy is often not ideal if the partitions are configured as logical volumes that span multiple disks. To force the Salvager to salvage logical volumes in parallel, provide the string all as the value for the -parallel argument. Provide a positive integer to specify the number of subprocesses to run in parallel (for example, -parallel 5all for five subprocesses), or omit the integer to run up to four subprocesses, depending on the number of logical volumes being salvaged.
The Salvager creates temporary files as it runs, by default writing them to the partition it is salvaging. The number of files can be quite large, and if the partition is too full to accommodate them, the Salvager terminates without completing the salvage operation (it always removes the temporary files before exiting). Other Salvager subprocesses running at the same time continue until they finish salvaging all other partitions where there is enough disk space for temporary files. To complete the interrupted salvage, reissue the command against the appropriate partitions, adding the -tmpdir argument to redirect the temporary files to a local disk directory that has enough space.
The -orphans argument controls how the Salvager handles orphaned files and directories that it finds on server partitions it is salvaging. An orphaned element is completely inaccessible because it is not referenced by the vnode of any directory that can act as its parent (is higher in the filespace). Orphaned objects occupy space on the server partition, but do not count against the volume's quota.
Cautions
Running this command can result in data loss if the Salvager process can repair corruption only by removing the offending data. Consult the AFS Administration Guide for more information.
Options
/vicepa = vicepa = a = 0 /vicepb = vicepb = b = 1
After /vicepz (for which the index is 25) comes
/vicepaa = vicepaa = aa = 26 /vicepab = vicepab = ab = 27
and so on through
/vicepiv = vicepiv = iv = 255
The BOS Server never starts more Salvager subprocesses than there are partitions, and always starts only one process to salvage a single volume. If this argument is omitted, up to four Salvager subprocesses run in parallel.
_ _ORPHANFILE_ _.index for files
_ _ORPHANDIR_ _.index for directories
where index is a two-digit number that uniquely identifies each object. The orphans are charged against the volume's quota and appear in the output of the ls command issued against the volume's root directory.
Examples
The following command salvages all volumes on the /vicepd partition of the machine db3.abc.com:
% bos salvage -server db3.abc.com -partition /vicepd
The following command salvages the volume with volume ID number 536870988 on partition /vicepb of the machine fs2.abc.com:
% bos salvage -server fs2.abc.com -partition /vicepb -volume 536870988
The following command salvages all volumes on the machine fs4.abc.com. Six Salvager processes run in parallel rather than the default four.
% bos salvage -server fs4.abc.com -all -parallel 6
Privilege Required
The issuer must be listed in the /usr/afs/etc/UserList file on the machine named by the -server argument, or must be logged onto a server machine as the local superuser root if the -localauth flag is included.
Related Information
AFS Administration Guide