ftape
ftape
v2.0.x 版本的内核包含了 ftape
的 2.08 版本。我建议您获取 ftape
完整源代码包的最新版本。这是一个更新的版本,包含了内核 v2.0.X 发行版中未包含的文件,并且包含了关于如何安装 ftape
的更完善的文档。v2.1.x 及更高版本的内核包含了 ftape
的 3.04 版本。
我建议您下载 ftape
的最新稳定版本,在撰写本文时是 4.02 版本,可以从以下地址获取:
http://www-math.math.rwth-aachen.de/~LBFM/claus/ftape/archives.html
以及从
ftp://sunsite.unc.edu/pub/Linux/kernel/tapes/.
您可能还应该从相同的位置获取 ftape-doc
和 ftape-tools
软件包。
如果您仍然想使用 v2.0.x 内核附带的 ftape-2.08
,那么您获得的驱动程序版本将非常过时,并且不能正确支持 2Mbps 的 QIC-3020 磁带,也不支持 Ditto 2GB 驱动器、Ditto Max 驱动器或任何类型的并行端口磁带驱动器。“Supported drives”(支持的驱动器)部分详细介绍了哪个版本的 ftape
驱动程序支持哪些硬件。
ftape-2.x
、ftape-3.x
和 ftape-4.x
版本之间的区别
ftape-3.x
和 ftape-4.x
使用为名为 zftape
的分支版本实现的文件系统接口。实际上,实现 ftape-3.x
和 ftape-4.x
的 VFS(虚拟文件系统)接口的模块仍然称为 zftape.o
,其 C 源代码位于内核树中的 [/usr/src/linux/]drivers/char/ftape/zftape/
。
ftape-2.x
(即 v2.0.x 内核中仍然包含的版本)使用另一个文件系统接口,该接口由 ftape
的原始作者 Bas Larhoven 实现。
ftape-2.x
和更高版本的 ftape
之间的概念性区别在于文件标记的实现方式。
软盘磁带设备没有真正的文件标记。
文件标记用于区分不同的备份集,如果您将多个备份集写入磁带。SCSI 和 QIC-150 磁带具有真正的文件标记,即在两个不同的备份集之间,磁带上有一个区域写入了特殊数据,以便驱动器逻辑可以在磁带以(可能)高速绕过这些文件标记时检测到该标记。因为
ftape
的文件系统接口的最初目标是提供一个可以与标准类 Unix 磁带实用程序(例如 mt
)一起使用的接口,所以 ftape
的开发人员开始通过将磁带上应放置文件标记的位置存储在标头段的某些字段中来模拟文件标记。标头段指的是磁带开头的一个区域,大小为 29k 的两倍,用于保存有关磁带格式和大小以及一些状态信息的重要信息。
然而,QIC 标准已经指定了一个特殊区域来存储此类信息,即所谓的卷表段。自 ftape-3.x
以来,使用此卷表段代替使用标头段中未使用的数据字段。因此,可以在不同的操作系统中使用您的磁带盒,因为您的 Win 或 DOS 备份程序将意识到磁带盒的某些区域已被数据占用,并且 ftape-3.x
及更高版本将检测到这些 DOS 和 Win 程序使用的区域。但是,您无法在 Linux 下提取 DOS 备份集,也无法在 DOS 下提取由 ftape
写入的卷,除非您编写自己的软件来执行此操作。
IOCTL 存在一些差异
此 IO 控制 接口被 mt
等程序用于倒带、跳到下一个文件标记或执行任何其他磁带操作。
ftape-2.x
和 ftape-3.x
及更高版本之间的接口存在差异。详细描述可以在 ftape-doc
软件包中包含的 ftape-manual
中找到。请参阅获取 Ftape。
仅 ftape-3.x
及更高版本支持磁带盒的格式化。请获取包含 ftformat
程序的 ftape-tools
软件包,该程序与驱动程序接口以格式化磁带盒。请参阅获取 Ftape。ftape-tools
软件包附带(或多或少)详细的文档,因此本文档不处理磁带盒的格式化情况。
ftape-3.x
支持软件中的用户透明的即时压缩。此功能(或错误)在 ftape-4.x
中已消失,因为它使进一步提高备份的可靠性变得非常困难。这意味着,ftape-4.x
不支持压缩。
但是,为了不破坏现有的备份程序,ftape-3.x
生成的压缩归档文件的解压缩是受支持的,在这些程序中,用户级过滤器不足以保持兼容性。例如,考虑 taper
,它自己调用 MTIOC
ioctl,而不是依赖 mt
程序来执行磁带操作。
ftape-doc
软件包中包含的 ftape-manual
包含有关 ftape
文件系统接口以及实现说明的更详细信息,这些信息远远超出了本 HOWTO 的范围。有关在哪里获取手册的信息,请参阅获取 Ftape。
以下部分提供了一些有用的信息,以帮助您开始安装 v4.x,该版本尚未随内核源代码树一起提供,但必须单独下载,请参阅上面的“获取 ftape”部分。
下载源代码(可能是 ftape-4.02-tar.gz
)后,解压它。您可以通过确定要将源代码放置在哪个目录中来执行此操作。我建议使用 /usr/src/
或 ~/src
。当 tar 文件被解压后,它会将所有内容转储到 ftape-4.02
子目录中,因此在给定的示例中,您最终将得到类似于 /usr/src/ftape-4.02
或 ~/src/ftape-4.02
的目录。
注意: 您无法将 ftape-4.02
编译到您的 v2.0.x 内核中。相反,请配置您的内核以不编译 ftape
驱动程序,并按照 ftape-4.02
发行版中的安装说明进行操作,并将 ftape-4.02
安装为模块。
阅读 README 文件。README 是必读文件。可以这么说,它是树的顶部。如果 README 告诉您要阅读特定的文件,请阅读它们。这将使过程变得简单得多。
在您阅读完相应的 README 文件和 INSTALL 文件之前,请勿继续编译软件包。
之后,您需要编辑 MCONFIG 文件并根据您的硬件配置您的软件包。MCONFIG 文件包含大量说明,因此应该很容易理解。
但是,大多数硬件配置可以通过在模块加载时设置参数来完成,因此 MCONFIG 文件中指定的大多数参数仅给出默认配置,但您不需要重新编译驱动程序来更改 IO 地址或中断设置。INSTALL 文件和 modules/insert 文件包含如何在加载内核模块时指定正确的模块参数的示例,因此我不会在此处赘述。
如果您正在使用 Linux-v1.3.x 内核,则应考虑升级到 v2.0.x。v1.3.x 是在生产版本 v2.0.x 之前的开发版本。
ftape-4.02
可能会包含在 v2.2.x 内核中,但在撰写本文时还不清楚。当这一点明确后,本 HOWTO 将进行相应的修订。在此期间,您必须参考上一节“在 v2.0.x 及更早版本的内核中安装驱动程序”并忽略本节的内容。
Linux 内核 v2.1.x 及更高版本已经包含 ftape-4.x
,因此您无需下载 ftape-4.x
内核驱动程序包。
包含在 v2.1.x 版本内核中的 ftape-4.x
可以使用内核配置菜单(使用 make menuconfig
或 make xconfig
)完全配置。此外,还有在线帮助文档记录了每个参数设置,我将不再赘述。
各种启动和加载时参数设置在以下文件中进行了解释:
[/usr/src/linux/]Documentation/ftape.txt
Linux-v2.1.x 及更高版本内核发行版。
ftape
驱动程序的开发
如果您想关注 ftape
驱动程序的开发,您应该订阅 Linux Tape 邮件列表 linux-tape@vger.rutgers.edu
。为此,您需要发送一封电子邮件,内容为 subscribe linux-tape
(在正文中)到 majordomo@vger.rutgers.edu
。当您订阅后,您将收到一封欢迎邮件,其中将告诉您如何提交真实邮件以及如何再次退出列表。请将此电子邮件存放在安全的地方。
请注意,对于此邮件列表,我没有任何特殊权限,请再说一遍,没有任何特殊权限。如果您被困在列表中,请不要告诉我。我只能耸耸肩并向您表示同情(但这不会让您退出列表)。
ftape
和软盘
如果您将软盘磁带驱动器与标准 FDC 一起使用,则软盘驱动器和软盘磁带驱动器不能同时运行,因为它们共享相同的硬件 FDC,并且 floppy
和 ftape
驱动程序彼此不通信。因此,如果您已挂载软盘,然后尝试访问磁带驱动器,ftape
将会抱怨它无法获取 IRQ6,然后崩溃。这在使用 ftape 设计紧急磁盘时尤其是一个问题。此解决方案是将启动/根磁盘加载到 ramdisk 中,然后卸载软盘,或者使用两个软盘驱动器控制器。