文件系统简介
主要介绍:linux磁盘分区和目录、挂载基本原理、文件存储结构
linux磁盘分区和目录
Linux发行版本之间的差别很少,差别主要表现:
在系统管理的特色工具
软件包管理方式的不同。目录结构基本上都是一样的。
Linux的文件结构是单个的树状结构.可以用tree进行展示。 在Ubuntu下安装tree(sudo apt-get install tree),并可通过命令来查看。
每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下:
- 任何一个分区都必须挂载到某个目录上。
- 目录是逻辑上的区分。分区是物理上的区分。
- 磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
- 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。
问:为什么要分区,如何分区?
- 可以把不同资料,分别放入不同分区中管理,降低风险。
- 大硬盘搜索范围大,效率低
- 磁盘配合只能对分区做设定
- /home /var /usr/local经常是单独分区,因为经常会操作,容易产生碎片
mount挂载
- 挂载的概念
当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用),而这个目录就称为“挂载点(mount point)”,这样才可以读取这些设备,而这些对应的动作就是“挂载”。 - 需要理解的是:
- linux操作系统将所有的设备都看作文件,
- 它将整个计算机的资源都整合成一个大的文件目录。
- 我们要访问存储设备中的文件,必须将文件所在的分区挂载到一个已存在的目录上,
- 然后通过访问这个目录来访问存储设备。
Mount命令可以实现挂载:
mount [-fnrsvw] [-t vfstype] [-o options] device dir
问:所有的磁盘分区都必须被挂载上才能使用,那么我们机器上的硬盘分区是如何被挂载的?
主要是利用了/etc/fstab文件。每次内核加载时知道从这里开始mount文件系统。linux系统启动时根据该文件定义自动挂载。若没有被自动挂载,分区将不能使用。
文件类型
Linux下面的文件类型主要有:
1. 普通文件:C语言元代码、SHELL脚本、二进制的可执行文件等。分为纯文本和二进制。
2. 目录文件:目录,存储文件的唯一地方。
3. 链接文件:指向同一个文件或目录的的文件。
4. 特殊文件:与系统外设相关的,通常在/dev下面。分为块设备和字符设备。
可以通过ls –l, file, stat几个命令来查看文件的类型等相关信息。
文件存储结构
在linux正统的文件系统(eg:ext2、ext3)中,一个文件由以下三个部分组成:
1. 目录项:包括文件名和inode节点号。
2. Inode::又称文件索引节点,记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码。
3. data block:实际记录文件的内容,若文件太大时,会占用多个block。