<html>
<head>
<meta name="Content-Style" content="text/css">
</head>
<body>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#NOTES">NOTES</a><br>
<a href="#FILES">FILES</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#DIAGNOSTICS">DIAGNOSTICS</a><br>
<a href="#BUGS">BUGS</a><br>
<!-- Creator : groff version 1.15 -->
<!-- CreationDate: Tue Sep 26 23:59:43 2000
-->
<!-- Total number of pages: 5 -->
<!-- Page: 1 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<a name="NAME"></a><h2>NAME</h2><p><font size=3>xfsrestore - XFS filesystem incremental restore utility</p>
<a name="SYNOPSIS"></a><h2>SYNOPSIS</h2><p><font size=3><B>xfsrestore</B> <font size=3>[ <font size=3><B>-a</B> <font size=3>housekeeping ] [ <font size=3><B>-b</B> <font size=3>blocksize ]</p>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="3.6923%">
</td>
<td valign="top" align="left" width="56.7692%">
<p><font size=3>[ <font size=3><B>-c</B> <font size=3>media_change_alert_program ] [ <font size=3><B>-e</B> <font size=3>]<br>
[ <font size=3><B>-f</B> <font size=3>source ... ] [ <font size=3><B>-i</B> <font size=3>] [ <font size=3><B>-m</B> <font size=3>force usage of minimal tape strategy ]<br>
[ <font size=3><B>-n</B> <font size=3>file ] [ <font size=3><B>-o</B> <font size=3>] [ <font size=3><B>-p</B> <font size=3>report_interval ] [ <font size=3><B>-r</B> <font size=3>]<br>
[ <font size=3><B>-s</B> <font size=3>subtree ... ] [ <font size=3><B>-t</B> <font size=3>] [ <font size=3><B>-v</B> <font size=3>verbosity ] [ <font size=3><B>-A</B> <font size=3>] [ <font size=3><B>-D</B> <font size=3>]<br>
[ <font size=3><B>-E</B> <font size=3>] [ <font size=3><B>-F</B> <font size=3>] [ <font size=3><B>-I</B> <font size=3>[ subopt=value ... ] ] [ <font size=3><B>-J</B> <font size=3>] [ <font size=3><B>-L</B> <font size=3>session_label ]<br>
[ <font size=3><B>-O</B> <font size=3>options_file ] [ <font size=3><B>-Q</B> <font size=3>] [ <font size=3><B>-R</B> <font size=3>] [ <font size=3><B>-S</B> <font size=3>session_id ] [ <font size=3><B>-T</B> <font size=3>]<br>
[ <font size=3><B>-Y</B> <font size=3>io_ring_length ] [ <font size=3><B>-</B> <font size=3>] destination</p>
</td>
<td valign="top" align="left" width="39.5385%">
</td>
</tr>
</table>
<br>
<a name="DESCRIPTION"></a><h2>DESCRIPTION</h2><p><font size=3><I>xfsrestore</I> <font size=3>restores filesystems from dumps produced by <font size=3><I>xfsdump</I><font size=3>(8). Two modes of operation are available: sim- ple and cumulative.</p>
<p><font size=3>The default is simple mode. <font size=3><I>xfsrestore</I> <font size=3>populates the specified destination directory, <font size=3><I>destination</I><font size=3>, with the files contained in the dump media.</p>
<p><font size=3>The <font size=3><B>-r</B> <font size=3>option specifies the cumulative mode. Successive invocations of <font size=3><I>xfsrestore</I> <font size=3>are used to apply a chronolog- ically ordered sequence of delta dumps to a base (level 0) dump. The contents of the filesystem at the time each dump was produced is reproduced. This can involve adding, deleting, renaming, linking, and unlinking files and directories.</p>
<p><font size=3>A delta dump is defined as either an incremental dump (<font size=3><I>xfsdump</I> <font size=3><B>-l</B> <font size=3>option with level > 0) or a resumed dump (<font size=3><I>xfs- dump</I> <font size=3><B>-R</B> <font size=3>option). The deltas must be applied in the order they were produced. Each delta applied must have been produced with the previously applied delta as its base.</p>
<p><font size=3><B>-a</B> <font size=3><I>housekeeping<br>
<span style=" text-indent: 0.3000in;"></span></I>Each invocation of <font size=3><I>xfsrestore</I> <font size=3>creates a directory called <font size=3><I>xfsrestorehousekeepingdir</I><font size=3>. This directory is nor-<br>
<span style=" text-indent: 0.3000in;"></span>mally created directly under the <font size=3><I>destination</I> <font size=3>directory. The <font size=3><B>-a</B> <font size=3>option allows the operator to specify an alter-<br>
<span style=" text-indent: 0.3000in;"></span>nate directory, <font size=3><I>housekeeping</I><font size=3>, in which <font size=3><I>xfsrestore</I> <font size=3>creates the <font size=3><I>xfsrestorehousekeeping</I> <font size=3>directory. When per-<br>
<span style=" text-indent: 0.3000in;"></span>forming a cumulative (<font size=3><B>-r</B> <font size=3>option) restore, each successive invocation of <font size=3><I>xfsrestore</I> <font size=3>must specify the same<br>
<span style=" text-indent: 0.3000in;"></span>alternate directory.</p>
<p><font size=3><B>-b</B> <font size=3><I>blocksize<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies the blocksize to be used for the restore. For other drives such as DAT or 8 mm , the same block-<br>
<span style=" text-indent: 0.3000in;"></span>size used for the xfsdump operation must be specified to restore the tape. The default block size is 1Mb.</p>
<p><font size=3><B>-c</B> <font size=3><I>media_change_alert_program<br>
<span style=" text-indent: 0.3000in;"></span></I>Use the specified program to alert the operator when a media change is required. The alert program is typi-<br>
<span style=" text-indent: 0.3000in;"></span>cally a script to send a mail or flash a window to draw the operator's attention.</p>
<p><font size=3><B>-e</B> <font size=3>Prevents <font size=3><I>xfsrestore</I> <font size=3>from overwriting existing files in the <font size=3><I>destination</I> <font size=3>directory.</p>
<p><font size=3><B>-f</B> <font size=3><I>source<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies a source of the dump to be restored. This can be the pathname of a device (such as a tape drive), a<br>
<span style=" text-indent: 0.3000in;"></span>regular file or a remote tape drive (see <font size=3><I>rmt</I><font size=3>(8)). This option must be omitted if the standard input option (a<br>
<span style=" text-indent: 0.3000in;"></span>lone <font size=3><B>-</B> <font size=3>preceding the <font size=3><I>destination</I> <font size=3>specification) is specified.</p>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="2.0000%">
<p><font size=3><B>-i</p>
</B></td>
<td valign="top" align="left" width="2.6154%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Selects interactive operation. Once the on-media directory hierarchy has been read, an interactive dialogue is begun. The operator uses a small set of commands to peruse the directory hierarchy, selecting files and subtrees for extraction. The available commands are given below. Initially nothing is selected, except for those subtrees specified with <font size=3><B>-s</B> <font size=3>command line options.</p>
<p><font size=3><B>ls</B> <font size=3>[<font size=3><I>arg</I><font size=3>] List the entries in the current directory or the specified directory, or the specified non-direc-<br>
<span style=" text-indent: 0.9000in;"></span>tory file entry. Both the entry's original inode number and name are displayed. Entries that<br>
<span style=" text-indent: 0.9000in;"></span>are directories are appended with a `/'. Entries that have been selected for extraction are<br>
<span style=" text-indent: 0.9000in;"></span>prepended with a `*'.</p>
<p><font size=3><B>cd</B> <font size=3>[<font size=3><I>arg</I><font size=3>] Change the current working directory to the specified argument, or to the filesystem root<br>
<span style=" text-indent: 0.9000in;"></span>directory if no argument is specified.</p>
<p><font size=3><B>pwd</B> <font size=3>Print the pathname of the current directory, relative to the filesystem root.</p>
<p><font size=3><B>add</B> <font size=3>[<font size=3><I>arg</I><font size=3>] The current directory or specified file or directory within the current directory is selected for<br>
<span style=" text-indent: 0.9000in;"></span>extraction. If a directory is specified, then it and all its descendents are selected. Entries that<br>
<span style=" text-indent: 0.9000in;"></span>are selected for extraction are prepended with a `*' when they are listed by <font size=3><B>ls</B><font size=3>.</p>
<p><font size=3><B>delete</B> <font size=3>[<font size=3><I>arg</I><font size=3>] The current directory or specified file or directory within the current directory is deselected<br>
<span style=" text-indent: 0.9000in;"></span>for extraction. If a directory is specified, then it and all its descendents are deselected. The</p>
</td>
</tr>
</table>
<br>
<!-- Page: 2 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<table width="100%" rules="none" frame="none" cols="2">
<tr valign="top" align="left">
<td valign="top" align="left" width="18.4615%">
</td>
<td valign="top" align="left" width="81.5385%">
<p><font size=3>most expedient way to extract most of the files from a directory is to select the directory and<br>
then deselect those files that are not needed.</p>
</td>
</tr>
</table>
<table width="100%" rules="none" frame="none" cols="4">
<tr valign="top" align="left">
<td valign="top" align="left" width="4.6154%">
</td>
<td valign="top" align="left" width="6.4615%">
<p><font size=3><B>extract</p>
</B><p><font size=3><B>quit</p>
</B></td>
<td valign="top" align="left" width="7.3846%">
</td>
<td valign="top" align="left" width="81.5385%">
<p><font size=3>Ends the interactive dialogue, and causes all selected subtrees to be restored.</p>
<p><font size=3><I>xfsrestore</I> <font size=3>ends the interactive dialogue and immediately exits, even if there are files or sub-<br>
trees selected for extraction.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="4.6154%">
</td>
<td valign="top" align="left" width="6.4615%">
<p><font size=3><B>help</p>
</B></td>
<td valign="top" align="left" width="7.3846%">
</td>
<td valign="top" align="left" width="81.5385%">
<p><font size=3>List a summary of the available commands.</p>
</td>
</tr>
</table>
<p><font size=3><B>-m</B> <font size=3>Use the minimal tape protocol. This option cannot be used without specifying a blocksize to be used (see <font size=3><B>-b<br>
<span style=" text-indent: 0.3000in;"></span></B>option above).</p>
<p><font size=3><B>-n</B> <font size=3><I>file</p>
</I>
<table width="100%" rules="none" frame="none" cols="2">
<tr valign="top" align="left">
<td valign="top" align="left" width="4.6154%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Allows <font size=3><I>xfsrestore</I> <font size=3>to restore only files newer than <font size=3><I>file</I><font size=3>. The modification time of <font size=3><I>file</I> <font size=3>(i.e., as displayed with the <font size=3><B>ls -l</B> <font size=3>command) is compared to the inode modification time of each file on the source media (i.e., as dis- played with the <font size=3><B>ls -lc</B> <font size=3>command). A file is restored from media only if its inode modification time is greater than or equal to the modification time of <font size=3><I>file</I><font size=3>.</p>
</td>
</tr>
</table>
<p><font size=3><B>-o</B> <font size=3>Restore file and directory owner/group even if not root. When run with an effective user id of root, <font size=3><I>xfsre-<br>
<span style=" text-indent: 0.3000in;"></span>store</I> <font size=3>restores owner and group of each file and directory. When run with any other effective user id it does<br>
<span style=" text-indent: 0.3000in;"></span>not, unless this option is specified.</p>
<p><font size=3><B>-p</B> <font size=3><I>report_interval<br>
<span style=" text-indent: 0.3000in;"></span></I>Causes progress reports to be printed at intervals of <font size=3><I>report_interval</I> <font size=3>seconds. The interval value is approxi-<br>
<span style=" text-indent: 0.3000in;"></span>mate, <font size=3><I>xfsrestore</I> <font size=3>will delay progress reports to avoid undue processing overhead.</p>
<p><font size=3><B>-r</B> <font size=3>Selects the cumulative mode of operation.</p>
<p><font size=3><B>-s</B> <font size=3><I>subtree<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies a subtree to restore. Any number of <font size=3><B>-s</B> <font size=3>options are allowed. The restore is constrained to the<br>
<span style=" text-indent: 0.3000in;"></span>union of all subtrees specified. Each subtree is specified as a pathname relative to the restore <font size=3><I>destination</I><font size=3>. If<br>
<span style=" text-indent: 0.3000in;"></span>a directory is specified, the directory and all files beneath that directory are restored.</p>
<p><font size=3><B>-t</B> <font size=3>Displays the contents of the dump, but does not create or modify any files or directories. It may be desirable<br>
<span style=" text-indent: 0.3000in;"></span>to set the verbosity level to <font size=3><B>silent</B> <font size=3>when using this option.</p>
<p><font size=3><B>-v</B> <font size=3><I>verbosity_level<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies the level of detail of the messages displayed during the course of the restore. The argument can be<br>
<span style=" text-indent: 0.3000in;"></span><B>silent</B><font size=3>, <font size=3><B>verbose</B><font size=3>, or <font size=3><B>trace</B><font size=3>. The default is <font size=3><B>verbose</B><font size=3>.</p>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-A</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Do not restore extended file attributes. If this option is not specified, extended file attributes are restored. Note that dumping of extended file attributes is also optional.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-D</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Restore DMAPI (Data Management Application Programming Interface) event settings. <font size=3><I>xfsdump</I> <font size=3>backs backs up these settings, but it is usually not desirable to restore them. However, the current implementation in Linux does not yet support the <font size=3><B>-D</B> <font size=3>option.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-E</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Prevents <font size=3><I>xfsrestore</I> <font size=3>from overwriting newer versions of files. The inode modification time of the on-media file is compared to the inode modification time of corresponding file in the <font size=3><I>destination</I> <font size=3>directory. The file is restored only if the on-media version is newer than the version in the <font size=3><I>destination</I> <font size=3>directory. The inode modifi- cation time of a file can be displayed with the <font size=3><B>ls -lc</B> <font size=3>command.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-F</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Inhibit interactive operator prompts. This option inhibits <font size=3><I>xfsrestore</I> <font size=3>from prompting the operator for verifica- tion of the selected dump as the restore target and from prompting for any media change.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-I</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Causes the <font size=3><I>xfsdump</I> <font size=3>inventory to be displayed (no restore is performed). Each time <font size=3><I>xfsdump</I> <font size=3>is used, an online inventory in <font size=3><I>/var/xfsdump/inventory</I> <font size=3>is updated. This is used to determine the base for incremental dumps. It is also useful for manually identifying a dump session to be restored (see the <font size=3><B>-L</B> <font size=3>and <font size=3><B>-S</B> <font size=3>options). Suboptions to filter the inventory display are described later.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.9231%">
<p><font size=3><B>-J</p>
</B></td>
<td valign="top" align="left" width="1.6923%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Inhibits inventory update when on-media session inventory encountered during restore. <font size=3><I>xfsrestore</I> <font size=3>oppor- tunistically updates the online inventory when it encounters an on-media session inventory, but only if run with an effective user id of root and only if this option is not given.</p>
</td>
</tr>
</table>
<p><font size=3><B>-L</B> <font size=3><I>session_label<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies the label of the dump session to be restored. The source media is searched for this label. It is any<br>
<span style=" text-indent: 0.3000in;"></span>arbitrary string up to 255 characters long. The label of the desired dump session can be copied from the<br>
<span style=" text-indent: 0.3000in;"></span>inventory display produced by the <font size=3><B>-I</B> <font size=3>option.</p>
<p><font size=3><B>-O</B> <font size=3><I>options_file<br>
<span style=" text-indent: 0.3000in;"></span></I>Insert the options contained in <font size=3><I>options_file</I> <font size=3>into the beginning of the command line. The options are specified<br>
<span style=" text-indent: 0.3000in;"></span>just as they would appear if typed into the command line. In addition, newline characters (\n) can be used as<br>
<span style=" text-indent: 0.3000in;"></span>whitespace. The options are placed before all options actually given on the command line, just after the<br>
</p>
<!-- Page: 3 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><span style=" text-indent: 0.3000in;"></span><font size=3>command name. Only one <font size=3><B>-O</B> <font size=3>option can be used. Recursive use is ignored. The destination directory can-<br>
<span style=" text-indent: 0.3000in;"></span>not be specified in <font size=3><I>options_file</I><font size=3>.</p>
<table width="100%" rules="none" frame="none" cols="3">
<tr valign="top" align="left">
<td valign="top" align="left" width="3.0769%">
<p><font size=3><B>-Q</p>
</B></td>
<td valign="top" align="left" width="1.5385%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Force completion of an interrupted restore session. This option is required to work around one specific pathological scenario. When restoring a dump session which was interrupted due to an EOM condition and no online session inventory is available, <font size=3><I>xfsrestore</I> <font size=3>cannot know when the restore of that dump session is complete. The operator is forced to interrupt the restore session. In that case, if the operator tries to subse- quently apply a resumed dump (using the <font size=3><B>-r</B> <font size=3>option), <font size=3><I>xfsrestore</I> <font size=3>refuses to do so. The operator must tell <font size=3><I>xfs- restore</I> <font size=3>to consider the base restore complete by using this option when applying the resumed dump.</p>
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="3.0769%">
<p><font size=3><B>-R</p>
</B></td>
<td valign="top" align="left" width="1.5385%">
</td>
<td valign="top" align="left" width="95.3846%">
<p><font size=3>Resume a previously interrupted restore. <font size=3><I>xfsrestore</I> <font size=3>can be interrupted at any time by pressing the terminal interrupt character (see <font size=3><I>stty</I><font size=3>(1)). Use this option to resume the restore. The <font size=3><B>-a</B> <font size=3>and <font size=3><I>destination</I> <font size=3>options must be the same.</p>
</td>
</tr>
</table>
<p><font size=3><B>-S</B> <font size=3><I>session_id<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies the session UUID of the dump session to be restored. The source media is searched for this UUID.<br>
<span style=" text-indent: 0.3000in;"></span>The UUID of the desired dump session can be copied from the inventory display produced by the <font size=3><B>-I</B> <font size=3>option.</p>
<p><font size=3><B>-T</B> <font size=3>Inhibits interactive dialogue timeouts. <font size=3><I>xfsrestore</I> <font size=3>prompts the operator for media changes. This dialogue<br>
<span style=" text-indent: 0.3000in;"></span>normally times out if no response is supplied. This option prevents the timeout.</p>
<p><font size=3><B>-X</B> <font size=3><I>subtree<br>
<span style=" text-indent: 0.3000in;"></span></I>Specifies a subtree to exclude. This is the converse of the <font size=3><B>-s</B> <font size=3>option. Any number of <font size=3><B>-X</B> <font size=3>options are<br>
<span style=" text-indent: 0.3000in;"></span>allowed. Each subtree is specified as a pathname relative to the restore <font size=3><I>destination</I><font size=3>. If a directory is speci-<br>
<span style=" text-indent: 0.3000in;"></span>fied, the directory and all files beneath that directory are excluded.</p>
<p><font size=3><B>-Y</B> <font size=3><I>io_ring_length<br>
<span style=" text-indent: 0.3000in;"></span></I>Specify I/O buffer ring length. <font size=3><I>xfsrestore</I> <font size=3>uses a ring of input buffers to achieve maximum throughput when<br>
<span style=" text-indent: 0.3000in;"></span>restoring from tape drives. The default ring length is 3. However, this is only supported when running multi-<br>
<span style=" text-indent: 0.3000in;"></span>threaded which has not been done for Linux yet - making this option benign.</p>
<p><font size=3><B>-</B> <font size=3>A lone <font size=3><B>-</B> <font size=3>causes the standard input to be read as the source of the dump to be restored. Standard input can<br>
<span style=" text-indent: 0.3000in;"></span>be a pipe from another utility (such as <font size=3><I>xfsdump</I><font size=3>(8)) or a redirected file. This option cannot be used with the<br>
<span style=" text-indent: 0.3000in;"></span><B>-f</B> <font size=3>option. The <font size=3><B>-</B> <font size=3>must follow all other options, and precede the <font size=3><I>destination</I> <font size=3>specification.</p>
<p><font size=3>The dumped filesystem is restored into the <font size=3><I>destination</I> <font size=3>directory. There is no default; the <font size=3><I>destination</I> <font size=3>must be specified.</p>
<a name="NOTES"></a><h2>NOTES</h2><p><span style=" text-indent: 0.1800in;"></span><font size=3><B>Cumulative Restoration<br>
<span style=" text-indent: 1.3000in;"></span></B>A base (level 0) dump and an ordered set of delta dumps can be sequentially restored, each<br>
<span style=" text-indent: 1.3000in;"></span>on top of the previous, to reproduce the contents of the original filesystem at the time the<br>
<span style=" text-indent: 1.3000in;"></span>last delta was produced. The operator invokes <font size=3><I>xfsrestore</I> <font size=3>once for each dump. The <font size=3><B>-r<br>
<span style=" text-indent: 1.3000in;"></span></B>option must be specified. The <font size=3><I>destination</I> <font size=3>directory must be the same for all invocations.<br>
<span style=" text-indent: 1.3000in;"></span>Each invocation leaves a directory named <font size=3><I>xfsrestorehousekeeping</I> <font size=3>in the <font size=3><I>destination</I> <font size=3>direc-<br>
<span style=" text-indent: 1.3000in;"></span>tory (however, see the <font size=3><B>-a</B> <font size=3>option above). This directory contains the state information that<br>
<span style=" text-indent: 1.3000in;"></span>must be communicated between invocations. The operator must remove this directory<br>
<span style=" text-indent: 1.3000in;"></span>after the last delta has been applied.</p>
<p><font size=3><I>xfsrestore</I> <font size=3>also generates a directory named <font size=3><I>orphanage</I> <font size=3>in the <font size=3><I>destination</I> <font size=3>directory. <font size=3><I>xfsrestore</I> <font size=3>removes this directory after completing a simple restore. However, if <font size=3><I>orphanage</I> <font size=3>is not empty, it is not removed. This can hap- pen if files present on the dump media are not referenced by any of the restored directories. The <font size=3><I>orphanage</I> <font size=3>has an entry for each such file. The entry name is the file's original inode number, a ".", and the file's generation count modulo 4096 (only the lower 12 bits of the generation count are used).</p>
<p><font size=3><I>xfsrestore</I> <font size=3>does not remove the <font size=3><I>orphanage</I> <font size=3>after cumulative restores. Like the <font size=3><I>xfsrestorehousekeeping</I> <font size=3>directory, the operator must remove it after applying all delta dumps.</p>
<p><span style=" text-indent: 0.1800in;"></span><font size=3><B>Media Management<br>
<span style=" text-indent: 1.3000in;"></span></B>A dump consists of one or more media files contained on one or more media objects. A<br>
<span style=" text-indent: 1.3000in;"></span>media file contains all or a portion of the filesystem dump. Large filesystems are broken up<br>
<span style=" text-indent: 1.3000in;"></span>into multiple media files to minimize the impact of media dropouts, and to accommodate<br>
<span style=" text-indent: 1.3000in;"></span>media object boundaries (end-of-media).</p>
<p><font size=3>A media object is any storage medium: a tape cartridge, a remote tape device (see <font size=3><I>rmt</I><font size=3>(8)), a regular file, or the standard input (currently other removable media drives are not supported). Tape cartridges can contain multiple media files, which are typically separated by (in tape parlance) file marks. If a dump spans multiple media objects, the restore must begin with the media object containing the first media file dumped. The operator is prompted when the next media object is needed.</p>
<p><font size=3>Media objects can contain more than one dump. The operator can select the desired dump by specifying the<br>
</p>
<!-- Page: 4 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><font size=3>dump label (<font size=3><B>-L</B> <font size=3>option), or by specifying the dump UUID (<font size=3><B>-S</B> <font size=3>option). If neither is specified, <font size=3><I>xfsrestore</I> <font size=3>scans the entire media object, prompting the operator as each dump session is encountered.</p>
<p><font size=3>The inventory display (<font size=3><B>-I</B> <font size=3>option) is useful for identifying the media objects required. It is also useful for identifying a dump session. The session UUID can be copied from the inventory display to the <font size=3><B>-S</B> <font size=3>option argument to unam- biguously identify a dump session to be restored.</p>
<p><font size=3>Dumps placed in regular files or the standard output do not span multiple media objects, nor do they contain multi- ple dumps.</p>
<table width="100%" rules="none" frame="none" cols="4">
<tr valign="top" align="left">
<td valign="top" align="left" width="2.7692%">
</td>
<td valign="top" align="left" width="91.5385%">
<p><font size=3><B>Inventory<br>
<span style=" text-indent: 1.1200in;"></span></B>Each dump session updates an inventory database in <font size=3><I>/var/xfsdump/inventory</I><font size=3>.</p>
</td>
<td valign="top" align="left" width="1.8462%">
</td>
<td valign="top" align="left" width="3.8462%">
<br>
<p><font size=3>This</p>
</td>
</tr>
</table>
<p><font size=3>database can be displayed by invoking <font size=3><I>xfsrestore</I> <font size=3>with the <font size=3><B>-I</B> <font size=3>option. The display uses<br>
<span style=" text-indent: 1.3000in;"></span>tabbed indentation to present the inventory hierarchically. The first level is filesystem. The<br>
<span style=" text-indent: 1.3000in;"></span>second level is session. The third level is media stream (currently only one stream is sup-<br>
<span style=" text-indent: 1.3000in;"></span>ported). The fourth level lists the media files sequentially composing the stream.</p>
<p><font size=3>The following suboptions are available to filter the display. <font size=3><B>-I depth=</B><font size=3><I>n</I> <font size=3>(where <font size=3><I>n</I> <font size=3>is 1, 2, or 3) limits the hierarchi- cal depth of the display. When <font size=3><I>n</I> <font size=3>is 1, only the filesystem information from the inventory is displayed. When <font size=3><I>n</I> <font size=3>is 2, only filesystem and session information are displayed. When <font size=3><I>n</I> <font size=3>is 3, only filesystem, session and stream information are displayed. <font size=3><B>-I level=</B><font size=3><I>n</I> <font size=3>(where <font size=3><I>n</I> <font size=3>is the dump level) limits the display to dumps of that particular dump level.</p>
<p><font size=3>The display may be restricted to media files contained in a specific media object. <font size=3><B>-I mobjid=</B><font size=3><I>value</I> <font size=3>(where <font size=3><I>value</I> <font size=3>is a media ID) specifies the media object by its media ID. <font size=3><B>-I mobjlabel=</B><font size=3><I>value</I> <font size=3>(where <font size=3><I>value</I> <font size=3>is a media label) specifies the media object by its media label.</p>
<p><font size=3>Similarly, the display can be restricted to a specific filesystem. <font size=3><B>-I mnt=</B><font size=3><I>host-qualified_mount_point_pathname</I> <font size=3>(that is, hostname:pathname), identifies the filesystem by mountpoint. <font size=3><B>-I fsid=</B><font size=3><I>filesystem_id</I> <font size=3>identifies the filesys- tem by filesystem ID. <font size=3><B>-I dev=</B><font size=3><I>host-qualified_device_pathname</I> <font size=3>(that is, hostname:device_pathname) identifies the filesystem by device.</p>
<p><font size=3>More than one of these suboptions, separated by commas, may be specified at the same time to limit the display of the inventory to those dumps of interest. However, at most four suboptions can be specified at once: one to con- strain the display hierarchy depth, one to constrain the dump level, one to constrain the media object, and one to constrain the filesystem.</p>
<p><font size=3>For example, <font size=3><B>-I depth=1,mobjlabel="tape 1",mnt=host1:/test_mnt</B> <font size=3>would display only the filesystem informa- tion (depth=1) for those filesystems that were mounted on <font size=3><I>host1:/test_mnt</I> <font size=3>at the time of the dump, and only those filesystems dumped to the media object labeled "tape 1".</p>
<p><font size=3>Dump records may be removed (pruned) from the inventory using the <font size=3><I>xfsinvutil</I> <font size=3>program.</p>
<p><font size=3>An additional media file is placed at the end of each dump stream. This media file contains the inventory informa- tion for the current dump session. This is currently unused.</p>
<table width="100%" rules="none" frame="none" cols="4">
<tr valign="top" align="left">
<td valign="top" align="left" width="2.7692%">
</td>
<td valign="top" align="left" width="12.3077%">
<p><font size=3><B>Media Errors</p>
</B></td>
<td valign="top" align="left" width="4.9231%">
</td>
<td valign="top" align="left" width="80.0000%">
</td>
</tr>
<tr valign="top" align="left">
<td valign="top" align="left" width="2.7692%">
</td>
<td valign="top" align="left" width="12.3077%">
</td>
<td valign="top" align="left" width="4.9231%">
</td>
<td valign="top" align="left" width="80.0000%">
<p><font size=3><I>xfsdump</I> <font size=3>is tolerant of media errors, but cannot do error correction. If a media error occurs in the body of a media file, the filesystem file represented at that point is lost. The bad por- tion of the media is skipped, and the restoration resumes at the next filesystem file after the bad portion of the media.</p>
</td>
</tr>
</table>
<p><font size=3>If a media error occurs in the beginning of the media file, the entire media file is lost. For this reason, large dumps are broken into a number of reasonably sized media files. The restore resumes with the next media file.</p>
<a name="FILES"></a><h2>FILES</h2><p><font size=3>/var/xfsdump/inventory dump inventory database</p>
<a name="SEE ALSO"></a><h2>SEE ALSO</h2><p><font size=3>rmt(8), xfsdump(8), xfsinvutil(8), attr_set(2).</p>
<a name="DIAGNOSTICS"></a><h2>DIAGNOSTICS</h2><p><font size=3>The exit code is 0 on normal completion, and non-zero if an error occurred or the restore was terminated by the operator.</p>
<a name="BUGS"></a><h2>BUGS</h2><p><font size=3>Pathnames of restored non-directory files (relative to the <font size=3><I>destination</I> <font size=3>directory) must be 1023 characters (MAX- PATHLEN) or less. Longer pathnames are discarded and a warning message displayed.</p>
<p><font size=3>There is no verify option to <font size=3><I>xfsrestore</I><font size=3>. This would allow the operator to compare a filesystem dump to an existing filesystem, without actually doing a restore.</p>
<p><font size=3>The interactive commands (<font size=3><B>-i</B> <font size=3>option) do not understand regular expressions.</p>
<p><font size=3><I>xfsrestore</I> <font size=3>uses the alert program only when a media change is required.<br>
</p>
<!-- Page: 5 -->
<!-- left margin: 100 -->
<!-- right margin: 750 -->
<p><font size=3>Cumulative mode (<font size=3><B>-r</B> <font size=3>option) requires that the operator invoke <font size=3><I>xfsrestore</I> <font size=3>for the base and for each delta to be applied in sequence to the base. It would be better to allow the operator to identify the last delta in the sequence of interest, and let <font size=3><I>xfsrestore</I> <font size=3>work backwards from that delta to identify and apply the preceding deltas and base dump, all in one invocation.<br>
</p>
</body>
</html>