Linux操作系统——文件系统管理(1-3)

一、 Linux文件系统的基本概念

文件系统(File System)是磁盘上有特定格式的一片区域,操作系统利用文件系统保存和管理文件。
不同的操作系统需要使用不同的文件系统,为了与其他操作系统兼容,通常操作系统都支持很多种类型的文件系统。

Linux文件系统

Linux系统使用ext2/ext3文件系统。
在Linux系统中,存储数据的各种设备都属于块设备,对于磁盘设备,通常在0磁道第一个扇区上存放引导信息,称为主引导记录(MBR),该扇区不属于任何一个分区,每个分区包含许多数据块,可以认为是一系列块组的集合。
在磁盘分区上建立ext2/ext3文件系统后,每个块组的结构如图所示
在这里插入图片描述
ext文件系统结构的核心组成部分是超级块,索引节点表和数据块。
超级块和块组描述符中包含关于该块组的整体信息,例如索引节点的总数和使用情况、数据块的总数和使用情况以及文件系统状态等。
每一个索引节点都有一个唯一编号,并且对应一个文件,它包含了针对某个具体文件的几乎全部信息,例如文件的存取权限、拥有者、建立时间以及对应的数据块地址等,但不包含文件名称。
在目录文件中包含文件名称以及此文件的索引节点号。索引节点指向特定的数据块,数据块是真正存储文件内容的地方。

二 、文件系统的类型

Ext

ext是第一个专门为Linux的文件系统类型,叫做扩展文件系统。
它在1992年4月完成的。
它为Linux的发展取得了重要作用。
但是在性能和兼容性上存在许多缺陷。现在已经很少使用了。

Ext2

ext2是为解决ext文件系统的缺陷而设计的可扩展的高性能的文件系统。又被称为二级扩展文件系统。
它是在1993年发布的,设计者是Rey Card。
ext2是Linux文件系统类型中使用最多的格式。并且在速度和CPU利用率上较突出,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。
Ext2 可以支持256字节的长文件名,其单一文件大小与文件系统本身的容量上限与文件系统本身的簇大小有关,在一般常见的Intel x86兼容处理器的系统中,簇最大为 4KB, 则单一文件大小上限为 2048GB, 而文件系统的容量上限为 6384GB。尽管Linux可以支持种类繁多的文件系统,但是2000年以前几乎所有的Linux发行版都用ext2作为默认的文件系统。
ext2的缺点:ext2的设计者主要考虑的是文件系统性能方面的问题。ext2在写入文件内容的同时并没有同时写入文件的meta-data (和文件有关的信息,例如:权限、所有者以及创建和访问时间)。另外但由于目前核心 2.4 所能使用的单一分割区最大只有 2048GB,尽管文件系统的容量上限为 6384G但是实际上能使用的文件系统容量最多也只有 2048GB。

Ext3

ext3是由开放资源社区开发的日志文件系统,主要开发人员是Stephen tweedie。
ext3被设计成是ext2的升级版本,尽可能地方便用户从ext2fs向ext3fs迁移。ext3在ext2的基础上加入了记录元数 据的日志功能,努力保持向前和向后的兼容性。
ext3是一种日志式文件系统。日志式文件系统的优越性在于:由于文件系统都有快取层参与运作,如不使用时必须将文件系统卸 下,以便将快取层的资料写回磁盘中。因此每当系统要关机时,必须将其所有的文件系统全部卸下后才能进行关机。
ext3的缺点:其最大的缺点是没有现代文件系统所具有的能提高文件数据处理速度和解压的高性能,另外使用ext3文件系统时要注意硬盘限额问题,在这个问题解决之前,不推荐在重要的企业应用上采用ext3+disk quota(磁盘配额)。

Jsf

jsf提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的。
jsf(Journaled File System Technology for Linux)的开发者包括AIX(IBM的Unix)的jsf的主要开发者。
2000 年2月,ibm宣布在一个开放资源许可证下,移植linux版的JSF文件系统。JSFs也是一个有大量用户安装使用的企业级文件系统。它具有可伸缩性和 健壮性,与非日志文件系统相比,它的优点是其快速重启能力:Jfs 能够在几秒或几分钟内就把文件系统恢复到一致状态。
虽然 jsf 主要是为满足服务器(从单处理器系统到高级多处理器和群集系统)的高吞吐量和可靠性需求而设计的,jsf 还可用于想得到高性能和可靠性的客户机配置因为在系统崩溃时,jsf 能提供快速文件系统重启时间,所以它是因特网文件服务器的关键技术。
jsf的缺点:使用jsf日志文件系统,性能上会有一定损失,系统资源占用的比率也偏高。是因为当它保持一个日志时,系统需要写许多数据。

ReiserFS

xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。
xfs被称为业界最先进的、最具可升级性的文件系统技术。它是一个全64位,快速、稳固的日 志文件系统,多年用于SGI的IRIX操作系统。
sgi决定支持Linux社区,将关键的基本架构技术授权于Linux。它以开放资源形式发布了他们自己 拥有的xfs的源代码,并开始进行移植。
SGI的xfs可为 linux和开放资源社区带来的新特性有:可升级性:xfs被设计成可升级,以面对大多数的存储容量和i/o存储需求,可处理大型文件和包含巨大数量文件 的大型目录,满足二十一世纪快速增长的磁盘需求。
xfs有能力动态地为文件分配索引空间,使系统形成高效支持大数量文件的能力。在它的支持下,用户可使用 1exabyte (1g×1gb) 大的文件,远远大于现在最大的文件系统。
优秀的i/o 性能:典型的现代服务器使用大型的条带式磁盘阵列,以提供达数gb/秒的总带宽。xfs可以很好地满足I/O请求的大小和并发I/O请求的数量。 xfs 可作为root文件系统,并被lilo支持。

swap文件系统

swap文件系统是Linux的交换分区所采用的文件系统。在Linux中使用交换分区管理内存的虚拟交换空间。一般交换分区的大小设置为系统物理内存的2倍。在安装Linux操作系统时,必须建立交换分区,并且其文件系统类型必须为swap。交换分区由操作系统自行管理。

vfat文件系统

vfat文件系统是Linux下对DOS、Windows操作系统下的FAT16和FAT32文件系统的统称。Red Hat Linux支持FAT16和FAT32格式的分区,也可以创建和管理FAT分区。

NFS文件系统

NFS即网络文件系统,用于UNIX系统间通过网络进行文件共享,用户可以把网络中NFS服务器提供的共享目录挂载到本地目录下,可以象访问本地文件系统中的内容一样访问NFS文件系统中的内容。

ISO 9660文件系统

ISO 9660是光盘所使用的标准文件系统,Linux系统对该文件系统有很好的支持,不仅能读取光盘中的内容而且还可以支持光盘刻录功能。

三 、对磁盘分区指定文件系统类型

硬盘分区后,下一步的工作就是文件系统的建立。类似于Windows下的格式化硬盘。
在硬盘分区上建立文件系统会冲掉分区上的数据,而且不可恢复,因此在建立文件系统之前要确认分区上的数据不再使用。建立文件系统的命令是mkfs,格式如下:
mkfs [参数] 文件系统
mkfs命令常用的参数选项
-t :指定要创建的文件系统类型
-c:建立文件系统前首先检查坏块
-l file:从文件file中读磁盘坏块列表,file文件一般是由磁盘坏块检查程序产生的
-V:输出建立文件系统详细信息。

指定文件系统类型

在/dev/sdb1上建立ext3类型的文件系统,建立时检查磁盘坏块并显示详细信息。

在软盘上建立文件系统

对软盘格式化
使用badblocks命令检查软盘上的坏块,把坏块信息存储在文件badblock-fd0中。
用mkfs命令建立文件系统。

查看文件系统类型

fsck命令主要用于检查文件系统的正确性。并对Linux磁盘进行修复。fsck命令的格式如下:
fsck [参数选项] 文件系统
fsck命令常用的参数选项:
-t:给定文件系统类型,若在/etc/fstab中已有定义或kernel本身已支持的不需添加此项。
-s:一个一个地执行fsck命令进行检查。
-A:对/etc/fstab中所有列出来的分区进行检查。
-C:显示完整的检查进度。
-d:列出fsck的debug结果。
-P:在同时有-A选项时,多个fsck的检查一起执行。
-a:如果检查中发现错误,则自动修复。
-r:如果检查有错误,询问是否修复。
例如,检查分区/dev/sdb1上是否有错误,如果有错误自动修复。

发布了152 篇原创文章 · 获赞 124 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_44762986/article/details/104827296