本节介绍 tar
和 mt
的一些简单用法。其他示例可以在 ftape-doc
包的 ftape-manual
中找到。 ftape-tools
包含一些简单的自动化 DejaGnu
用于编写自动化测试的软件包。测试套件。有关从何处下载这些附加软件包的信息,请参阅 获取 ftape 部分。
您可以使用 `tar
'、`dd
'、`cpio
' 和 `afio
'。您将需要使用 `mt
' 来充分发挥磁带和 ftape
驱动程序的潜力。首先,我建议使用 `tar
',因为它可以归档许多目录,并允许您从归档文件中挑选出单独的文件。 cpio
创建更小的归档文件,并且通常比 tar
更灵活,但缺少一些功能,例如卷标。 `afio
' 创建备份,其中每个文件都被单独压缩,然后连接起来。这将允许您在错误点“之后”访问文件。如果您使用 gzip
压缩的 tar
文件,则错误点之后的所有数据都会丢失!(对我来说,这是不使用备份压缩的一个很好的理由)。哪种选择最合适取决于具体情况以及每个软件包的功能和缺点。我建议您查看每个软件包,并查看每个软件包提供的选项。本 HOWTO 可能会在未来某个时候提供有关此主题的更多详细信息。
在 http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape/ 的 software
部分中,有更多指向备份软件的链接。
要使用 tar
备份内核源代码树,请执行以下操作(假设您的源代码位于 /usr/src/linux
中)
# cd /usr/src
# tar cf /dev/ftape linux
这将不会压缩文件,但会使磁带运行更顺畅。如果您想要压缩(并且您已安装了 tar
1.11.2),只需包含 -z
标志 (*),例如:`tar czf /dev/ftape linux
'`
有关如何使用 tar
、dd
和 mt
的更多说明,请查看手册页和随附各自发行版的 texinfo 文件。
(*) tar
假定第一个参数是选项,因此 `-
' 不是必需的,即以下两个命令是相同的:`tar xzf /dev/ftape
' 和 `tar -xzf /dev/ftape
'
好的,让我们恢复您在上面 写入归档到磁带 部分中制作的内核源代码备份。为此,您只需说
tar xf /dev/ftape
如果您使用了压缩,则必须说
tar xzf /dev/ftape
当您使用压缩时,gzip
会抱怨归档文件末尾之后存在尾部垃圾(这会导致“broken pipe”消息)。这可以安全地忽略。
对于其他实用程序,请阅读手册页。
tar 有一个选项 (-d
) 用于检测两个归档文件之间的差异。要测试您的内核源代码备份,请说
tar df /dev/ftape
如果您没有 tar
的手册页,您还没有迷路(尚未);tar 有一个内置的选项列表:尝试 `tar --help 2>&1 | less
'`
要在磁带上放置多个备份,您必须拥有 mt
实用程序。如果您安装了主流发行版之一(例如 Slackware 或 Debian),您可能已经拥有它。
像 tar
和 cpio
这样的程序生成单个磁带归档文件,并且不了解多个文件或磁带定位,它只是从/向设备读取或写入。 mt
了解有关前后移动磁带的一切,但不了解有关从磁带读取数据的信息。您可能已经猜到,将 tar
或 cpio
与 mt
结合使用可以解决问题。
通过使用 nqft[0-3]
(nftape
) 设备,您可以使用 `mt
' 将磁带定位到正确的位置(`mt -f /dev/nqft0 fsf 2
' 表示跳过两个“文件标记”,即 tar
文件),然后使用 tar
或 cpio
读取或写入相关数据。
非倒带设备最常见的用途是将另一个备份附加到现有磁带。以下是具体步骤,并附带一些解释以供参考。
mt -f /dev/n???? eof
磁带现在应定位在数据结尾 (EOD)。除非程序打开设备、关闭倒带设备、从内核内存中删除设备驱动程序 (rmmod) 或弹出磁带,否则磁带不会移动。在 QIC 磁带上使用 `mt eof
' 可能会更快。ftape
使用 QIC-113
标准中指定的卷表来模拟文件标记,因此 EOD 处没有两个连续的文件标记。当执行 close() 时,写入 EOF 标记由设备驱动程序或硬件处理。ftape
都会缓存一些属于磁带上标头段的信息,并且仅在倒带磁带时更新这些标头段。这种缓存是必要的,因为倒带磁带和更新标头段需要相当长的时间。这种缓存的缺点是,如果您已写入磁带但未倒带设备,则会丢失信息。
“有没有一种方法可以扩展归档文件——将一个文件放在磁带上,然后在稍后向磁带添加更多内容?”
没有。 tar
文档会告诉您使用 `tar -Ar
',但这不起作用。这是当前 ftape
驱动程序的限制。
由于磁带上没有“文件系统”,因此您不会挂载/卸载磁带。要备份,您只需插入磁带并运行 `tar
' 命令(或您用于访问磁带的任何命令)。