Linux文件系统
Linux文件系统 1、 Linux文件系统概述
Linux中用户能看到的文件空间是一个单树状结构的,该树的根在顶部,称为根目录(root),用“/”表示。文件空间中的各种目录和文件从树根向下分支。
对用户而言,该目录树就象一个无缝的整体,用户能看见的是紧密联系的目录和文件。实际上,文件树中的许多目录存放在一个磁盘、不同磁盘甚至不同的计算机的不同分区中。当磁盘分区之一被“mount”到文件树中称为“安装点”(mount point)的目录上时,就成为了该目录树的一个组成部分。
当windows 98的C:盘(其本身是FAT32文件系统)未被安装时,/mnt/winc是根文件系统中的一个普通子目录(格式可能是Linux EXT2/3),里面可以存放任何数据。而FAT32格式的C盘上的数据独立于Linux系统,不能被Linux系统所读取。安装(mount)之后,/mnt/winc/就成了安装点,其中所有的数据都将被FAT32文件系统所屏蔽,用户只能看到FAT32文件系统中存放的数据,只能将该文件系统卸载之后,/mnt/winc中原有的数据才会出现,不会丢失。
Linux正是通过这种将不同文件系统装配在一起的技术,实现了个文件系统之间的无缝连接,为用户的操作提供了极大的方便,用户也不用费心思去考虑光盘驱动器的盘符是什么了。
2、 Linux文件系统组成
Linux操作系统由一些目录和文件组成。根据安装的方式不同,这些目录可能是不同的文件系统。通常,一个系统可以有多个文件系统组成:根分区文件系统(/),和安装在/usr下的文件系统,还有其他安装在/home、/var文件系统。其中根文件系统必须是Linux ext2/3.顺便提一下最简单的Linux操作系统分区是/和交换分区(SWAP)。
根目录中包含了组成根目录的内容,也为其他的文件系统提供了安装点。
Ø /dev目录 包含所有的设备文件、这些设备式系统设置的、一般都和系统的硬件有一定相互对应关系的特殊文件,分为快设备,字符设备和特殊设备,一般不要随便更改和删除
Ø /bin 目录 包含称为二进制文件的可执行程序
Ø /sbin目录 和/bin目录类似,这些文件往往是用来进行系统管理的,一般只有root才有运行的权限
Ø /etc 目录 Linux系统的绝大部分配置文件都存放在这里,这些文件是系统更符合用户的需要。
Ø
/proc 目录 这实际是一个虚拟的文件系统,使系统启动是从内存中建立的,用于内存读取数据。
Ø /tmp 目录 用于存放各种临时文件,这些文件大都是程序运行是产生的,程序结束时一般将他们删除
Ø /home目录 存放一般用户的个人目录
Ø /var 目录 保存大小和内容随时改变的文件,通常各种系统日志文件放在这里
Ø /lib 目录 存放系统的各种库文件,库文件在编译程序时会用到。
Ø /mnt 目录 为其他的文件系统提供安装点
Ø /boot 目录 存放系统启动时所需的各项文件
Ø /root 目录 超级用户的个人目录,普通用户没有权限访问
Ø /lost+found目录 :放置一些垃圾文件
Ø /usr目录 一般用户程序安装所在的目录,使系统中最庞大和最重要的目录。
3、 文件系统管理
Linux文件系统管理最上层模块是文件系统。系统启动时,必首先装入“根”文件系统,然后根据/etc/fstab中制订,逐个建立文件系统。此外用户也可以通过mount、umount操作,随时安装和卸载文件系统。
当装入一个文件系统时,应首先向系统核心注册该系统及其类型。当卸载一个文件系统时,应向核心申请注销该系统和类型。文件系统的注册和注销反映在以vfsmnlist为链头,vfsmntail为链尾,以vfsmount为节点的单向链表中。从链表的每一个vfsmount可以找出一个已注册的文件系统的信息。文件系统类型的注册和注销反映在以file_systems为链头,以file_system_type为节点的单向链表中。链表中的每一个file_system-type节点描述了一个已注册的文件系统类型。
4、 虚拟文件系统(VFS)
VFS是物理文件系统与服务之间的一个接口层,他对每一个Linux文件系统的所有细节进行抽象,使得不同的文件系统在Linux核心以及系统中运行的其他进程看来,都是相同的。
严格说来,VFS并不是一种实际的文件系统。他只存在内存中,不存在于任何外存空间。VFS在系统启动是建立,在系统关闭时消亡
VFS的功能包括
Ø 记录可用的文件系统的类型
Ø 将设备同对应的文件系统联系起来
Ø 处理一些面向文件的通用操作
Ø 涉及到针对文件系统的操作时,VFS把他们映射到与控制文件、目录、以及inode相关的物理文件系统。
5、 安装和卸载文件系统
要在Linux目录树中安装一个文件系统,必须要有实际要安装的硬盘分区、光盘或软盘,并且作为该文件系统安装点的目录必须是实际存在的。
手工安装文件系统。命令是mount [options] <device> <mount_point>,device是要安装的实际设备文件,mount_point是安装点。Options是mount接收的命令行选项。如果用户没有给出所需的选项,mount将尝试从相关的/etc/fstab文件中查找。
Mount的常用选项有:
1、-r以只读方式安装文件系统。
2、-w以可读写方时安装文件系统。
3、-v verbose模式,mount将给出许多信息以报告其工作状态
4、-a 安装/etc/fstab文件中所列的所有文件系统
5、-o list_of_options选项列表,各选项之间用逗号隔开。
6、-t file_type指定要安装的文件系统类型。
直接装载文件系统的最基本命令就是 mount –t <fs_type> <device> <mount_point>, -t选项接受auto作为其参数,这使得mount能够自动检测文件系统类型。
卸载文件系统的命令是umount,由四种基本的命令格式
umount <device>
umount <mount_point>
umount –a
umount –t fs_type
前两种方式卸下由device和mount_point指定的文件系统,第三种形式卸下所有的文件系统,第四种方式卸下制定类型的文件系统。Umount不能卸下正在使用的文件系统,当然系统的根分区也不能卸载,知道系统退出Linux的运行状态。