第8章文件系统
L inux是建立在文件系统的基础上的。文件系统是对磁盘进行组织,在扇区和磁道组成的物理基础上提供抽象操作层面的机制。本章我们将讨论L inux的缺省文件系统e xt2所支持的全部抽象操作层面的构成和管理操作。
注意在开始学习本章之前,需要对L inux环境中的文件、子目录、访问权限以及所有者等概念有比较清晰的理解。如果没有学习过第6章的内容,在继续学习之前最好还是先去看看。
本章我们将讨论磁盘管理方面的许多问题,包括建立硬盘分区、建立文件系统、引导系统时自动挂装文件系统、以及发生系统崩溃之后如何对它们进行恢复等等。除了这些基本的东西之外,我们还将涉及L inux一些复杂的功能,比如挂装网络文件系统、硬盘空间配额管理、以及自动挂装(a utomounter)子系统等等。
8.1 文件系统的构成
我们从介绍L inux操作系统的文件系统结构开始。这样有助于加深对这些概念的理解,并让读者更容易地看到如何利用好这种结构。
8.1.1 i-结点
许多U NIX文件系统(包括L inux的e xt2)最基础的建筑材料就是i -结点(i -node)。i -结点是一个包含着指针的控制结构,其中的指针要么指向其他i -结点,要么指向数据块。i -结点中的控制信息包括文件的所
有者、访问权限、长度、最后一次存取
时间、建立时间、用户分组G ID号等等
(如果真的很好奇,在/ u s r / s r c / l i n u x /
i nclude/linux/ext2-fs.h文件中可以查到
完整的内核数据结构—当然需要假设
你已经把/ usr/src子目录树的内容全部都
安装好了)。i -结点中没有保存的东西就
是文件名。
我们在第6章中已经介绍过,子目
录本身就是文件的一种特殊形式。这就
意味着每一个子目录都有一个i -结点,
这个i -结点指向的数据块中包含着关于
这个子目录所有文件的信息资料。图8 -1
给出了e x t 2文件系统中i -结点和数据块的组织结构。图8-1 ext2文件系统中i -结点和数据块的组织结构1KB数据块1KB数据块1KB数据块i- 结点间接块1KB数据块1KB数据块一个64KB文件的i-结点结构1KB数据块