发信人: sungang(笨刚)
整理人: sungang(2003-09-16 11:31:54), 站内信件
|
3.2.3 文件系统
Unix使用一个逻辑上的目录树来保存各种不同类型的文件,然而,真实的存储设备是硬盘分区,例如一个硬盘ad0具有ad0s1a,ad0s1e, ad0s1f等分区。可以使用命令mount来查看目录树与硬盘分区之间的关系。
$ mount
/ on /dev/ad0s1a
/usr on /dev/ad0s1e
/var on /dev/ad0s1f
从上面的输出可以看出,根目录位于ad0s1a上,而/usr位于ad0s1e上,/var位于ad0s1f上。初看起来,这好象有些矛盾,因为/usr,/var本身就位于/目录之下。
Unix使用简单的逻辑关系对此进行判断,从目录树的枝叶上向根方向寻找,一旦发现与硬盘分区的关系,就确定下来,而不再继续向下寻找了。例如/usr/home/user,一旦找到/usr目录发现与ad0s1e的对应关系,就不在继续寻找了。
然而,不是所有的硬盘分区都与目录树有对应关系,例如在安装系统时我们使用ad0s1b用作系统的交换空间,因而它就没有用来保存文件。用来保存文件的硬盘分区,经过格式化之后,就可以用来保存文件了,因此就可以称为一个文件系统,因而格式化也被称为建立文件系统。
因为硬盘分区的大小是有物理限制的,可以使用df命令来查看当前每个文件系统中空间的占用情况。
$ df
因为,目录树的不同位置位于不同的文件系统中,那么就有可能当一些文件系统达到空间限制的时候,另一些文件系统还十分空余,例如,由于缺省安装情况下只给/var/文件系统划分20M空间,很可能/var文件系统被占满,而/usr还很空闲。因此,最简单的考虑是,为什么不将它们合并起来,充分发挥空间的可利用性?
例如在安装系统的时候,不划分/usr,/var文件系统,只仅仅划分一个/文件系统,仍然可以正常安装,并且由于所有的空间都位于/文件系统中,就不会发生/var占满,而其他文件系统还很空余的情况了。
这种只划分一个分区的做法在linux中比较常见,然而这没有考虑到不同分区的不同作用,没有考虑到系统故障的容错和恢复,因而不是一个好习惯。
然而,必须考虑到,不同的文件对于系统的重要性是不同的,根文件系统对于系统维护是非常重要的,因为单用户状态下只访问这个文件系统,而/var文件系统即便完全损坏,也只不过丢失了一些系统日志记录等等。考虑到一些贪婪或者有恶意的程序,这些程序能不停的占据空间,然而,不同的文件系统就能保证这些程序不至于影响其他程序或系统的正常运行。
|
|