下一页 上一页 目录

1. 简介

文件系统 HOWTO 是关于文件系统以及从各种操作系统访问文件系统的文档。尽管本文档是根据我所知的最佳水平编写而成,但它可能并且很可能包含错误。如果您发现任何错误或过时的信息,请告诉我。我将尽力保持本文档的更新并尽可能无错误。我们也欢迎任何贡献,因此如果您想撰写任何关于文件系统的内容,请通过电子邮件与我联系。

更新:请注意,本 HOWTO 超过 5 年未更新,并且确实包含一些过时的信息。我将尝试找时间为文件系统相关信息建立一个 WIKI 网站,以便任何人都可以做出贡献。有关更多信息,请参见下一章。

在您阅读本 HOWTO 之前,建议先阅读 Stein Gjoen 的 Disk-HOWTO(您可以从 http://sunsite.unc.edu/LDP/HOWTO/ 获取)。

本 HOWTO 可以从 http://martin.hinner.info/fs/http://metalab.unc.edu/filesystems/howto/ 获取。

如果您是日语用户,您可能会对 FUJIWARA Teruyoshi 将本 HOWTO 翻译成日语感兴趣。它可以在 http://www.linux.or.jp/JF/JFdocs/Filesystems-HOWTO.html 上找到。SGML 源文件可以从 ftp://ftp.linet.gr.jp/pub/JF/sgml/Filesystems-HOWTO.sgml.gz 下载。

1.1 联系作者

您可以通过 martin@hinner.info 联系我。我欢迎任何建议和更正,但在您提出问题之前,请先尝试在互联网上搜索。您还应该查看我的主页(http://martin.hinner.info/)以获取任何更新或附加信息。请注意,我正忙于我的其他项目(例如 汽车诊断基于 ARM 的微处理器开发工具),并且我有一份全职工作(我为 SECONS Ltd.Fintera Ltd. 工作),因此我回复电子邮件的时间非常有限。

1.2 HOWTO 维护

如果您想为本 HOWTO 做出贡献或接管维护,请查看作者的网站(http://martin.hinner.info/)并与他联系。

我还将尝试建立一个 wiki 风格的网站,用于文件系统相关信息,以便任何人都可以做出贡献,并且该网站稍后将与本 HOWTO 合并。所有这些活动都取决于我的空闲时间。

1.3 版权

文件系统 HOWTO,版权所有 (c) 1999-2000 Martin Hinner < martin@hinner.info>。

本 HOWTO 是免费文档;您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它;无论是许可证的第 2 版,还是(由您选择)任何更高版本。

发布本 HOWTO 是希望它会有用,但不作任何担保;甚至不作关于适销性或适用于特定用途的默示担保。有关更多详细信息,请参见 GNU 通用公共许可证。

您应该已经收到了与本文档或 GNU CC 一起分发的 GNU 通用公共许可证的副本;如果没有,请写信给:Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA。

1.4 文件系统邮件列表

您可能想加入文件系统邮件列表。它旨在成为最终用户和开发人员的良好信息来源。因此,如果您有任何与文件系统相关的事情,请加入 ;-) 要订阅,请发送电子邮件至 < majordomo@penguin.cz> 并在电子邮件正文(而不是主题)中输入(不带引号):“subscribe fs-l”。

Linux 内核文件系统邮件列表

要加入 Linux 内核文件系统邮件列表 linux-fsdev@vger.rutgers.edu,请发送电子邮件至 listserv@vger.rutgers.edu。在消息正文中输入 "subscribe linux-fsdev"

FreeBSD 文件系统邮件列表

要加入 FreeBSD 技术文件系统邮件列表 freebsd-fs@FreeBSD.org,请发送电子邮件至 majordomo@FreeBSD.org。在消息正文中输入 "subscribe freebsd-fs"

1.5 metalab.unc.edu 上的文件系统集合

文件系统集合是一个 FTP/WWW 站点,提供有关文件系统和文件系统相关程序和驱动程序的有用信息。它位于 http://metalab.unc.edu/filesystems/,或者仅限 FTP 访问 ftp://metalab.unc.edu/pub/docs/filesystems/

1.6 鸣谢

最初的“文件系统访问 HOWTO”由 Georgatos Photis 编写(请参阅他的主页 http://students.ceid.upatras.gr/~gef/)。本 HOWTO 包含来自他的网页的大量信息。感谢 Gef。

FUJIWARA Teruyoshi <fujiwara@linux.or.jp> 将本 HOWTO 翻译成日语。

其他为本 HOWTO 做出贡献或(直接或间接)帮助过我的人员,按字母顺序排列

非常感谢以上人员。如果我遗漏了任何人,请告诉我。

1.7 文件系统可访问性地图

这是文件系统可访问性“地图”,按操作系统字母顺序排列。您可能会发现此列表有点混乱。这是因为 Linux sgmltools 不知道表格。

您看到这个“地图”仍然不完整。我将尝试在不久的将来完成它。

FreeBSD: BSD FFS | Ext2 | HPFS | NTFS

Linux: AFFS| BeFS| BFS| Ext2 FS| BSD FFS| HPFS| Qnx4 FS| Xia

NetBSD: BSD FFS | FAT12/16 | ISO9660

NetWare 2.x: NWFS-286

NetWare 3.x, 4.x: NWFS-386 | ISO9660

NetWare 5.x: NWFS-386 | NSS | ISO9660

OpenBSD: BSD FFS | FAT12/16

OS/2: Ext2 FS | FAT12/16/32 | HPFS | HPFS | ISO 9660 | JFS | VFAT

QNX 4: FAT12/16 | ISO 9660 | Qnx4 FS

SCO OpenServer: AFS| DTFS| EAFS| HTFS| ISO 9660 | S51K

SCO UnixWare: BFS| DTFS| ISO 9660 | System V| VxFS

1.8 连续分配文件系统简介

一些连续文件系统:BFSISO9660 和扩展

1.9 链表分配文件系统简介

1.10 基于 FAT 的文件系统简介

(待办)

一些 FAT 文件系统:FAT12/16/32、VFATNetWare 文件系统

1.11 Inode 文件系统简介

(待办)

1.12 Extent 文件系统简介

(待办)

一些“extent”文件系统:EFSVxFS

1.13 使用平衡树的文件系统简介

(待办)

一些使用 B+ 树的文件系统:HFSNSSReiser FSSpiralog 文件系统

1.14 日志/Journaling 文件系统简介

文件系统通过同步写入更新其结构信息(称为元数据)。每个元数据更新可能需要多次单独写入,如果系统在写入序列期间崩溃,则元数据可能处于不一致状态。

在下次启动时,文件系统检查实用程序(称为 fsck)必须遍历元数据结构,检查和修复它们。此操作在大型文件系统上需要很长时间。并且磁盘可能不包含足够的信息来纠正结构。这会导致文件错位或删除。

Journaling 文件系统使用称为日志或 journal 的单独区域。在实际执行元数据更改之前,它们会被记录到这个单独的区域。然后执行操作。如果系统在操作期间崩溃,则日志中有足够的信息来“重放”日志记录并完成操作。

这种方法不需要对文件系统进行全面扫描,从而在大型文件系统上产生非常快速的文件系统检查时间,通常对于多千兆字节的文件系统只需几秒钟。此外,由于保存了待处理操作的所有信息,因此不需要删除或丢失和找到的移动。Journaling 文件系统的缺点是它们比其他文件系统慢。

一些 journaling 文件系统:BeFSHTFSJFSNSSSpiralog 文件系统VxFSXFS

1.15 其他文件系统特性

配额

快照

ACL


下一页 上一页 目录