对于 IT 的学习来说,把握 心法与招式 的平衡,是至关重要的!要想成为高手! 心法与招式 必须兼修! <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

所谓心法,就是理论基础知识,是底层的原理性知识,是那些跟特定的厂家无关的跨平台共性知识;

所谓招式,就是应用层面的技能,配置、操作和调试的步骤,跟具体的软件或者硬件紧密关联的特殊知识。

      extswap文件系统是Red Hat Enterprise Linux系统中是最重要的文件系统,本章将深入介绍这3个文件系统的功能,以及如何管理这3个文件系统。

3.1 ext2文件系统

ext2文件系统是全名为第二代延伸式文件系统(2nd extended filesytem,是针对Linux特性特别开发的,所以几乎是为Linux量身打造的文件系统。因此,ext2最后成为各种Linux产品内置的文件系统。当然Red Hat Enterprise Linux也提供ext2文件系统。本节将介绍ext2文件系统的特色与功能。

   ext2文件系统究竟提供了什么魅力,深得所有Linux厂商的推崇?ext2提供的功能整理为以下几点:

⑴ 支持255个字符的文件名称。

⑵ 支持各种类型的文件。

⑶ 单一文件系统最大为8TB

⑷ 单一文件最大为8TB

⑸ 提供文件的特殊属性。

⑹ 可以为ext2文件系统设置卷标名称。

⑺ 可以调校ext2文件系统。

⑻ 通过cache/buffer提高ext2文件系统的效率。

下面将详细介绍上述各项特色与功能,并且介绍如何在Red Hat Enterprise Linux系统中操作ext2的特殊功能。

<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />3.1.1 ext2文件系统名称与支持的文件类型

支持255个字符的文件名称。

       在以前最多只能存储255个字元或者127个中文的文件名:不过,现在的RHEL的ext2文件系统已经支持万国码(Unicode),因此,最多可以存储255个英文或者中文的文件名称。而文件名称中可以使用除了“/”外的任何字符。但是,强烈建议避免使用以下的特殊符号作为文件名称。

⑴ 特殊符号:eg: “,” 、“;” 、“-” “~” 、“空白”等。

⑵ 无法显示的字符:eg: ASCⅡ的007字符。

⑶ 此外,ext2文件系统也建立、存储下列几种类型的文件。

⑷ 常规文件(Regular File:包含文字文件、二进制文件(Binary File)、执行文件、链接库……

⑸ 目录(Directory)。

⑹ 连接文件(Link File: 包含硬性连接文件(Hard-Link File)、软性连接文件(Soft-Link File)。

⑺ 设备文件(Device File: eg: 区块设备(Block Device)、字符设备(Character File)。

⑻ 跨进程通信文件(Inter-Process Communcation File,IPC File: 例如:Socket文件、FIFO文件。

3.1.2 制作ext2文件系统

   制作ext2文件系统,则可用mkfs或者mkfs.ext2命令:

       mkfs [-t  ext2] [options…] device [size]

       mkfs.ext2  [options…] device [size]

device :  文件系统的设备文件名称。

size   :  新建的文件系统大小。若未指定,则为默认值。

options:  参数。常用参数如下表所示。

mkfs与mkfs.ext2常用参数表

参数

说明

-c

在制作文件系统前,先检查磁盘是否有坏轨(Bad Block

-l file

file读入坏轨扇区数据

-b size

指定ext2文件系统的区块大小

-i size

指定每隔多少size字节建立一个索引节点

-N count

指定建立几个索引节点

-L lable

指定ext2文件系统的卷标名称

-m reserved_percent

设置保留区块的百分比

 

下面我们来看建立ext2文件系统:

mkfs没有加任何参数,则采用默认值,即把/dev/hda8的所有磁盘空间制作成  为ext2文件系统。

       温馨提醒:在制作文件系统时,会清除掉磁盘空间上原来的所有文件数据,故在建立文件系统前,一定要仔细思量。

3.1.3 ext2文件特殊属性

       ext2文件系统建立一个文件时,ext2除了会记录文件的权限、拥有者、异动时时间等信息外,还会存储ext2文件系统的属性数据。通过ext2文件系统的属性,可以对ext2的文件提供更细致的管理,赋予ext2上的文件更多的功能。

       常用的ext2文件系统特殊属性如下表:

ext2文件系统的文件特殊属性

属性

说明

a

只能附加,意即不能删除,也不能覆盖

c

允许由内核自动压缩

d

通过dump工具进行备份时,要跳过这个文件

i

恒久不变的,意即不能删除,不能覆盖,也不能附加

j

挂载参数是data=ordereddata=writeback时,将所有数据写入日志区块

s

安全地删除

u

可以进行反删除

A

读取该文件时,不需要更新读取时间戳记录,启用这个属性时,可以提高文件的读取效率

D

当目录被异动时,立即写回磁盘

S

文件一经修改,立即存回磁盘

 

  查看文件的特殊属性:

              lsattr  files...

  配置文件的特殊属性:

              chattr  +-  attributes... files...

attributes :就是要设置的特殊属性代号(如: i a )。

attributes 表示启用这项属性(如:+i

attributes 表示停用它个属性 (如:-i )

好啦,我们一起来看看如何设置ext2文件系统特殊属性:

为了方便初学者,故从初步开始……

查看/mnt/目录下是否有tmp目录,显然没有。

创建tmp目录,在/mnt/下。

再次查看/mnt/目录下是否有tmp目录,显然有。

查看/mnt/tmp目录下是否有文件,显然没有。

建立一个文件file1.

再次查看/mnt/tmp/目录下是否有文件file1,显然有。

查看/mnt/tmp/file1中是否有内容,明显没有。

/dev/hda8分区的文件系统挂载到/mnt/tmp/

/dev/hda8被制作成为ext2文件系统,已挂载到/mnt/tmp/目录。
    先查看/mnt/tmp/file1文件的特殊属性,根据lsattr显示结果可知,file1目前没有设置任何的特殊属性。

    因没有任何特殊属性,故可直接覆盖/mnt/tmp/file1文件的内容。

    查看/mnt/tmp/file1文件的内容仅有“Linux”了。

    chattr命令开启/mnt/tmp/file1文件的永恒不变特殊属性(即:+i参数! )。

    再次用lsattr查看/mnt/tmp/file1的特殊属性,当前的确开启了i的特殊属性。

    开启了/mnt/tmp/file1i特殊属性,故RHEL会显示“permission denied(拒绝不符权限的操作)”的错误信息。即无法覆盖/mnt/tmp/file1文件的内容。

    cat命令查看只有“Linux”。

3.1.4 多重读取控制清单

       以往,每一个文件只能设置一条权限,而UNIX系统的权限只有3组:拥有者、拥有群组和其他人,意即只能针对文件的拥有者、拥有群组或者其他人设置权限,这就限制RHEL的功能。

       eg Boss希望只有komapaul两个人可以读取、写入/data/file1,而users群组的成员只能读取,其他人无法读取。作为系统管理员的你,此时,只能告诉你的老板:对不起,RHEL无法满足你的要求。(你想想,你的老板此时如何想???哈……哈……)

       没事!下面接着看看,为了解决上述问题,RHELext2中操作POSIX的多重读取控制清单(MACL)能力,这样就能为ext2文件系统中的每一个文件设置一条以上的权限数据,以加强RHEL权限主功能。