6种常用Linux文件系统
Linux 系统支持多种类型的文件系统管理文件和目录,而每种文件系统都在存储设备上实现了虚拟目录结构。本节将学习在 Linux 环境中常用的文件系统。
ext 2 文件系统格式化如图 1 所示。

图 1 ext 2 文件系统格式化
1) data block(数据块)用来放置文件内容。在 ext 2 文件系统中所支持的 block 大小有 1KB、2KB 及 4KB 三种,block 的大小由文件系统总容量决定,如表 2 所示。
需要注意的是:
2) inode table(inode表格):存放文件属性和权限等。inode 存放的文件数据至少有文件的访问权限(rwx);文件的所有者与组(owner/group);文件的大小;文件创建和状态改变时间;最近一次读的时间;最近修改的时间;文件类型标识;文件指向的 block 号。
3) super block(超级块)。super block 存放文件系统的基本信息。一个文件系统只有一个 super block,存放的信息有:block 与 inode 的总量;未使用与已使用的 inode/block 数量;block 与 inode 的大小;文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息;一个 validbit 数值,若此文件系统已被挂载,则 validbit 为 0,若未被挂载,则 validbit 为 1。
4) File System Description(文件系统描述说明):这个区段可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段分别介于哪一个 block 号码之间。
5) block bitmap(块对照表):标识 block 是否使用,便于系统快速找到空间来处置文件。
6) inode bitmap(inode 对照表):与 block bitmap 功能类似,只是 block bitmap 记录的是使用与未使用的 block 号码,inode bitmap 记录使用与未使用的 inode 号码。
ext 3 是大多数 Linux 发行版本的默认文件系统。它采用和 ext 2 文件系统相同的索引节点表结构,另外给每个存储设备增加了一个日志文件,以将准备写入存储设备的数据先记入日志。
默认情况下,ext 3 文件系统用有序模式的日志功能,只将索引节点信息写人日志文件,直到数据块都被成功写入存储设备才删除。通常可以在创建文件系统时使用一个简单命令行选项将 ext 3 文件系统的日志方法改成数据模式。
在 ext 3 格式的文件系统上,当要向硬盘中写入数据时,操作过程如下:
注意,在 ext 3 文件系统中,由于有日志机制,在开机时系统会检查日志中的信息。利用日志中的信息,系统就会知道有哪些数据还没有写入硬盘中。由于系统在硬盘上搜寻的范围很小,所以系统检查的时间就会节省很多时间。
ext 3 文件系统为 Linux 文件系统新增加了基本的日志功能,但它依然是不完善的。例如 ext 3 文件系统无法恢复误删的文件,ext 3 文件系统也不支持加密文件等。
ext 4 文件系统的特点如下:
ext 4 文件系统支持称作区段的特性。区段在存储设备上按块分配空间,但在索引节点表中只保存起始块的位置。不需要显示出所有用来存储文件中数据的数据块,因此可以在索引节点表中节省空间。
ext 4 加入了块预分配技术。ext 4 文件系统可以为文件分配所有需要用到的块,不仅仅是已经用到的块。ext 4 文件系统用 0 填满预留的数据块,不会将它们分配给其他文件。
ReiserFS 文件系统的特点如下:
XFS 文件系统的特点如下:
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
1. Linux ext 2文件系统
ext 2 文件系统是 Linux 使用的最传统的磁盘文件系统。ext 2 文件系统是以 inode 为基础的文件系统。它被划分为多个块组,每个块组拥有独立的 inode/block,一个文件系统只有一个 super block。ext 2 文件系统格式化如图 1 所示。

图 1 ext 2 文件系统格式化
1) data block(数据块)用来放置文件内容。在 ext 2 文件系统中所支持的 block 大小有 1KB、2KB 及 4KB 三种,block 的大小由文件系统总容量决定,如表 2 所示。
block大小 | 1KB | 2KB | 4KB |
---|---|---|---|
最大单一文件限制 | 17GB | 257GB | 2TB |
最大文件系统容量 | 2TB | 8TB | 17TB |
需要注意的是:
- block 的大小与数量在格式化完成之后就不能再改变。
- 每个 block 只能放一个文件的数据。
- 如果文件大于 block 的大小,则一个文件会占用多个 block 数量。
- 如果文件小于 block,则该 block 的剩余空间就不能再被使用(磁盘空间会浪费)。
2) inode table(inode表格):存放文件属性和权限等。inode 存放的文件数据至少有文件的访问权限(rwx);文件的所有者与组(owner/group);文件的大小;文件创建和状态改变时间;最近一次读的时间;最近修改的时间;文件类型标识;文件指向的 block 号。
3) super block(超级块)。super block 存放文件系统的基本信息。一个文件系统只有一个 super block,存放的信息有:block 与 inode 的总量;未使用与已使用的 inode/block 数量;block 与 inode 的大小;文件系统的挂载时间、最近一次写入数据的时间、最近一次检验磁盘的时间等文件系统的相关信息;一个 validbit 数值,若此文件系统已被挂载,则 validbit 为 0,若未被挂载,则 validbit 为 1。
4) File System Description(文件系统描述说明):这个区段可以描述每个 block group 的开始与结束的 block 号码,以及说明每个区段分别介于哪一个 block 号码之间。
5) block bitmap(块对照表):标识 block 是否使用,便于系统快速找到空间来处置文件。
6) inode bitmap(inode 对照表):与 block bitmap 功能类似,只是 block bitmap 记录的是使用与未使用的 block 号码,inode bitmap 记录使用与未使用的 inode 号码。
2. Linux ext 3文件系统
ext 3 是第三代扩展文件系统(Third extended filesystem,ext 3),同时也是一个日志文件系统,常用于 Linux 操作系统。ext 3 是大多数 Linux 发行版本的默认文件系统。它采用和 ext 2 文件系统相同的索引节点表结构,另外给每个存储设备增加了一个日志文件,以将准备写入存储设备的数据先记入日志。
默认情况下,ext 3 文件系统用有序模式的日志功能,只将索引节点信息写人日志文件,直到数据块都被成功写入存储设备才删除。通常可以在创建文件系统时使用一个简单命令行选项将 ext 3 文件系统的日志方法改成数据模式。
在 ext 3 格式的文件系统上,当要向硬盘中写入数据时,操作过程如下:
- 系统同样需要先将这些数据写到数据缓冲区中(内存)。
- 当数据缓冲区写满时,在数据被写入硬盘之前系统需要先通知日志现在要开始向硬盘中写入数据(即向日志中写入一些信息)。
- 接着才会将数据写入硬盘中。
- 当数据写入硬盘之后,系统会再次通知日志数据已经写入硬盘。
注意,在 ext 3 文件系统中,由于有日志机制,在开机时系统会检查日志中的信息。利用日志中的信息,系统就会知道有哪些数据还没有写入硬盘中。由于系统在硬盘上搜寻的范围很小,所以系统检查的时间就会节省很多时间。
ext 3 文件系统为 Linux 文件系统新增加了基本的日志功能,但它依然是不完善的。例如 ext 3 文件系统无法恢复误删的文件,ext 3 文件系统也不支持加密文件等。
3. Linux ext 4文件系统
ext 4 是第四代扩展文件系统(Fourth extended filesystem,ext 4)是 Linux 系统下的日志文件系统,也是 ext 3 文件系统扩展的结果。ext 4 文件系统的特点如下:
- ext 4 拥有更大的文件系统和更大的文件。
- ext 3 文件系统最多只能支持 32TB 的文件系统和 2TB 的文件,而 ext 4 的文件系统容量可以达到 1EB,文件容量则可以达到 17TB。
- ext 4 文件系统向前和向后兼容。
- ext 3 文件系统可以挂载为 ext 4 文件系统使用,但为了充分发挥 ext 4 的优势,必须实现文件系统的迁移,将文件系统重新创建为 ext 4 格式,这样才能使用 ext 4 的全部新特性。ext 4 向后兼容,向后兼容就是指可以将 ext 4 文件系统挂载为 ext 3 文件系统使用,但是前提是 ext 4 文件系统不能使用盘区功能。
- ext 4 支持数据压缩和加密。
ext 4 文件系统支持称作区段的特性。区段在存储设备上按块分配空间,但在索引节点表中只保存起始块的位置。不需要显示出所有用来存储文件中数据的数据块,因此可以在索引节点表中节省空间。
ext 4 加入了块预分配技术。ext 4 文件系统可以为文件分配所有需要用到的块,不仅仅是已经用到的块。ext 4 文件系统用 0 填满预留的数据块,不会将它们分配给其他文件。
4. Linux ReiserFS文件系统
ReiserFS 文件系统是最早用于 Linux 的日志文件系统之一。ReiserFS 文件系统只支持回写日志模式即只把索引节点表数据写到日志文件。ReiserFS 文件系统的特点如下:
- 先进的日志机制。ReiserFS 有先进的日志功能机制。日志机制保证了在每个实际数据修改之前,相应的日志已经写入硬盘,从而使得文件与数据的安全性有了很大提高。
- 高效的磁盘空间利用。ReiserFS 对一些小文件不分配 inode,而是将这些文件打包,存放在同一个磁盘分块中。
- 独特的搜寻方式。ReiserFS 基于快速平衡树搜索,搜索大量文件时,搜索速度比 ext 2 快很多。
5. Linux XFS文件系统
XFS 是一种高性能的日志文件系统。XFS 文件系统采用回写模式日志,提高了系统本身的性能,但实际数据并没有存进日志文件中,因此带来了一定的风险。XFS 文件系统的特点如下:
- 数据完全性。无论文件系统上存储的文件与数据有多少,文件系统都可以根据所记录的日志在很短的时间内迅速恢复磁盘文件的内容。
- 传输特性。XFS 文件系统采用优化算法,日志记录对整体文件操作影响非常小。XFS 查询与分配存储空间非常快而且还能连续提供快速的反应时间。
- 可扩展性。XFS 是一个全 74 位的文件系统,它可以支持上百万 T 字节的存储空间。对特大文件、小文件或较大数量目录都支持。
6. Linux Btrfs文件系统
Btrfs 属于 COW(写时复制)文件系统,同时也被称为 B 树文件系统,由 Oracle 公司研发。Btrfs 主要是在 Reiser 文件系统的基础性上进行了改进。其特点如下:- 扩展性:B-Tree 和动态 inode 的创建等特性保证了 Btrfs 在大型机器上的整体性能而不会随着系统容量的增加而降低。
- 数据一致性:系统在面对不可预料的硬件故障时,Btrfs 采用 COW 事务技术来保证文件系统的一致性。
- 多设备管理:Btrfs 支持创建快照(snapshot),和克隆(clone)。Btrfs 还能够方便地管理多个物理设备,使得传统的管理软件变得多余。
- B-Tree:Btrfs 内部所有的元数据都采用 B-Tree 管理,拥有良好的可扩展性。B-Tree 是 Btrfs 的核心,Btrfs 内部不同的元数据由不同的 Tree 管理,使得查找、插入和删除操作能够快速进行。
声明:《Linux系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。