对于IT的学习来说,把握“心法与招式”的平衡,是至关重要的!要想成为高手!“心法与招式”必须兼修!
所谓心法,就是理论基础知识,是底层的原理性知识,是那些跟特定的厂家无关的跨平台共性知识;
所谓招式,就是应用层面的技能,配置、操作和调试的步骤,跟具体的软件或者硬件紧密关联的特殊知识。
ext与swap文件系统是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的特殊功能。
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=ordered或data=writeback时,将所有数据写入日志区块
s
安全地删除
u
可以进行反删除
A
读取该文件时,不需要更新读取时间戳记录,启用这个属性时,可以提高文件的读取效率
D
当目录被异动时,立即写回磁盘
S
文件一经修改,立即存回磁盘
查看文件的特殊属性:
lsattr files...
配置文件的特殊属性:
chattr +- attributes... files...
⑴ attributes :就是要设置的特殊属性代号(如: i 、a )。
⑵ + attributes : 表示启用这项属性(如:+i )
⑶ - attributes : 表示停用它个属性 (如:-i )
好啦,我们一起来看看如何设置ext2文件系统特殊属性:
为了方便初学者,故从初步开始……
② 创建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/file1的i特殊属性,故RHEL会显示“permission denied(拒绝不符权限的操作)”的错误信息。即无法覆盖/mnt/tmp/file1文件的内容。
⑦ 用cat命令查看只有“Linux”。
3.1.4 多重读取控制清单
以往,每一个文件只能设置一条权限,而UNIX系统的权限只有3组:拥有者、拥有群组和其他人,意即只能针对文件的拥有者、拥有群组或者其他人设置权限,这就限制RHEL的功能。
eg :Boss希望只有koma与paul两个人可以读取、写入/data/file1,而users群组的成员只能读取,其他人无法读取。作为系统管理员的你,此时,只能告诉你的老板:对不起,RHEL无法满足你的要求。(你想想,你的老板此时如何想???哈……哈……)
没事!下面接着看看,为了解决上述问题,RHEL在ext2中操作POSIX的多重读取控制清单(MACL)能力,这样就能为ext2文件系统中的每一个文件设置一条以上的权限数据,以加强RHEL权限主功能。
本文转自
beyondhedefang
51CTO博客,原文链接:http://blog.51cto.com/beyondhdf/258698 ,如需转载请自行联系原作者